新服务器上线优化调整
1. 写入到系统配置重新登录终端生效配置只对使用二进制启动的进程生效对于使用systemd管理的进程不生效已经运行的进程不生效。cat/etc/security/limits.confEOF# 限制用户能打开的进程数*soft nproc1000000*hard nproc1000000# 限制用户能打开的文件描述符数量*soft nofile1000000*hard nofile1000000# 允许进程锁定物理内存禁止交换到 Swap降低延迟这里是不限制*soft memlock unlimited*hard memlock unlimited EOF[rootlocalhost ~]# ulimit -n 1000000 [rootlocalhost ~]# ulimit -u 1000000 [rootlocalhost ~]# ulimit -m unlimited启动新进程查看效果[rootlocalhost ~]# python3 -m http.server 8888 [1] 5321 [rootlocalhost ~]# cat /proc/5321/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 unlimited unlimited bytes Max resident set unlimited unlimited bytes Max processes 1000000 1000000 processes # 打开进程数 Max open files 1000000 1000000 files # 打开文件数 Max locked memory unlimited unlimited bytes # 最大锁定内存 Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 6790 6790 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us2. 写入到systemd配置文件对使用systemd管理的服务生效同样已运行的进程不生效。cat/etc/systemd/system.confEOF# 限制用户能打开的文件描述符数量DefaultLimitNOFILE1000000# 限制用户能打开的进程数DefaultLimitNPROC1000000# 允许进程锁定物理内存禁止交换到 Swap降低延迟这里是不限制DefaultLimitMEMLOCKinfinity EOF systemctl daemon-reexec查看是否生效[rootlocalhost ~]# systemctl show --no-pager \ -p DefaultLimitNOFILE \ -p DefaultLimitNPROC \ -p DefaultLimitMEMLOCK DefaultLimitNOFILE1000000 DefaultLimitNPROC1000000 DefaultLimitMEMLOCKinfinity启动新的service服务查看效果dnf -y install httpd systemctl start httpd [rootlocalhost ~]# pidof httpd 8672 8671 8670 8669 8668 [rootlocalhost ~]# cat /proc/5321/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 unlimited unlimited bytes Max resident set unlimited unlimited bytes Max processes 1000000 1000000 processes # 最大进程 Max open files 1000000 1000000 files # 最大文件 Max locked memory unlimited unlimited bytes # 锁定内存限制 Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 6790 6790 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us3. 修改当前运行进程的限制[rootlocalhost ~]# pidof httpd 4133 4132 4131 4130 4129 [rootlocalhost ~]# cat /proc/4133/limits | grep -E Max processes|Max open files|Max locked memory Max processes 6790 6790 processes # 当前最大进程 Max open files 1024 524288 files # 当前文件 Max locked memory 8388608 8388608 bytes # 当前限制内存 [rootlocalhost ~]# prlimit --pid4133 \ --nofile1000000:1000000 \ --nproc1000000:1000000 \ --memlockunlimited:unlimited [rootlocalhost ~]# cat /proc/4133/limits | grep -E Max processes|Max open files|Max locked memory Max processes 1000000 1000000 processes # 修改后 Max open files 1000000 1000000 files # 修改后 Max locked memory unlimited unlimited bytes # 修改后补充prlimit查看或修改运行中进程的系统资源限制如文件句柄、进程数、锁内存等支持在线热调整且不中断业务基本用法查看限制prlimit -p修改限制prlimit --pid – 资源 软限硬限通用参数-p, --pid → 指定进程 PID-h, --help → 显示帮助-V, --version → 显示版本资源限制参数核心-n, --nofile → 最大打开文件数高并发关键-u, --nproc → 最大用户进程 / 线程数-l, --memlock → 最大锁定物理内存不换 swap其他常用参数-c, --core → 核心转储文件大小-d, --data → 进程数据段大小-e, --nice → 最大 nice 优先级-f, --fsize → 文件最大可写大小-i, --sigpending → 最大挂起信号数-m, --rss → 常驻内存集-q, --msgqueue → POSIX 消息队列大小-r, --rtprio → 实时调度优先级-s, --stack → 最大栈大小-t, --cpu → CPU 时间限制-v, --as → 虚拟内存大小-x, --locks → 文件锁数量-y, --rttime → 实时调度 CPU 时间