Redis啓動的三個告警

現象說明:Redis啓動出現三個告警信息,然後在啓動Tomcat調用Redis的時候,Redis進程會自動宕掉。
在這裏插入圖片描述
1、第一個警告:The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

意思是:TCP backlog設置值,511沒有成功,因爲 /proc/sys/net/core/somaxconn這個設置的是更小的128.
關於Linux內核somaxconn參數:
定義了系統中每一個端口最大的監聽隊列的長度,這是個全局的參數,默認值爲128

臨時解決方法:(即下次啓動還需要修改此值)
echo 511 > /proc/sys/net/core/somaxconn

永久解決方法:(即以後啓動還需要修改此值)
將net.core.somaxconn = 1024添加到/etc/sysctl.conf中,然後執行sysctl -p生效配置
baklog參數實際控制的是已經3次握手成功的還在accept queue的大小。

參考linux裏的backlog詳解
https://blog.csdn.net/raintungli/article/details/37913765

2、第二個警告:overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to/etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.

意思是:overcommit_memory參數設置爲0!在內存不足的情況下,後臺程序save可能失敗。建議在文件 /etc/sysctl.conf 中將overcommit_memory修改爲1。

overcommit_memory是一個內核對內存分配的一種策略
overcommit_memory取值又三種分別爲0, 1, 2
overcommit_memory=0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,並把錯誤返回給應用進程。
overcommit_memory=1, 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。
overcommit_memory=2, 表示內核允許分配超過所有物理內存和交換空間總和的內存

臨時解決方法:echo “vm.overcommit_memory=1” > /etc/sysctl.conf

永久解決方法:將vm.overcommit_memory = 1添加到/etc/sysctl.conf中,然後執行sysctl -p生效配置。

參考:有關linux下redis overcommit_memory的問題
https://blog.csdn.net/whycold/article/details/21388455

3、第三個警告:you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix thisissue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain thesetting after a reboot. Redis must be restarted after THP is disabled.

意思是:使用的是透明大頁,可能導致redis延遲和內存使用問題。執行 echo never > /sys/kernel/mm/transparent_hugepage/enabled 修復該問題。

臨時解決方法:
echo never > /sys/kernel/mm/transparent_hugepage/enabled。

永久解決方法:
將echo never > /sys/kernel/mm/transparent_hugepage/enabled添加到/etc/rc.local中,執行source /etc/rc.local生效配置。

參考透明大頁介紹
https://www.cnblogs.com/kerrycode/archive/2015/07/23/4670931.html

設置修改後啓動redis無任何告警信息
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章