系统优化之:文件
1、open files数量优化
ulimit -a查看系统参数,其中open files (-n) 1024,表示系统同时最多能打开的文件数。linux下的所有设备都可以认为是文件,包括网络连接,如果同时超过1024个连接,那么nginx的日志就会报“24: Too many open files”
修改/etc/profile,增加以下参数临时生效
ulimit -n 65535
或
ulimit -SHn 65535
或
编辑文件:/etc/security/limits.conf(永久生效,但要重启服务器)
# End of file
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
2、disable selinux
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
3、系统中开启HugePage
ssysctl vm.nr_hugepages=512
分配512个预留的大页内存
$ cat /proc/meminfo | grep Huge
AnonHugePages: 106496 kB
HugePages_Total: 512
HugePages_Free: 504
HugePages_Rsvd: 27
HugePages_Surp: 0
Hugepagesize: 2048 kB
4、最大进程数/线程数( 有些系统可能会没有此文件)
/etc/security/limits.d/20-nproc.conf(没有此文件有90-nproc.conf文件也可以,有些系统都没有两个文件,跳过,继续看下面操作也一样)
这里的4096也要改。
注:如果程序运行在docker,相关docker参数也得改。
linux系统可生成最大线程数可以用这个命令查询:
cat /proc/sys/kernel/threads-max
进程最大线程数查询方式
ps -eLf | grep 项目名 | wc -l 查看单个项目线程数,启动失败的这个项目线程数一般在600左右
cat /proc/sys/vm/max_map_count
65530
用户最大进程数查询方式:
ulimit -a
其中max user processes就是表示用户的最大进程数,我的这个值很大,进程数也没有超过它。如果超过的话,可以修改最大进程数的配置
vi /etc/security/limits.d/90-nproc.conf
* soft nproc 1024
root soft nproc unlimited
上面可以看除了root用户外的所有用户均限制为1024,因此通过可以注释此行或者将值改大,保存后修改立刻生效
#* soft nproc 1024
root soft nproc unlimited
整个系统已用的线程或进程数
cat /proc/sys/kernel/pid_max
该值是32678(32位Linux系统可创建的最大pid数是32678),查询当前整个系统已用的线程或进程数:pstree -p | wc -l。
注:此参数请专业运维操作,不要自己乱改。
|