ওয়েব্রিক সাড়া দিতে খুব ধীর। কীভাবে এটি দ্রুত করা যায়?


88

আমার একটি রেল অ্যাপ্লিকেশন রয়েছে যা আমি আমার সার্ভারে চালাচ্ছি। আমি যখন কোনও দূরবর্তী ডেস্কটপে যাই এবং অ্যাপ্লিকেশনটি লোড করার চেষ্টা করি, একটি সাধারণ এইচটিএমএল পৃষ্ঠায় সাড়া দেওয়ার জন্য সার্ভারটি ভাল 3-4 মিনিট সময় নেয়। যাইহোক, আমি যখন সার্ভারে স্থানীয়ভাবে পৃষ্ঠাটি লোড করি, পৃষ্ঠাটি কেবল এক সেকেন্ডের মধ্যে প্রদর্শিত হবে। আমি আমার দূরবর্তী ডেস্কটপ থেকে সার্ভারটিকে পিং করার চেষ্টা করেছি এবং পিংগুলি যুক্তিসঙ্গত সময়ে সফলভাবে চলছে।

ওরাকলের বেসিক ক্লায়েন্ট এবং এসকিউএলপিএলএস ইনস্টল করার পরে এই সমস্ত শুরু হয়েছিল বলে মনে হচ্ছে। আমার কী ওরাকলকে সন্দেহ করা উচিত? এর সাথে কি এরকম কিছু অভিজ্ঞতা হয়েছে?


4
সম্ভবত এটি এখন সার্ভারফল্টে স্থানান্তরিত হওয়া উচিত?
অধ্যাপক ফ্যালকেন

কোনও প্রয়োজন নেই, এটি একটি কনফিগারেশন ফাইলের কেবল একটি লাইন পরিবর্তন করে সমাধান করা যেতে পারে
মোস্তি মোস্তাচো

4
@AigigableClarkKant ওয়েব্রিক এর বিকাশকারী সরঞ্জাম আরও বেশি, তাই SO এ থাকা ভাল বলে মনে হচ্ছে।
ডেভিড

মঙ্গলভাব এবং সমস্ত বরাবর আমি সমস্যাটি ভিএমওয়্যারকে দায়ী করেছিলাম, জাহান্নামের ওয়েবিকে জ্বালিয়েছি :(
প্রসওয়ান

উত্তর:


139

এখানে একই সমস্যা রয়েছে (এমনকি এক বছর পরেও)। লিনাক্সের নীচে আপনাকে নিম্নলিখিতগুলি করতে হবে:

/Usr/lib/ruby/1.9.1/webrick/config.rb ফাইলটি দেখুন এবং সম্পাদনা করুন।

লাইনটি প্রতিস্থাপন করুন

:DoNotReverseLookup => nil,

সঙ্গে

:DoNotReverseLookup => true,

ওয়েব্রিক পুনরায় চালু করুন এবং এটি একটি কবজির মতো কাজ করবে :)


21
কাজ করছে! আমাদের স্থানীয় নেটওয়ার্কের অন্য কম্পিউটার থেকে স্থির সামগ্রীর পরিবেশন করার সময় ওয়েব্রিকের ধীর গতির সমস্যা ছিল। এটি এটি সমাধান। পার্থক্যটি কেবল ছিল যে কনফিগার.আরবি ছিল: ~ / .rvm / রুবি / রুবি-1.9.2-p180 / lib / রুবি / 1.9.1 / ওয়েব্রিক / কনফিগারেশন - কারণ আমরা আরভিএম ব্যবহার করছি।
স্লোবোডান কোভাসেভিক

বিটিডব্লিউ, আমার কাছে কীটি ছিল না, তাই আমি কেবল এটি যুক্ত করেছি এবং এটি কাজ করেছে
পরিবেশগত

আপনি কোথায় এটি যুক্ত করেছেন? কোন বিভাগ?
অ্যাবে পেট্রিলো


10
আমার কাছে রুবির সংস্করণটি রুবি -১.৮.--পি ৩৩০ এবং এটি ডোনেটরভার্সলুকআপ বিকল্প বলে মনে হচ্ছে না। "DoNotReversLookup" স্ট্রিংটি ওয়েব্রিকের config.rb বা anywhere / .rvm / রুবি / রুবি-1.8.7-p330 / lib / রুবি / 1.8 তে কোথাও উপস্থিত হয় না। রুবি-১.৮.--পি ৩৩০ এ এই সমস্যাটি ঠিক করার কোনও ভাল উপায় আছে কি?
ডেভিড গ্রেসন

36

একই সমস্যা ছিল। আমার জন্য, এই পোস্টটি সমাধান অনুষ্ঠিত। আপনি যদি উবুন্টুতে থাকেন তবে বন্ধ করুন (বা আনইনস্টল করুন) avahi-daemonservice avahi-daemon stopডিমন থামায়।

ওয়েব্রিক এখন খুব দ্রুত বোধ করে ।

সমস্যাগুলি রিলস বাতিঘরটিতে একটি পুরাতন প্রতিবেদন রয়েছে , তবে, রুবি অন অন রেলগুলি তার টিকিটগুলি গিথুবে স্থানান্তরিত করেছে ; দুর্ভাগ্যজনক যে এই পুরানো সমস্যা এখনও অব্যাহত।

তবে সচেতন থাকুন যে আপনি যদি সত্যই আপনার নেটওয়ার্কে প্রিন্টার এবং স্ক্যানার সন্ধান করার মতো কিছু ব্যবহার করেন তবে তা আর কাজ করবে না।avahi-daemon


4
অনেক ধন্যবাদ!! এটি আমার সমস্যাটি উবুন্টু 11.04 / 11.10 / 12.04 এ সমাধান করেছে
এসএমমোসাভি

4
আচ্ছা এই উত্তরটি আমার কাছে অসম্পূর্ণ নায়ক বলে মনে হচ্ছে!
পিসিডার

4
এটি আমার জন্যও করেছিল। উবুন্টু 13.04
টেরি

4
এই সমাধানটি আসলে আমাকে সমস্যার মধ্যে ফেলে দেয় কারণ এটি বন্ধ করে নেটওয়ার্ক পরিষেবাগুলি বাদাম হয়ে যায়! নিম্নলিখিত url forums.fedoraforum.org/showthread.php?t=124837
ইসাইয়াভান বাবু করণ

23

ঠিক একই সমস্যা ছিল। দ্য

...
:DoNotReverseLookup => true,
...

আমার জন্য কৌশলও। আপনি যদি আরভিএমের নীচে রুবি চালাচ্ছেন তবে, এখানে যাওয়ার পথটি এখানে রয়েছে:

~/.rvm/rubies/ruby-<version>/lib/ruby/<version>/webrick/config.rb

4
ধন্যবাদ! আপনার উত্তরটি খুঁজে পাওয়ার আগে আমি .rvm অনুসন্ধান করেছি এবং ওয়েব্রিক খুঁজে পেলাম না এবং / usr / lib এ পরিবর্তন করেছি এবং এটি কোনও সাহায্য করেনি। এটি কাজ করে।
বি সেভেন

@ কেনবারবার প্রিটি নিশ্চিত যে এটি কোনও ভাল দিক নয় তবে একটি সুন্দর এবং ছোট বিকাশের জন্য আপনার স্থানীয় আরভিএম ইনস্টলেশনতে কেবল এই পরিবর্তনটি করা ঠিক আছে। এবং
যাইহোক

4
@ কেজেলস্কি সম্ভবত আপনি ঠিক বলেছেন তবে এটি আপগ্রেডের মাধ্যমে স্থির হয় না বা এটি এমন কোনও সমাধান নয় যা আপনি সহজেই আপনার সহকর্মীদের কাছে যেতে পারেন। সম্ভবত এই ক্ষেত্রে পাগল নেভিগেশন একটি বানর প্যাচ উত্তম অসহায়তা । যাইহোক এটি এখন ঠিক করা হয়েছে: github.com/rails/rails/commit/… ...
কেন নাপিত

15

"পাতলা" স্থানীয়ভাবে উভয়ই চালনার জন্য দুর্দান্ত বিকল্প এবং হেরোকু তে:

হিরোকুতে: https://devcenter.heroku.com/articles/rails3#webserver

ওয়েবসাইট: http://code.macournoyer.com/thin/

আপনি আপনার জেমফাইলে রেখে স্থানীয়ভাবে এটি ব্যবহার করতে পারেন:

gem "thin"

... এবং তারপর বান্ডিল চালানো এবং আপনার সার্ভারে শুরু thin startবা rails s

হেরোকুর আপডেট

পাতলা এখন হিরোকুর খারাপ পছন্দ হিসাবে বিবেচিত হয় । এখানে আরও তথ্য:

https://blog.heroku.com/archives/2013/4/3/routing_ এবং_web_performance_on_heroku_a_faq

তাদের সুপারিশ:

জেআরবিতে ইউনিকর্ন বা পুমার মতো একসাথে ওয়েব ব্যাকএন্ডে স্যুইচ করুন, যা ডায়নোকে তার নিজস্ব অনুরোধ সারিটি পরিচালনা করতে দেয় এবং দীর্ঘ অনুরোধগুলিতে ব্লক করা এড়ানো যায়।


সিস্টেমে কোড বা কিছু পরিবর্তন না করে একটি নিখুঁত সমাধান।
ফার্নান্দো কোশ

সাইনট্রা ইনস্টল করা থাকলে স্বয়ংক্রিয়ভাবে ওয়েব্রিকের পরিবর্তে পাতলা ব্যবহার করে। আমাকে যা করতে হয়েছিল তা হ'ল gem install thinSinatrarb.com/intro.html দেখুন রত্ন ইনস্টল পাতলা চালানোর জন্যও সুপারিশ করা হয়, যদি উপলব্ধ থাকে তবে সিনট্রা বেছে নেবে। সম্পাদনা: কঠোর কর্মক্ষমতা উন্নতি। 1.3 থেকে 0.05 সেকেন্ডে।
গুইসিম

6

আমার একটি অস্পষ্টভাবে অনুরূপ সমস্যা হয়েছিল যা কোনও ভিপিএন এর মাধ্যমে ডব্লিউইব্রিক সার্ভার অ্যাক্সেস করার সময় নিজেই প্রকাশ পেয়েছিল। অনুরোধগুলি দীর্ঘ সময় নিতে পারে, তার বেশিরভাগ তারের সাথে কিছুই ঘটে না। যেহেতু না রত্নগুলি উইন্ডোজে রুবি ১.৯ এর সাথে কাজ করে না mongrelএবং thinউত্স থেকে উপাদান সংকলনে নিজেকে জড়িত করার কোনও উপায় ছিল না, তাই আমাকে ওয়েইব্রিকের সাথে লেগে থাকা প্রয়োজন।

ফিক্স কনফিগ প্যারামিটার সেট করার ছিল DoNotReverseLookupকরার true, যখন WEBrick সার্ভার তৈরি করা হচ্ছে:

server = HTTPServer.new {:DoNotReverseLookup => true, ...}


2

1.8.7 এ ওয়েব্রিকের সাহায্যে এটি করার চেষ্টা করা হয়েছিল এবং কনফিগারেশনটি পরিবর্তন করতে পারেনি। যাইহোক, আপনি যে প্রতারণাটি ব্যবহার করতে পারেন তা হ'ল সার্ভারের হোস্ট ফাইলগুলিতে যুক্ত করা যা ওয়েব্রিকটি আইপি ঠিকানা চালিয়ে যাচ্ছিল এটি লুপকে উল্টো করার চেষ্টা করছে ..


দুর্দান্ত এটি আরও ভাল কিছু ওয়েব্রিক ফাইল সম্পাদনা করে যা প্রতিটি আপডেটের পরে পরিবর্তন প্রয়োজন।
পেট্র

আমার ক্ষেত্রে এন্ট্রি যুক্ত করা হবে (লিনাক্স গেস্ট চলমান ওয়েব্রিকের জন্য) উইন্ডোজ হোস্টের আইপি ঠিকানা হবে
প্রসওয়ান

2

সিনেট্রার সাথে আমি প্রায় 10 সেকেন্ড দেরি করেছি। এই স্নিপেটটি আমার জন্য এটি সমাধান করেছে।

এটি আপনার app.rbফাইলের শীর্ষের নিকটে যুক্ত করুন

class Rack::Handler::WEBrick
    class << self
        alias_method :run_original, :run
    end
    def self.run(app, options={})
        options[:DoNotReverseLookup] = true
        run_original(app, options)
    end
end

উত্স দেখুন


1

এটি একটি পুরানো প্রশ্নোত্তর থ্রেড যা আমাকে :DoNotReverseLookupস্থানীয় বিকাশের ভার্চুয়াল মেশিনে সমস্যাটি সমাধান করতে সহায়তা করেছে এবং অতিরিক্ত তথ্য যুক্ত করতে চেয়েছিল। এই ওয়েব পৃষ্ঠাটি রুবি কোরতে রিগ্রেশন ত্রুটিটি ব্যাখ্যা করে যা কারও কারও কাছে এই সমস্যা দেখা দেয়; জোর আমার; এগুলির দীর্ঘতম সংক্ষিপ্তসারটি হ'ল এখানে একটি রুবি কোর ফিক্সের জন্য একটি গিটহাব পুলের অনুরোধ রয়েছে এবং আশা করি এটি রুবীর শিগগির ইশ রিলিজে অনুমোদিত এবং একীভূত হবে:

কয়েক ঘন্টা সমস্যার সমাধানের পরে, দেখা গেল যে এটিই ছিল! স্পষ্টতই, কোথাও ১.৮..6 থেকে ২.০.০ পর্যন্ত রুবির স্ট্যান্ডার্ড লিবের বিবর্তনের পাশাপাশি, ওয়েইব্রিক একটি নতুন কনফিগারেশন বিকল্প অর্জন করেছে :DoNotReverseLookupযা nilডিফল্টরূপে সেট করা আছে । তারপরে, ওয়েইব্রিকের অনুরোধ প্রসেসিং কোডের প্রতি সাহসের গভীরতায় এটি do_not_reverse_lookupআগত সংযোগ সকেটের উদাহরণটিতে মানটির মান নির্ধারণ করে config[:DoNotReverseLookup]যেহেতু এই মানটি nilমিথ্যা, তাই প্রভাবটি এটি নির্ধারণের মতো false, বৈশ্বিক Socket.do_not_reverse_lookupপতাকাকে ওভাররাইড করে । সুতরাং, আপনার যদি না থাকে: DoNotReverseLookup => trueআপনার WEBrick কনফিগারেশনে, বিপরীত ডিএনএস লুকআপ প্রতিটি নতুন সংযোগের জন্য সর্বদা ঘটবে, সম্ভাব্যভাবে গুরুতর বিলম্ব ঘটায়।

এই আবিষ্কারের সাথে সম্পর্কিত হ'ল রুবি ওয়েব্রিক সোর্স কোডটিতে সমস্যাটি কীভাবে মেরামত করা যায় সে সম্পর্কে লেখকের কাছ থেকে প্রস্তাব দেওয়া একটি গিটহাব টান অনুরোধ : ডাবট্রট্রাউজারলুকআপ কনফিগারেশন বিকল্প প্রয়োগকরণ # 731

অনুরোধে বর্ণিত সমাধানটি হ'ল এটি lib/webrick/server.rbথেকে 181 লাইন পরিবর্তন করা :

sock.do_not_reverse_lookup = config[:DoNotReverseLookup]

এটি:

unless config[:DoNotReverseLookup].nil?

যদি কেউ এই ভালভাবে বিবেচিত প্রশ্ন / উত্তর থ্রেডের উপর হোঁচট খায় এবং রুবি কোর এ সমস্যাটি সমাধানে অগ্রগতিতে আগ্রহী হন তবে এখানে ভাগ করে নেওয়া। আশা করি এই টানটি একীভূত হবে বা রুবির পরবর্তী প্রকাশে অন্তর্নিহিত সমস্যাটি কোনওভাবে মোকাবেলা করা হবে; হতে পারে 2.1.6?


0

এটি খুব দেরিতে উত্তর তবে আমি খুব ইস্যুটি ডিবাগ করে দিনের বেশিরভাগ অংশ ব্যয় করেছিলাম রেলের সাথে ভ্যাগ্রান্টে চলছে with বিপরীত ডিএনএস চেহারা পরিবর্তন করা আসলে অনুরোধের সময়গুলিতে মোটেই উন্নত হয়নি। দুটি জিনিসের সংমিশ্রণটি আমার পৃষ্ঠা লোডটি 20 সেকেন্ড থেকে development 3 সেকেন্ডে ডেভলপমেন্ট মোডে নিয়ে গেছে:

মোংরেল দিয়ে ডাব্লিউইব্রিককে প্রতিস্থাপন করুন। আমাকে প্রিরিলিজ সংস্করণ ব্যবহার করতে হবে বা এটি ইনস্টল হবে না:

sudo gem install mongrel --pre

তারপরে দেবের জন্য এটি আমার জেমফাইলে যুক্ত করুন:

group :test, :development do
  gem 'mongrel'
end

এর পরে আমার সার্ভারটি শুরু করে:

rails server mongrel -e development

এটি কয়েক সেকেন্ড কেটেছিল, 5 বা 6 সেকেন্ড, তবে এটি এখনও মারাত্মক ধীর ছিল। এটি কেকের আইসিং ছিল - এটি জেমফাইলে যুক্ত করুন:

group :development do
  gem 'rails-dev-boost', :git => 'git://github.com/thedarkone/rails-dev-boost.git'
end


0

আমার সম্ভবত বিরল পরিস্থিতিতে, আমি আমার iptables ফ্লাশ করার পরে এটি কাজ করেছিল, এর কোনও পার্শ্ব প্রতিক্রিয়া নেই কারণ আমার কোনও কাস্টম বিধি নেই (কেবলমাত্র ডিফল্ট উবুন্টু সকলকে অনুমতি দিন):

sudo iptables -F
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.