2010-03-13 4 views
5

Je viens d'installer TeamBox sur mon serveur Ubuntu 9.10. Je l'ai installé sur le port 3000 en utilisant le script du serveur fourni.Ruby serveur très lent en dehors de localhost (teambox)

Il fonctionne extrêmement lentement, jusqu'à 30 secondes par requête HTTP lors de la connexion à partir d'un autre ordinateur.

J'ai utilisé des liens pour charger TeamBox à partir du shell et cela n'a pris aucun temps. J'ai ensuite mis en place un tunnel SSH et encore une fois il travaillait très vite.

Je cours environ 30 vhosts par l'intermédiaire d'apache sur ce serveur, aussi bien que SAMBA etc. et n'ai aucun problème.

Comment puis-je résoudre ce problème?

+0

Avez-vous déjà résolu ce problème? J'ai juste couru à travers un problème très semblable: Ubuntu 10.04, rails 3.0.1, en travaillant de localhost tout rapidement. Lorsque vous utilisez un autre serveur sur le réseau, les pages prennent plus de 30 secondes à charger. Cela arrive même avec une application totalement nouvelle/clean rails, donc je suspecte fortement qu'il y ait un problème de bibliothèque/réseau/configuration. –

+0

Après une enquête plus approfondie, je peux très bien pinger le serveur à partir d'autres ordinateurs et d'autres serveurs Web (par exemple Grails) fonctionnent très bien. Il est donc peu probable que ce soit un problème de système ou de réseau, mais seulement un problème de rails. –

Répondre

10

Ma redmine (rubis, webrick) est trop lente. Maintenant, j'ai résolu ce problème: apt-get install mongrel
ruby /home/redmine/redmine/script/server mongrel -e production
fait, et redmine travailler très bonne vitesse! par

+0

Je voulais juste noter que cette solution fonctionne parfaitement. Installez mongrel, et exécutez "rails server mongrel" et maintenant les demandes à localhost et d'autres machines fonctionnent également rapidement. Je ne sais pas quel est le problème, mais je suppose que WEBrick a des problèmes sur Ubuntu. –

2

Vous utilisez un passager? J'ai eu le même problème il y a quelques semaines et j'ai résolu le problème en ajoutant ceci à mon fichier vhost.

# Speeds up spawn time tremendously -- if your app is compatible. 
    # RMagick seems to be incompatible with smart spawning 
    RailsSpawnMethod smart 

    # Just in case you're leaking memory, restart a listener 
    # after processing 5000 requests 
    PassengerMaxRequests 5000 

    # only check for restart.txt et al up to once every 5 seconds, 
    # instead of once per processed request 
    PassengerStatThrottleRate 5 

    # Keep the spawners alive, which speeds up spawning a new Application 
    # listener after a period of inactivity at the expense of memory. 
    RailsAppSpawnerIdleTime 0 

    # Additionally keep a copy of the Rails framework in memory. If you're 
    # using multiple apps on the same version of Rails, this will speed up 
    # the creation of new RailsAppSpawners. This isn't necessary if you're 
    # only running one or 2 applications, or if your applications use 
    # different versions of Rails. 
    RailsFrameworkSpawnerIdleTime 0 

    # Keep the application instances alive longer. Default is 300 (seconds) 
    PassengerPoolIdleTime 1000 
+0

Ne pas utiliser le passager. Je n'exécute pas Teambox par Apache, mais en utilisant le serveur python qui l'accompagne. Je suis confus pourquoi il y aurait une différence de vitesse énorme entre l'accès via localhost et l'accès à travers le réseau local. Le délai se produit à chaque requête HTTP envoyée au serveur. Cela ressemble plus à un problème de réseau. Une fois que le serveur python reçoit la demande, il la traite très rapidement. Qu'est-ce qui pourrait causer ça? – ncatnow

+0

@natcow: La recherche DNS si vous n'utilisez pas d'adresse IP est la plus courante –