Sau nhiều lần tìm kiếm, cuối cùng tôi thấy rằng systemd có giới hạn tiêu chuẩn là 4096 và bất kể bạn đặt gì ở cấp hệ thống, cấp systemd sẽ luôn được ưu tiên. Cách khắc phục là thay đổi giới hạn tệp mở hệ thống bằng cách chỉnh sửa /etc/systemd/system.conf và thêm cài đặt sau
DefaultLimitNOFILE=65536
Có vẻ như có rất nhiều cài đặt mặc định trong systemd ghi đè cài đặt hệ thống nên bạn phải đặt trong systemd
Vì vậy, nếu nó được sử dụng cho mọi người, đây là cài đặt cuối cùng của tôi cho máy chủ Ubuntu 16.04 để chạy redis sản xuất.
Chỉnh sửa /etc/systemd/system.conf (sudo nano /etc/systemd/system.conf) và thêm
DefaultLimitNOFILE=65536
Chỉnh sửa /etc/security/limits.conf (sudo nano /etc/security/limits.conf) và thêm
* soft nofile 64000
* hard nofile 64000
root soft nofile 64000
root hard nofile 64000
Chỉnh sửa /etc/pam.d/common-session (sudo nano /etc/pam.d/common-session) và thêm
session required pam_limits.so
Chỉnh sửa /etc/pam.d/common-session-noninteractive (sudo nano /etc/pam.d/common-session-noninteractive) và thêm
session required pam_limits.so
Chỉnh sửa /etc/rc.local (sudo nano /etc/rc.local) và thêm
sysctl -w net.core.somaxconn=65535
Chỉnh sửa /etc/sysctl.conf (sudo nano /etc/sysctl.conf) và thêm
vm.overcommit_memory = 1
Chỉnh sửa /etc/rc.local (sudo nano /etc/rc.local) và thêm
echo never > /sys/kernel/mm/transparent_hugepage/enabled