经过很多搜索,我终于发现systemd有一个标准限制为4096,而无论您在系统级别上设置什么,systemd级别将始终优先。解决此问题的方法是通过编辑/etc/systemd/system.conf来更改systemd打开文件限制,并添加以下设置:
DefaultLimitNOFILE=65536
看起来systemd中有许多默认设置会覆盖系统设置,因此必须在systemd中进行设置。
因此,如果对人们有用的话,这是我的Ubuntu 16.04服务器的最终设置,用于运行生产Redis。
编辑/etc/systemd/system.conf(sudo nano /etc/systemd/system.conf)并添加:
DefaultLimitNOFILE=65536
编辑/etc/security/limits.conf文件(sudo nano /etc/security/limits.conf)并添加以下内容:
* soft nofile 64000
* hard nofile 64000
root soft nofile 64000
root hard nofile 64000
编辑/etc/pam.d/common-session (sudo nano /etc/pam.d/common-session),并添加
session required pam_limits.so
编辑 /etc/pam.d/common-session-noninteractive(sudo nano /etc/pam.d/common-session-noninteractive)并添加:
session required pam_limits.so
编辑/etc/rc.local文件(sudo nano /etc/rc.local),并添加以下内容
sysctl -w net.core.somaxconn=65535
编辑/etc/sysctl.conf (sudo nano /etc/sysctl.conf)并添加
vm.overcommit_memory = 1
编辑 /etc/rc.local 文件 (sudo nano /etc/rc.local),然后添加以下内容
echo never > /sys/kernel/mm/transparent_hugepage/enabled