Tengo una aplicación Rails que estoy ejecutando en mi servidor. Cuando voy a un escritorio remoto e intento cargar la aplicación, el servidor tarda unos 3-4 minutos en responder con una simple página HTML. Sin embargo, cuando cargo la página localmente en el servidor, la página aparece en solo un segundo. Intenté hacer ping al servidor desde mi escritorio remoto y los pings se realizan correctamente en un período de tiempo razonable.
Todo esto parece haber comenzado después de que instalé el cliente básico de Oracle y SQLPLUS. ¿Debería sospechar de Oracle? ¿Alguien ha experimentado algo similar a esto?
ruby-on-rails
oracle
sqlplus
webrick
Prof. Falken
fuente
fuente
Respuestas:
Tener el mismo problema aquí (incluso un año después). En Linux tienes que hacer lo siguiente:
Busque el archivo /usr/lib/ruby/1.9.1/webrick/config.rb y edítelo.
Reemplazar la línea
con
Reinicie webrick y funcionará de maravilla :)
fuente
Tuvo el mismo problema. Para mí, esta publicación tenía la solución. Si está en Ubuntu, detenga (o desinstale) el archivo
avahi-daemon
.service avahi-daemon stop
detiene el daemon.Webrick ahora se siente muy rápido.
El problema tiene un informe antiguo en Rails Lighthouse , sin embargo, Ruby-on-Rails ha movido sus tickets a github desde entonces; Es un poco lamentable que este viejo problema persista todavía.
Sin embargo, tenga en cuenta que si realmente lo usa
avahi-daemon
para algo, como encontrar impresoras y escáneres en su red, eso ya no funcionará.fuente
Solo tuve el mismo problema. los
hizo el truco para mí también. En caso de que esté ejecutando ruby debajo del rvm, aquí está el camino a seguir:
fuente
"Thin" es ahora una excelente opción para ejecutar localmente
y en Heroku:En Heroku: https://devcenter.heroku.com/articles/rails3#webserverSitio web: http://code.macournoyer.com/thin/
Puede usarlo localmente colocando en su Gemfile:
... y luego ejecute bundle e inicie su servidor con
thin start
orails s
.Actualización sobre Heroku
Thin ahora se considera una mala elección para Heroku. Más información aquí:
https://blog.heroku.com/archives/2013/4/3/routing_and_web_performance_on_heroku_a_faq
Su recomendación:
fuente
gem install thin
. Consulte sinatrarb.com/intro.html. También se recomienda ejecutar gem install thin, que Sinatra recogerá si está disponible. EDITAR: Mejoras drásticas en el rendimiento. De 1,3 sa 0,05 s.Tuve un problema vagamente similar que se manifestó al acceder a un servidor WEBrick a través de una VPN. Las solicitudes tomarían mucho tiempo, la mayoría sin que ocurriera nada en el cable. Como ni
mongrel
nithin
gems funcionaban con Ruby1.9 en Windows y no había forma de que me enredara compilando cosas desde la fuente, necesitaba seguir con WEBrick.La solución fue establecer el parámetro de configuración
DoNotReverseLookup
entrue
, al crear el servidor WEBrick:fuente
Puede usar
Apache
o instalarThin
. En su Gemfile:gem 'thin'
También puede consultar la lista de servidores web para raíles .
fuente
Estaba tratando de hacer esto con webrick en 1.8.7 y no pude encontrar la configuración para cambiar. Sin embargo, un truco que puede usar es agregar al archivo de hosts del servidor que está ejecutando webrick la dirección IP que está tratando de revertir la búsqueda.
fuente
Experimenté retrasos de 10 segundos con frecuencia con Sinatra. Este fragmento lo resolvió por mí.
Agregue esto cerca de la parte superior de su
app.rb
archivoclass 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
Ver fuente
fuente
Este es un antiguo hilo de preguntas y respuestas que me ayudó a resolver el
:DoNotReverseLookup
problema en una máquina virtual de desarrollo local y quería agregar información adicional. Esta página web explica el error de regresión en el núcleo de Ruby que llevó a que apareciera este problema para algunos; el énfasis es mío; En el corto plazo de todo esto, hay una solicitud de extracción de GitHub para una corrección del núcleo de Ruby para esto y, con suerte, se aprobará y se fusionará en una versión próxima de Ruby:Relacionado con este descubrimiento hay una solicitud de extracción de GitHub del autor que propone cómo reparar el problema en el código fuente de Ruby WEBrick: Corregir el error de regresión en la implementación de la opción de configuración de WEBrick: DoNotReverseLookup # 731
La solución como se describe en la solicitud es cambiar la línea 181
lib/webrick/server.rb
de esto:A esto:
Compartiendo aquí si alguien se tropieza con este hilo de preguntas / respuestas bien considerado y está interesado en el progreso en la resolución de este problema en Ruby Core. Con suerte, este tirón se fusionará o el problema subyacente se tratará de alguna manera en la próxima versión de Ruby; tal vez 2.1.6?
fuente
Esta es una respuesta muy tardía, pero pasé una buena parte del día depurando este mismo problema con Rails ejecutándose en Vagrant. Cambiar la búsqueda de DNS inversa en realidad no mejoró los tiempos de solicitud en absoluto. Una combinación de dos cosas llevó la carga de mi página de ~ 20 segundos a ~ 3 segundos en modo de desarrollo:
Reemplace WEBrick con mestizo. Tuve que usar la versión preliminar o no se instalaría:
sudo gem install mongrel --pre
Luego agréguelo a mi Gemfile para dev:
group :test, :development do gem 'mongrel' end
Entonces comencé mi servidor así:
Eso cortó unos segundos, 5 o 6 segundos, pero aún así fue terriblemente lento. Esta fue la guinda del pastel ; agregue esto también al Gemfile:
group :development do gem 'rails-dev-boost', :git => 'git://github.com/thedarkone/rails-dev-boost.git' end
fuente
No hay ninguna
DoNotReverseLookup
opción en ruby 1.8.x webrick. La solución es poner:en algún lugar al principio de su guión.
Fuente: WEBrick y Socket.do_not_reverse_lookup: A Tale in Two Acts
fuente
En mi situación probablemente rara, funcionó después de vaciar mis iptables, esto no tuvo ningún efecto secundario porque no tenía reglas personalizadas (solo el Ubuntu predeterminado permite todo):
fuente