+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
张贺,多年互联网行业工作经验,担任过网络工程师、系统集成工程师、LINUX系统运维工程师
个人网站:www.zhanghehe.cn
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
基本内核参数调优
内核参数显示:
[root@kk ~]# ulimit -a
core file size (blocks, -c) 0
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
max user processes (-u) 7827
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
core file size
core file 类似于debug的调试文件,当某个进程出现一些异常时,可以通过此文件来观察问题,通过c写的程序就可以使用core file来调试,比如nginx。core file size
默认是0,也就是关闭状态,可以通过以下命令打开:
[root@kk ~]# ulimit -c unlimited
[root@kk ~]# ulimit -a | head -1
core file size (blocks, -c) unlimited
file size
文件文本的最大的大小,比如控制日志文件的大小,最好也不要修改。
缺点就是如果超时此规定的大小时,容易造成应用程序日志写入失败,无法正常使用。
max locked memory
最大锁内存,默认64,也基本足够了。
max memory size
最大内存大小,默认不限制,我们最好也不要限制。
open files
打开文件数,最重要的一个参数,默认1024,不太够,修改大一些,改成65535就差不多了。
[root@kk ~]# ulimit -n 65536
[root@kk ~]# ulimit -a | grep files
open files (-n) 65536
由其像负载均衡这类服务器,一手托两家,套接字文件不够用。
max user processes
最大用户进程数,指定某一个用户最多可以打开多少进程,默认限制在7827,调整成655535为好。
[root@kk ~]# ulimit -u 65565
[root@kk ~]# ulimit -a | grep user
max user processes (-u) 65565
以上设置都是临时生效,怎样永久生效呢?
//这个配置文件当中有书写规则,一看就懂,与ulimit -a对应,有软限制和硬限制两种,最好都限制上。
[root@kk ~]# vim /etc/security/limits.conf
* soft nofile 65565 #打开文件的的软限制
* hard nofile 65565 #打开文件的的硬限制
* hard nproc 65565 #用户打开进程数的的软限制,仅在root用户生效
* hard nproc 65565 #用户打开进程数的的硬限制,仅在root用户生效
注意,无论你是通过命令修改还是通过配置文件修改,假如程序已经运行起来了,比如nginx,那就需要重启服务才能生效的,所以这一步最好在安装系统的时候就做好。
用户打开进程数据除了在在/etc/security/limits.conf
配置,还可以在/etc/security/limits.d/20-nproc.conf
,而且在这个文件当中的修改可以作用于普通用户,如果我们修改用户打开的最大进程数的话,最好在此处修改,不要在/etc/security/limits.conf
文件里面修改了。
[root@kk limits.d]# pwd
/etc/security/limits.d
//以下是默认参数
[root@kk limits.d]# vim 20-nproc.conf
* soft nproc 4096 #除了root之外的用户,可都改成65535
root soft nproc unlimited #root用户,也改成65535