Po dlouhém hledání jsem nakonec zjistil, že systemd má standardní limit 4096 a bez ohledu na to, co nastavíte na systémové úrovni, bude mít vždy přednost úroveň systemd. Řešením je změnit limit otevřených souborů systemd úpravou /etc/systemd/system.conf a přidáním následujícího nastavení
DefaultLimitNOFILE=65536
Zdá se, že v systemd je mnoho výchozích nastavení, která přepisují nastavení systému, takže je musíte nastavit v systemd
Takže pokud je to pro lidi užitečné, toto jsou moje konečná nastavení pro server Ubuntu 16.04 pro provozování produkčního redis.
Upravte /etc/systemd/system.conf (sudo nano /etc/systemd/system.conf) a přidejte
DefaultLimitNOFILE=65536
Upravte /etc/security/limits.conf (sudo nano /etc/security/limits.conf) a přidejte
* soft nofile 64000
* hard nofile 64000
root soft nofile 64000
root hard nofile 64000
Upravte /etc/pam.d/common-session (sudo nano /etc/pam.d/common-session) a přidejte
session required pam_limits.so
Upravte /etc/pam.d/common-session-noninteractive (sudo nano /etc/pam.d/common-session-noninteractive) a přidejte
session required pam_limits.so
Upravte /etc/rc.local (sudo nano /etc/rc.local) a přidejte
sysctl -w net.core.somaxconn=65535
Upravte /etc/sysctl.conf (sudo nano /etc/sysctl.conf) a přidejte
vm.overcommit_memory = 1
Upravte /etc/rc.local (sudo nano /etc/rc.local) a přidejte
echo never > /sys/kernel/mm/transparent_hugepage/enabled