Oll*_*lie 13 ubuntu ulimit redis systemd ubuntu-16.04
从Ubuntu 14.04交换到16.04后,我的新redis服务器出现了问题.使用所有指南配置打开文件限制说使用以下设置更改/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535
Run Code Online (Sandbox Code Playgroud)
并且还要添加到/etc/pam.d/common-session和/etc/pam.d/common-session-noninteractive
session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)
我已经完成了所有这些更改,但redis仍然启动时文件限制为4096,在生产负载下,我们很快达到最大连接数.
Oll*_*lie 31
经过多次搜索后,我终于发现systemd的标准限制为4096,无论你在系统级别设置什么,systemd级别总是优先.解决此问题的方法是通过编辑/etc/systemd/system.conf并添加以下设置来更改systemd打开文件限制
DefaultLimitNOFILE=65536
Run Code Online (Sandbox Code Playgroud)
似乎systemd中有很多默认设置会覆盖系统设置,因此必须在systemd中设置
因此,如果它对人们有用,这些是我用于运行生产redis的Ubuntu 16.04服务器的最终设置.
编辑/etc/systemd/system.conf(sudo nano /etc/systemd/system.conf)并添加
DefaultLimitNOFILE=65536
Run Code Online (Sandbox Code Playgroud)
编辑/etc/security/limits.conf(sudo nano /etc/security/limits.conf)并添加
* soft nofile 64000
* hard nofile 64000
root soft nofile 64000
root hard nofile 64000
Run Code Online (Sandbox Code Playgroud)
编辑/etc/pam.d/common-session(sudo nano /etc/pam.d/common-session)并添加
session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)
编辑/etc/pam.d/common-session-noninteractive(sudo nano /etc/pam.d/common-session-noninteractive)并添加
session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)
编辑/etc/rc.local(sudo nano /etc/rc.local)并添加
sysctl -w net.core.somaxconn=65535
Run Code Online (Sandbox Code Playgroud)
编辑/etc/sysctl.conf(sudo nano /etc/sysctl.conf)并添加
vm.overcommit_memory = 1
Run Code Online (Sandbox Code Playgroud)
编辑/etc/rc.local(sudo nano /etc/rc.local)并添加
echo never > /sys/kernel/mm/transparent_hugepage/enabled
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7466 次 |
| 最近记录: |