cat /proc/39977/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 65535 65535 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 514823 514823 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
上面的展示是查看某個進程的打開文件的相關參數最大值,其中,Max open files 是打開文件的最大數量,那麼如何動態修改這個值呢? 畢竟1024太小了,操作如下:
# CentOS7系統使用命令
prlimit --nofile=65536:65536 --pid 39977
# CentOS6系統使用命令
echo - n "Max open files=65535:65535" > /proc/39977/limits
當然,可以通過重啓這個進程所對應的服務(如果可重啓,也不會來修改這個session裏的參數了)來重新讀取系統裏的默認設置。
擴展:
ulimit -n
# 臨時修改,重啓失效
ulimit -HSn 65536
# 永久解決
vim /etc/security/limits.conf
# 添加如下的行
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536