优化操作系统本身


操作系统:CentOS 7.2 x86_64


内核参数优化:

vim /etc/sysctl.conf

#系统所有进程一共可以打开的文件数量 。同时一些程序可以通过setrlimit调用,设置每个进程的限制。如果得到大量使用完文件句柄的错误信息,是应该增加这个值。

fs.file-max = 600000

# 端口使用的范围

net.ipv4.ip_local_port_range = 9500 65000

# 接收套接字缓冲区大小的最大(以字节为单位)

net.core.rmem_max = 16777216

# 发送套接字缓冲区大小的默认值(以字节为单位)

net.core.wmem_max = 16777216

# 接收套接字缓冲区大小的默认值(以字节为单位)

net.core.rmem_default = 1048576

# 发送套接字缓冲区大小的默认值(以字节为单位)

net.core.wmem_default = 524288

# TCP接收缓冲区,3个字段分别是min,default,max,为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下TCP socket都至少会有这么多数量的内存用于接收缓冲,单位为内存页的大小

net.ipv4.tcp_rmem = 4096 87380 16777216

# TCP发送缓冲区,3个字段分别是min,default,max,为TCP socket预留用于发送缓冲区的内存数量

net.ipv4.tcp_wmem = 4096 65536 16777216

# 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目

net.core.netdev_max_backlog = 2500

# 尚未收到客户端确认信息的连接(SYN消息)队列的长度

net.ipv4.tcp_max_syn_backlog = 102400

# 当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN***,默认为0,表示关闭,触发后可在/var/log/messages中看到

net.ipv4.tcp_syncookies = 1

# 1表示开启tcp连接中TIME-WAIT sockets的重

net.ipv4.tcp_tw_reuse = 1

# 开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。注意:如果开启了这个参数,服务器会将带了旧时间戳的包当作是recycle的tw连接的重传数据,不是新的请求,于是丢掉不回包,在NAT环境使用可能会造成大量丢包

net.ipv4.tcp_tw_recycle = 0

# 如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒

net.ipv4.tcp_fin_timeout = 30

# netfilter的状态追踪表最大数量,如果满了会导致丢包

net.netfilter.nf_conntrack_max = 4000000

# netfilter状态追踪表的失效时间

net.netfilter.nf_conntrack_tcp_timeout_established = 1200

# 系统所能允许的time-wait连接的最大数量

net.ipv4.tcp_max_tw_buckets = 180000

 

修改打开文件数量

vim /etc/security/limits.conf

*                soft    nofile         600000

*                hard    nofile         600000

 

修改单个用户最大线程数:

vim /etc/security/limits.d/20-nproc.conf(CentOS6系统是90-nproc.conf)

*          soft    nproc     4096

root       soft    nproc     unlimited

# 使配置生效

vim/etc/pam.d/login

session        required        /lib64/security/pam_limits.so


这只是操作系统本身的一些优化,希望大家知道这些小知识!