服务器操作系统常见的系统参数调优方法
linux系统调优包括两个文件,一个是limits.conf文件,一个是sysctl.conf文件,这两个文件分别在/etc/secriuty/limits.conf和/etc/sysctl.conf下,具体修改内容如下:
vi /etc/security/limits.conf
- soft nproc 11000 #限制最多打开的软件数
- hard nproc 11000 #限制打开软件的最多进程数
- soft nofile 655350#限制最多打开的文件数
- hard nofile 655350#限制最多运行的进程数,一般设置为65535
#优化TCP
vi /etc/sysctl.conf
#禁用包过滤功能
net.ipv4.ip_forward = 0
#启用源路由核查功能
net.ipv4.conf.default.rp_filter = 1
#禁用所有IP源路由
net.ipv4.conf.default.accept_source_route = 0
#使用sysrq组合键是了解系统目前运行情况,为安全起见设为0关闭
kernel.sysrq = 0
#控制core文件的文件名是否添加pid作为扩展
kernel.core_uses_pid = 1
#开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理
net.ipv4.tcp_syncookies = 1
#每个消息队列的大小(单位:字节)限制 重要
kernel.msgmnb = 65536
#整个系统最大消息队列数量限制 重要
kernel.msgmax = 65536
#单个共享内存段的大小(单位:字节)限制,计算公式64G1024 10241024(字节)
kernel.shmmax = 68719476736
#所有内存大小(单位:页,1页 = 4Kb),计算公式16G 10241024 1024/4KB(页)
kernel.shmall = 4294967296
#timewait的数量,默认是180000
net.ipv4.tcp_max_tw_buckets = 6000
#开启有选择的应答
net.ipv4.tcp_sack = 1
#支持更大的TCP窗口. 如果TCP窗口最大超过65535(64K), 必须设置该数值为1
net.ipv4.tcp_window_scaling = 1
#TCP读buffer
net.ipv4.tcp_rmem = 4096 131072 1048576
#TCP写buffer
net.ipv4.tcp_wmem = 4096 131072 1048576
#为TCP socket预留用于发送缓冲的内存默认值(单位:字节)
net.core.wmem_default = 8388608
#为TCP socket预留用于发送缓冲的内存最大值(单位:字节)
net.core.wmem_max = 16777216
#为TCP socket预留用于接收缓冲的内存默认值(单位:字节)
net.core.rmem_default = 8388608
#为TCP socket预留用于接收缓冲的内存最大值(单位:字节)
net.core.rmem_max = 16777216
#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目 重要
net.core.netdev_max_backlog = 262144
#web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而nginx定义的
NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值