4

多数のワーカーに負荷を分散しているアプリがあります。これまでのところ、すべてのワーカーは同じ VM で実行されており、まだスケールアップする必要はありません。私の問題は、3〜4日ごとに、ワーカーが以下のエラーメッセージでクラッシュすることです.1200秒以内にクライアントとrabbitmqサーバーの間に連絡がありません(推測)。

Traceback (most recent call last):
  File "/var/www/vhosts/niklas/workers/builder.py", line 170, in <module>
    BuildWorker().main()
  File "/var/www/vhosts/niklas/lib/worker.py", line 29, in main
    self.msgs.ch.start_consuming()
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/blocking_connection.py", line 722, in start_consuming
    self.connection.process_data_events()
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/blocking_connection.py", line 93, in process_data_events
    self.process_timeouts()
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/blocking_connection.py", line 99, in process_timeouts
    self._call_timeout_method(self._timeouts.pop(timeout_id))
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/blocking_connection.py", line 164, in _call_timeout_method
    timeout_value['method']()
  File "/usr/local/lib/python2.6/dist-packages/pika/heartbeat.py", line 85, in send_and_check
    return self._close_connection()
  File "/usr/local/lib/python2.6/dist-packages/pika/heartbeat.py", line 106, in _close_connection
    HeartbeatChecker._STALE_CONNECTION % duration)
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/blocking_connection.py", line 75, in close
    self.process_data_events()
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/blocking_connection.py", line 91, in process_data_events
    self._handle_timeout()
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/blocking_connection.py", line 198, in _handle_timeout
    self._on_connection_closed(None, True)
  File "/usr/local/lib/python2.6/dist-packages/pika/adapters/blocking_connection.py", line 235, in _on_connection_closed
    raise exceptions.AMQPConnectionError(*self.closing)
pika.exceptions.AMQPConnectionError: (320, 'Too Many Missed Heartbeats, No reply in 1200 seconds')

私の質問は、これを引き起こす可能性のあるものは何ですか? これは 3 つのワーカーのうち 1 つにのみ発生し、他のワーカーはエラー メッセージや警告なしで正常に動作しています (同じ VM 上のすべてのワーカーと rabbitmq-server)。新しいリクエストを取得するために、Python ライブラリ pika の標準メソッド start_using() を使用しています。コードが大きすぎてここに添付されており、エラーメッセージを考慮すると、私のコードまたはシステムの問題のようです。

私は使用しています:

  • Python ピカ 0.9.8
  • Rabbitmq 3.0.0
  • デビアン 6.0
  • すべてのワーカーは画面内で開始されます
  • Linode でホストされる VM、512MB メモリ
4

1 に答える 1