linux7内核优化,centos7 系统内核、网络等优化(适用高并发)

centos7 系统内核、网络等优化(适用高并发)

发布时间:2020-9-22 9:57:13  浏览量:1707  【字体:大 中 小】

一、ssh连接优化

# 禁用dns解析

Port 52113              #改默认端口为52113  ,根据需求设定

# PermitRootLogin no      #禁止root用户登录,根据需求设定

PermitEmptyPasswords no  #禁止空密码登录

UseDNS no           #不使用DNS解析,可以加快访问速度

GSSAPIAuthentication no # 是一套类似Kerberos 5的通用网络安全系统接口。该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度。但该接口在目标机器无域名解析时会有问题

二、最大文件描述符

ulimit -SHn 65535

vim /etc/security/limits.conf      //在最后添加

# ulimit优化

* soft nofile 65536

* hard nofile 65536

三、内核优化

# vim /etc/sysctl.conf

#表示单个进程较大可以打开的句柄数

fs.file-max = 1000000

#关闭ipv6

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

# 避免放大攻击

net.ipv4.icmp_echo_ignore_broadcasts = 1

# 开启恶意icmp错误消息保护

net.ipv4.icmp_ignore_bogus_error_responses = 11

#决定检查过期多久邻居条目

net.ipv4.neigh.default.gc_stale_time=120

#使用arp_announce / arp_ignore解决ARP映射问题

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.lo.arp_announce=2 # 避免放大攻击

net.ipv4.icmp_echo_ignore_broadcasts = 1 # 开启恶意icmp错误消息保护

net.ipv4.icmp_ignore_bogus_error_responses = 1

#处理无源路由的包

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.default.accept_source_route = 0

#core文件名中添加pid作为扩展名

kernel.core_uses_pid = 1

#修改消息队列长度

kernel.msgmnb = 65536

kernel.msgmax = 65536

#开启反向路径过滤

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

#设置最大内存共享段大小bytes

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

#表示操作系统允许TIME_WAIT套接字数量的较大值,如超过此值,TIME_WAIT套接字将立刻被清除并打印警告信息,默认为180000,过多的TIME_WAIT套接字会使Web服务器变慢

net.ipv4.tcp_max_tw_buckets = 6000

net.ipv4.tcp_sack = 1

net.ipv4.tcp_window_scaling = 1

#定义了TCP接受缓存的最小值、默认值、较大值

net.ipv4.tcp_rmem = 4096 87380 4194304

#定义TCP发送缓存的最小值、默认值、较大值

net.ipv4.tcp_wmem = 4096 16384 4194304

#表示内核套接字发送缓存区默认大小

net.core.wmem_default = 8388608

#表示内核套接字接受缓存区默认大小

net.core.rmem_default = 8388608

#表示内核套接字接受缓存区较大大小

net.core.rmem_max = 16777216

#表示内核套接字发送缓存区较大大小

net.core.wmem_max = 16777216

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

net.core.netdev_max_backlog = 32768

#web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而nginx定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值。这个参数用于调节系统同时发起的TCP连接数,在高并发的请求中,默认的值可能会导致链接超时或者重传,因此需要结合高并发请求数来调节此值。

net.core.somaxconn = 32768

#选项用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤立链接将立即被复位并输出警告信息。这个限制指示为了防止简单的DOS攻击,不用过分依靠这个限制甚至认为的减小这个值,更多的情况是增加这个值

net.ipv4.tcp_max_orphans = 3276800

#未收到客户端确认信息的连接请求的最大值

#这个参数表示TCP三次握手建立阶段接受SYN请求列队的较大长度,默认1024,将其设置的大一些可使出现Nginx繁忙来不及accept新连接时,Linux不至于丢失客户端发起的链接请求

net.ipv4.tcp_max_syn_backlog = 262144

net.ipv4.tcp_timestamps = 0

#内核放弃建立连接之前发送SYNACK 包的数量

net.ipv4.tcp_synack_retries = 1

#内核放弃建立连接之前发送SYN 包的数量

net.ipv4.tcp_syn_retries = 1

#启用timewait 快速回收

net.ipv4.tcp_tw_recycle = 1

#开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接,#参数设置为 1 ,表示允许将TIME_WAIT状态的socket重新用于新的TCP链接,这对于服务器来说意义重大,因为总有大量TIME_WAIT状态的链接存在

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000

#当服务器主动关闭链接时,socket保持在FIN_WAIT_2状态的较大时间

net.ipv4.tcp_fin_timeout = 1

# 开启SYN洪水攻击保护(防范少量SYN攻击)

net.ipv4.tcp_syncookies = 1

#允许系统打开的端口范围,定义UDP和TCP链接的本地端口的取值范围

net.ipv4.ip_local_port_range = 1024    65000

#当keepalive启动时,TCP发送keepalive消息的频度;默认是2小时,将其设置为10分钟,可更快的清理无效链接

net.ipv4.tcp_keepalive_time = 600

#縮短established的超時時間,####如果可能的话,建议关闭nf_conntrack,设置NOTRACK或者调大数值。

#net.netfilter.nf_conntrack_tcp_timeout_established = 180

#CONNTRACK_MAX 允许的最大跟踪连接条目,是在内核内存中netfilter可以同时处理的“任务”

#net.netfilter.nf_conntrack_max = 1048576

#net.nf_conntrack_max = 1048576

你可能感兴趣的:(linux7内核优化)