1. 程式人生 > >redis安裝後修改三個地方

redis安裝後修改三個地方

文件中 成功 生效 retain bsp 內存分配 enable details 大小


Redis學習筆記——啟動警告問題的解決

技術分享


如果啟動前不對linux內核做任何更改,那麽redis啟動會報出警告,共三個:如下圖所示

第一個警告: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.
臨時解決方法:(即下次啟動還需要修改此值)
echo 511 > /proc/sys/net/core/somaxconn

第一個警告的意思是:redis設置的tcp連接數受限於系統默認限制的/proc/sys/net/core/somaxconn中128,因此必須要先調整內核的連接數

永久解決方法:(即以後啟動還需要修改此值)
將其寫入/etc/rc.local文件中。
baklog參數實際控制的是已經3次握手成功的還在accept queue的大小。
參考linux裏的backlog詳解

————————————————————————————————————————————————————————————————————————————————————
第二個警告: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。
臨時解決方法:echo "vm.overcommit_memory=1" > /etc/sysctl.conf
永久解決方法:將其寫入/etc/sysctl.conf文件中。
參考:有關linux下redis overcommit_memory的問題

第二個警告的意思:系統默認是有空閑內存才會分配給redis,因此如果在內存不足的情況,redis存儲數據的時候可能會失敗。 所以要把內存分配機制,改為無論有沒有空閑內存,都要分配內存給redis
方法是:echo "vm.overcommit_memory=1" >> /etc/sysctl.conf 執行sysctl -p,使之生效



第三個警告: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。

永久解決方法:
將其寫入/etc/rc.local文件中。
參考透明大頁介紹。

參考鏈接:http://blog.csdn.net/a491857321/article/details/52006376

redis安裝後修改三個地方