1. 程式人生 > >記大問題:因為linux系統的控制代碼數限制導致連不上mq的問題

記大問題:因為linux系統的控制代碼數限制導致連不上mq的問題

在docker中模擬了數百臺客戶端連線執行在linux系統之上的mq,結果報連線不上的錯誤。

定位了好久,請教了一個前輩,在非常偶然的情況下發現了mq使用的控制代碼數為1021,而linux系統(沒有配置過)這個數值是1024,所以連線不上了

使用ulimit -n 65535修改linux系統新開程序開啟控制代碼數的限制,就能繼續正常使用了


上圖顯示了1024available,但是已經使用了1021個


修改ulimit -n之後的效果

修改之後要重啟mq。

另外其他的同事在寫C的時候也遇到過這個問題,他們的情況是開啟控制代碼之後忘了關閉,然後導致崩潰。