$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7828 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 655350 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 655350 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited # 临时更改限额 $ ulimit -n 65535 $ ulimit -n 65535 # 全局更改资源限制,添加如下配置到conf文件中,nproc表示-u选项,nofile表示-n选项,建议重启机器 $ more /etc/security/limits.conf * soft nproc 655350 * hard nproc 655350 * soft nofile 655350 * hard nofile 655350 # 同时需要删除或重命名以下子配置文件,避免影响全局配置 $ mv /etc/security/limits.d/20-nproc.conf /etc/security/limits.d/20-nproc.conf.bak
关于最大文件句柄数 对于服务器来说,内核参数file-max和ulimit都需要设置,否则会出现文件描述符耗尽的问题。一般如果遇到文件句柄达到上限时,会碰到”Too many open files”或者Socket/File: Can’t open so many files等错误。 file-max 内核参数,表示系统级别的能够打开的文件句柄的数量,即系统所有进程一共可以打开的文件数量,是对整个系统的限制,并不是针对用户的。 ulimit -n 控制进程级别能够打开的文件句柄的数量,即当前shell及其启动的进程可以打开的文件数量,这是进程级别的。