J'ai une application Rails que j'exécute sur mon serveur. Lorsque je vais sur un bureau distant et que je tente de charger l'application, le serveur prend 3-4 bonnes minutes pour répondre avec une simple page HTML. Cependant, lorsque je charge la page localement sur le serveur, la page s'affiche en une seconde. J'ai essayé d'envoyer une requête ping au serveur à partir de mon bureau distant et les requêtes ping réussissent dans un laps de temps raisonnable.
Tout cela semble avoir commencé après avoir installé le client de base d'Oracle et SQLPLUS. Dois-je suspecter Oracle? Quelqu'un a-t-il vécu quelque chose de similaire?
ruby-on-rails
oracle
sqlplus
webrick
Prof. Falken
la source
la source
Réponses:
Avoir le même problème ici (même un an plus tard). Sous Linux, vous devez faire ce qui suit:
Recherchez le fichier /usr/lib/ruby/1.9.1/webrick/config.rb et modifiez-le.
Remplacez la ligne
avec
Redémarrez webrick et cela fonctionnera comme un charme :)
la source
Avait le même problème. Pour moi, ce post était la solution. Si vous êtes sur Ubuntu, arrêtez (ou désinstallez) le
avahi-daemon
.service avahi-daemon stop
arrête le démon.Webrick se sent maintenant très rapide.
Le problème a un ancien rapport dans Rails Lighthouse , cependant, Ruby-on-Rails a déplacé leurs tickets vers github depuis lors; Un peu dommage que ce vieux problème persiste encore.
Sachez cependant que si vous utilisez réellement
avahi-daemon
pour quelque chose, comme trouver des imprimantes et des scanners sur votre réseau, cela ne fonctionnera plus.la source
J'ai juste eu le même problème. le
a fait l'affaire pour moi aussi. Juste au cas où vous utiliseriez ruby sous le rvm, voici le chemin à suivre:
la source
"Thin" est désormais une excellente option pour exécuter les deux localement
et sur Heroku:Sur Heroku: https://devcenter.heroku.com/articles/rails3#webserverSite Web: http://code.macournoyer.com/thin/
Vous pouvez l'utiliser localement en mettant dans votre Gemfile:
... puis exécutez bundle et démarrez votre serveur avec
thin start
ourails s
.Mise à jour sur Heroku
Thin est maintenant considéré comme un mauvais choix pour Heroku. Plus d'informations ici:
https://blog.heroku.com/archives/2013/4/3/routing_and_web_performance_on_heroku_a_faq
Leur recommandation:
la source
gem install thin
. Voir sinatrarb.com/intro.html Il est également recommandé d'exécuter gem install thin, que Sinatra récupérera si disponible. EDIT: Améliorations drastiques des performances. De 1,3 s à 0,05 s.J'ai eu un problème vaguement similaire qui s'est manifesté lors de l'accès à un serveur WEBrick via un VPN. Les demandes prendraient beaucoup de temps, la plupart sans rien sur le fil. Puisque ni
mongrel
ni lesthin
gemmes ne fonctionnaient avec Ruby1.9 sur Windows et qu'il n'y avait aucun moyen de me mêler de compiler des éléments à partir des sources, je devais m'en tenir à WEBrick.Le correctif consistait à définir le paramètre de configuration
DoNotReverseLookup
surtrue
, lors de la création du serveur WEBrick:la source
Vous pouvez utiliser
Apache
ou installerThin
. Dans votre Gemfile:gem 'thin'
Vous pouvez également consulter la liste des serveurs Web pour les rails .
la source
J'essayais de le faire avec webrick sur 1.8.7 et je n'ai pas trouvé la configuration à changer. Cependant, une astuce que vous pouvez utiliser consiste à ajouter au fichier hosts du serveur qui exécute webrick l'adresse IP qu'il tente d'inverser la recherche.
la source
J'ai fréquemment rencontré des retards de 10 secondes avec Sinatra. Cet extrait de code l'a résolu pour moi.
Ajoutez ceci en haut de votre
app.rb
fichierVoir la source
la source
Il s'agit d'un ancien fil de questions et réponses qui m'a aidé à résoudre le
:DoNotReverseLookup
problème sur une machine virtuelle de développement local et qui souhaitait ajouter des informations supplémentaires. Cette page Web explique l'erreur de régression dans Ruby core qui a conduit à l'apparition de ce problème pour certains; l'accent est le mien; En bref, il y a une demande de tirage GitHub pour un correctif du noyau Ruby à ce sujet et j'espère qu'elle sera approuvée et fusionnée dans une version bientôt ish de Ruby:Lié à cette découverte est une demande d'extraction GitHub de l'auteur proposant comment réparer le problème dans le code source de Ruby WEBrick: Correction d'un bug de régression dans WEBrick's: implémentation de l'option de configuration DoNotReverseLookup # 731
La solution décrite dans la demande consiste à modifier la ligne 181 à
lib/webrick/server.rb
partir de ceci:Pour ça:
Partage ici si quelqu'un trébuche sur ce fil de questions / réponses bien considéré et est intéressé par les progrès réalisés dans la résolution de ce problème dans Ruby core. Espérons que cette attraction sera fusionnée ou que le problème sous-jacent sera traité d'une manière ou d'une autre dans la prochaine version de Ruby; peut-être 2.1.6?
la source
C'est une réponse très tardive mais j'ai passé une bonne partie de la journée à déboguer ce même problème avec Rails fonctionnant sur Vagrant. La modification de la recherche DNS inversée n'a pas du tout amélioré les temps de demande. Une combinaison de deux choses a fait passer le chargement de ma page de ~ 20 secondes à ~ 3 secondes en mode développement:
Remplacez WEBrick par bâtard. J'ai dû utiliser la version préliminaire ou elle ne s'installerait pas:
Ensuite, ajoutez-le à mon Gemfile pour dev:
J'ai démarré mon serveur comme ceci alors:
Cela a coupé quelques secondes, 5 ou 6 secondes, mais c'était toujours terriblement lent. C'était la cerise sur le gâteau - ajoutez ceci également au Gemfile:
la source
Il n'y a pas d'
DoNotReverseLookup
option dans ruby 1.8.x webrick. La solution est de mettre:quelque part au début de votre script.
Source: WEBrick et Socket.do_not_reverse_lookup: Une histoire en deux actes
la source
Dans ma situation probablement rare, cela a fonctionné après avoir vidé mes iptables, cela n'a eu aucun effet secondaire car je n'avais pas de règles personnalisées (juste Ubuntu par défaut autorise tout):
la source