Redis啓動告警錯誤---優化處理
因客戶生產環境用戶量的增加,導致性能出現問題,公司讓我幫忙優化處理,在做好postgres數據庫讀寫分離部署和數據庫優化配置後,以及開發人員對SQL語法和大表等進行語法優化和表分區後,數據庫層面問題已解決,但是公司擔心客戶那邊後期用戶在擴張劇增,會導致服務無法支撐大併發,因此對現有環境進行優化配置:
一:建議持續跟蹤優化數據庫
二:建議客戶在購買一臺應用服務器,目前就一臺應用
三、集羣負載均衡重新優化改良
四、使用redis緩存數據庫來提高性能
目前第一項任務,只能通過運維方式持續監控,後面二、三兩項任務我這邊已經幫客戶那邊處理優化好,第四選項安裝配置redis,在安裝配置好後,通過redis日誌發現,啓動redis時會報告警信息,處理方法如下:
解決:
第一個警告:
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可能失敗。
臨時修改方案: echo 1 > /proc/sys/vm/overcommit_memory
第二個警告:
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沒有成功
臨時修改方案echo 511 > /proc/sys/net/core/somaxconn
第三個警告:
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。
重新啓動redis,日誌如下,說明問題解決;