Linux设置最大打开文件数(句柄)
## 在 /etc/security/limits.conf 文件的末尾加入以下内容
### nofile为用户能够打开的文件数
sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
## 在 /etc/security/limits.d/20-nproc.conf 文件的末尾加入以下内容
sudo vim /etc/security/limits.d/20-nproc.conf
* soft nofile 65536
* hard nofile 65536
## 重新用户登录后生效
## 使用以下命令查看具体值是否已经变化生效
ulimit -a
...
open files (-n) 65536
...
max user processes (-u) 131072
...
查看进程已经打开的文件数
# 查看文件已经打开的句柄
lsof -p pid
# 查看文件已经打开的句柄数
lsof -p pid | wc -l
查看进程当前最大能够打开的文件数
cat /proc/pid/limits
...
Max open files 4096 4096 files
...
通过systemctl启动的服务的最大文件数设置
[Unit]
Description=onos
After=mysqld.service
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/home/data/onos/start.sh
ExecStop=/home/data/onos/stop.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
关键是LimitNOFILE=65536
将该服务能够打开的最大文件数设置为了65536