単純な NGnix + Gunicorn + Django + MySQL (RDS on AWS) スタックを実行しようとしていますが、明らかに、MySQL クエリで何かが発生すると、速度が低下し、サービスがロックダウンされます。
それを防ぐために、私は eventlet を使い始めました (Celery との相性も良い) が、MySQLdb にパッチを当てると、パフォーマンスが低下し (応答時間が 2 ~ 3 倍)、不安定になる (再起動時にすべてのデータベース接続が数秒間ロックされる可能性がある) ようです。
セロリと同じロジックのイベントレットは問題なく動作するようですが、何が足りないのでしょうか?
try:
import eventlet
worker_class = 'egg:gunicorn#eventlet'
worker_connections = 1000
def do_post_fork(server, worker):
eventlet.monkey_patch()
eventlet.monkey_patch(MySQLdb=True)
post_fork = do_post_fork
except ImportError as e:
import logging
logging.exception(e)
pass
ありがとう!