OpenStack報錯:MessagingTimeout: Timed out waiting for a reply to message ID


L3.agent中出現大量消息超時錯誤,對網絡的操作各種異常。

報錯如下:

2018-09-24 05:54:59.886 15110 ERROR neutron.agent.l3.agent [req-db9207e6-9270-4f23-8c19-0d91d20cc6fb ] Failed synchronizing routers due to RPC error 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent Traceback (most recent call last): 2016-02-25 05:54:59.886 15110 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 593, in fetch_and_sync_all_routers 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent     routers = self.plugin_rpc.get_routers(context) 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 93, in get_routers 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent     router_ids=router_ids) 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/client.py", line 156, in call 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent     retry=self.retry) 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/oslo_messaging/transport.py", line 90, in _send 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent     timeout=timeout, retry=retry) 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py", line 350, in send 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent     retry=retry) 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py", line 339, in _send 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent     result = self._waiter.wait(msg_id, timeout) 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py", line 243, in wait
2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent     message = self.waiters.get(msg_id, timeout=timeout) 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py", line 149, in get 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent     'to message ID %s' % msg_id) 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent MessagingTimeout: Timed out waiting for a reply to message ID d4baae114cee4f6d831c5eec3c5f0de3 2018-09-24 05:54:59.886 15110 TRACE neutron.agent.l3.agent

所有超時都指向同步路由的操作。 而且同步失敗時,rabbit中的隊列q-l3-plugin中有大量未應答消息積壓,該隊列為同步路由時使用,路由同步時會使用消息隊列傳送所有路由的屬性詳情,消息量很大。

1)測試是否由於消息太大導致,編寫測試代碼,嘗試連續1000次發送該消息,並未出現丟失消息的情況。

2)嘗試減少路由器數量,短時內情況有所改善,但是隨時間增加,消息積壓依然有更加嚴重的趨勢。

最終跟蹤neutron代碼,發現消息隊列出現Timeout的原因是: neutron在同步路由信息時,會從neutron-server獲取所有router的信息,這個過程會比較長(130s左右,和網絡資源的多少有關系),而 在/etc/neutron/neutron.conf中會有一個配置項“rpc_response_timeout”,它用來配置RPC的超時時間,默認為60s,所以導致超時異常.

解決方法:

vi /etc/neutron/neutron.conf rpc_response_timeout=180

問題解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM