2017-06-05 2 views
0

Je réécris mon projet de python tornado pour aller (utiliser le cadre iris). La fonction de base testée ok. Lorsque je teste sous haute application concurrence.the arrête toujours un certain temps, puis sort les erreurs:getsockopt: connexion expiré

(dial tcp 192.168.1.229:6543: getsockopt: connection timed out) 

le port 6543 est le port utilisé avec postgresql pgbouncer ... le processus de pgbouncer et postgresl fonctionne Ok.

En outre, je trouve que le délai de connexion memcache parfois (le processus memcache fonctionne toujours).

Est-ce que cela arrive parce que trop de connexions? Ou certaines connexions pas fermé à temps? Comment puis-je éviter ce problème?

Répondre

0

Vérifiez votre PgBouncer config. Essayez d'augmenter l'option max_client_conn. Expérimentez ensuite avec le niveau de concurrence et le nombre de requêtes pendant le test de stress. Un autre problème possible peut être que vous ne renvoyez pas les connexions au pool.

+0

C'est l'impuissance qui augmente le max_client_conn dans pgbouncer.ini.The memcache a également signalé que le délai d'attente de connexion –

+0

Essayez de faire la prochaine chose: exécuter 2 copies de votre application et stress test un seul d'entre eux. Après qu'il commencera à lancer des erreurs, commencez à travailler avec la deuxième copie de l'application. De cette façon, vous saurez, si c'est un problème de votre application (2ème copie fonctionne bien), ou vous atteignez certaines limitations de l'OS ou PgBouncer/Memcached (2ème copie échoue rapidement). – berserkk