linux☞系统内核优化

阅读量: zyh 2017-01-20 15:24:54
Categories: Tags:

内核优化

# 内核参数
# 系统级别上限, 即整个系统所有进程单位时间可打开的文件描述符数量
fs.file-max = 6553500
# 三次握手请求频次
net.ipv4.tcp_syn_retries = 5
# 放弃回应一个TCP请求之前,需要尝试多少次
net.ipv4.tcp_retries1 = 3
# 三次握手应答频次
net.ipv4.tcp_synack_retries = 2
# 三次握手完毕, 没有数据沟通的情况下, 空连接存活时间
net.ipv4.tcp_keepalive_time = 60
# 探测消息发送次数
net.ipv4.tcp_keepalive_probes = 3
# 探测消息发送间隔时间
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 5

# 系统处理不属于任何进程的TCP链接
net.ipv4.tcp_orphan_retries = 3
net.ipv4.tcp_max_orphans = 327680

# 在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
net.core.netdev_max_backlog = 10240
# 对于还未获得对方确认的连接请求,可保存在队列中的最大数目
net.ipv4.tcp_max_syn_backlog = 10240
# 定义了系统中每一个端口最大的监听队列的长度 
net.core.somaxconn=10240

#最大timewait数
net.ipv4.tcp_max_tw_buckets = 20000
net.ipv4.ip_local_port_range=1024 65500

# 开启时间戳
net.ipv4.tcp_timestamps=1
# 针对客户端有效,必须在开启时间戳的前提下
net.ipv4.tcp_tw_reuse = 1

# 开启 iptables 后, 链路追踪上限和超时时间, 若没有使用 iptables,则无效
net.netfilter.nf_conntrack_max = 6553500
net.netfilter.nf_conntrack_tcp_timeout_established = 150

## tcp栈内存使用, 单位是内存页, 一页=4KB
#net.ipv4.tcp_mem = 524288 786432 1310720
## socket读写缓冲区大小,单位是字节
#net.ipv4.tcp_rmem = 4096 4096 16777216
#net.ipv4.tcp_wmem = 4096 4096 16777216

##最低内存和缓冲区回收倾向(此参数有一定风险)
#vm.min_free_kbytes=409600
#vm.vfs_cache_pressure=200
#修改/etc/security/limits.conf
# 单会话级别,可打开的所有文件描述符上限
* soft nofile 655350
* hard nofile 655350
# 单会话级别, 可打开的所有进程上限
* soft nproc 10240
* hard nproc 10240

开启 iptables 后

查看当前链路表数量命令

$ sysctl net.netfilter.nf_conntrack_count

net.netfilter.nf_conntrack_count = 601032

查看连接数最高的10个IP:可以查封某个ip, 或者判断是谁导致的

$ awk -F’=’ ‘{c[$2]++}END{for ( i in c) print i,c[i]}’ /proc/net/nf_conntrack | head -10