Saya memiliki aplikasi Rails yang saya jalankan di server saya. Ketika saya pergi ke desktop jarak jauh dan mencoba memuat aplikasi, server memerlukan waktu 3-4 menit untuk merespons dengan halaman HTML sederhana. Namun, ketika saya memuat halaman secara lokal di server, halaman tersebut muncul hanya dalam satu detik. Saya mencoba melakukan ping ke server dari desktop jarak jauh saya dan ping berhasil dalam jangka waktu yang wajar.
Ini semua tampaknya dimulai setelah saya menginstal klien dasar Oracle dan SQLPLUS. Haruskah saya mencurigai Oracle? Adakah yang pernah mengalami hal serupa dengan ini?
ruby-on-rails
oracle
sqlplus
webrick
Prof. Falken
sumber
sumber
Jawaban:
Mengalami masalah yang sama di sini (bahkan setahun kemudian). Di bawah linux Anda harus melakukan hal berikut:
Cari file /usr/lib/ruby/1.9.1/webrick/config.rb dan edit.
Ganti garisnya
dengan
Mulai ulang webrick dan itu akan bekerja dengan sangat baik :)
sumber
Punya masalah yang sama. Bagi saya, posting ini memegang solusinya. Jika Anda menggunakan Ubuntu, hentikan (atau hapus instalan) file
avahi-daemon
.service avahi-daemon stop
menghentikan daemon.Webrick sekarang terasa sangat cepat.
Masalahnya memiliki laporan lama di Rails Lighthouse , namun, Ruby-on-Rails telah memindahkan tiket mereka ke github sejak saat itu; Agak disayangkan bahwa masalah lama ini masih berlanjut.
Sadarilah, bahwa jika Anda benar-benar menggunakan
avahi-daemon
untuk sesuatu, seperti menemukan printer dan pemindai di jaringan Anda, itu tidak akan berfungsi lagi.sumber
Baru saja mengalami masalah yang sama. Itu
melakukan trik untuk saya juga. Untuk berjaga-jaga jika Anda menjalankan ruby di bawah rvm, berikut adalah jalan yang harus ditempuh:
sumber
"Tipis" sekarang merupakan pilihan bagus untuk menjalankan keduanya secara lokal
dan di Heroku:Di Heroku: https://devcenter.heroku.com/articles/rails3#webserverSitus web: http://code.macournoyer.com/thin/
Anda dapat menggunakannya secara lokal dengan memasukkan Gemfile Anda:
... lalu jalankan bundel dan mulai server Anda dengan
thin start
ataurails s
.Pembaruan di Heroku
Kurus sekarang dianggap sebagai pilihan yang buruk untuk Heroku. Informasi lebih lanjut di sini:
https://blog.heroku.com/archives/2013/4/3/routing_and_web_performance_on_heroku_a_faq
Rekomendasi mereka:
sumber
gem install thin
. Lihat sinatrarb.com/intro.html Direkomendasikan juga untuk menjalankan gem install thin, yang akan diambil Sinatra jika tersedia. EDIT: Peningkatan kinerja yang drastis. Dari 1,3 hingga 0,05.Saya memiliki masalah yang samar-samar serupa yang terwujud dengan sendirinya saat mengakses server WEBrick melalui VPN. Permintaan akan memakan waktu lama, sebagian besar tidak terjadi apa-apa di kawat. Karena baik
mongrel
atauthin
permata bekerja dengan Ruby1.9 pada Windows dan tidak ada cara saya mendapatkan diri saya terlibat dalam kompilasi barang dari sumber, yang saya butuhkan untuk tetap dengan Webrick.Perbaikannya adalah mengatur parameter config
DoNotReverseLookup
ketrue
, saat membuat server WEBrick:sumber
Anda dapat menggunakan
Apache
atau menginstalThin
. Di Gemfile Anda:gem 'thin'
Anda juga dapat memeriksa daftar server web untuk rel .
sumber
Mencoba melakukan ini dengan webrick di 1.8.7 dan tidak dapat menemukan konfigurasi untuk diubah. Namun, cheat yang dapat Anda gunakan adalah menambahkan file host dari server yang menjalankan webrick, alamat ip yang mencoba membalikkan pencarian ..
sumber
Saya sering mengalami penundaan 10 detik dengan Sinatra. Cuplikan ini menyelesaikannya untuk saya.
Tambahkan ini di dekat bagian atas
app.rb
file Andaclass 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
Lihat sumber
sumber
Ini adalah utas pertanyaan dan jawaban lama yang membantu saya memecahkan
:DoNotReverseLookup
masalah pada mesin virtual pengembangan lokal dan ingin menambahkan info tambahan. Halaman web ini menjelaskan kesalahan regresi di inti Ruby yang menyebabkan masalah ini muncul untuk beberapa; penekanan adalah milikku; Singkatnya, ada permintaan GitHub untuk perbaikan inti Ruby untuk ini dan mudah-mudahan itu akan disetujui dan digabungkan dalam rilis Ruby yang segera:Terkait dengan penemuan ini adalah permintaan penarikan GitHub dari penulis yang mengusulkan cara memperbaiki masalah di kode sumber Ruby WEBrick: Perbaiki bug regresi di WEBrick's: DoNotReverseLookup konfigurasi opsi konfigurasi # 731
Solusi yang diuraikan dalam permintaan adalah mengubah baris 181
lib/webrick/server.rb
dari ini:Untuk ini:
Berbagi di sini jika ada yang tersandung pada utas pertanyaan / jawaban yang dihormati ini dan tertarik dengan kemajuan dalam menyelesaikan masalah ini di inti Ruby. Mudah-mudahan penarikan ini akan digabungkan atau masalah yang mendasarinya akan ditangani dalam beberapa cara di rilis Ruby berikutnya; mungkin 2.1.6?
sumber
Ini adalah jawaban yang sangat terlambat tetapi saya menghabiskan sebagian besar hari untuk men-debug masalah ini dengan Rails yang berjalan di Vagrant. Mengubah pencarian DNS terbalik tidak benar-benar meningkatkan waktu permintaan sama sekali. Kombinasi dua hal membuat halaman saya dimuat dari ~ 20 detik menjadi ~ 3 detik dalam mode pengembangan:
Ganti WEBrick dengan anjing kampung. Saya harus menggunakan versi prarilis atau tidak akan menginstal:
sudo gem install mongrel --pre
Kemudian tambahkan ke Gemfile saya untuk dev:
group :test, :development do gem 'mongrel' end
Mulai server saya seperti ini, lalu:
Itu memotong beberapa detik, 5 atau 6 detik, tapi masih sangat lambat. Ini adalah lapisan gula pada kue - tambahkan ini juga ke Gemfile:
group :development do gem 'rails-dev-boost', :git => 'git://github.com/thedarkone/rails-dev-boost.git' end
sumber
Tidak ada
DoNotReverseLookup
opsi di ruby 1.8.x webrick. Solusinya adalah meletakkan:suatu tempat di awal skrip Anda.
Sumber: WEBrick dan Socket.do_not_reverse_lookup: Kisah dalam Dua Kisah
sumber
Dalam situasi saya yang mungkin jarang terjadi, itu berfungsi setelah saya memerah iptables saya, ini tidak memiliki efek samping karena saya tidak memiliki aturan khusus (hanya Ubuntu default yang mengizinkan semua):
sumber