ulimit参数
- 打开文件句柄数限制Max open files
- 最大进程数max user processes
- CPU占用时间限制Max cpu time
- 创建文件大小限制Max file size
- 进程数据块的大小限制Max data size
- 分配堆栈的最大大小限制Max stack size
- 内核文件的大小限制Max core file size
- 常驻内存集的大小限制Max resident set
- 可加锁内存大小限制Max locked memory
- 最大虚拟内存限制virtual memory
查看所有进程的资源限制
cat /etc/security/limits.conf
查看用户进程级资源限制(文件句柄最大默认1024)
ulimit -a
查看某个进程的资源限制
/proc/PID/limits
查看系统级文件句柄限制
cat /proc/sys/fs/file-max
查看系统级最大线程数限制(默认65530)
cat /proc/sys/vm/max_map_count
常用设置
用户进程级修改立即生效
ulimit -SHn 2048000
ulimit -SHu unlimited
用户进程级修改重启永久生效
cat > /etc/security/limits.conf << EOF
* soft nofile 2048000
* hard nofile 2048000
* soft noproc unlimited
* hard noproc unlimited
EOF
系统级修改即时生效
sysctl -p /etc/sysctl.conf
sysctl -w fs.file-max=38180200
sysctl -w vm.max_map_count=6553000
系统级修改永久生效
cat >/etc/sysctl.conf<<EOF
fs.file-max=38180200
vm.max_map_count=6553000
EOF
sysctl -p
docker启动时修改
docker run -d --ulimit nofile=204800:409600 --ulimit nproc=10240:20480 --name=test centos /bin/bash -c 'tail -f /var/log/lastlog'
docker exec test /bin/bash -c 'ulimit -a'