centos7 内核参数优化

内核优化

1、内核参数:用来约束LINUX系统内核、软件配置文件的参数
2、/etc/sysctl.conf 修改这个文件相当于修改/proc/sys/目录配置文件
3、sysctl -p 重启加载内核/etc/sysctl.conf配置文件

优化参数及说明

#开启内核转发功能
net.ipv4.ip_forward = 1

#表示开启时间戳与窗口缩放的选项
net.ipv4.tcp_timestamps = 1

#表示开启重用,允许将TIME-WAIT sockets重新用于新的tcp连接
重点net.ipv4.tcp_tw_reuse = 1

#表示开启TCP连接TIME-WAIT sockets的快速回收,让连接更快释放,默认为0,表示关闭
重点net.ipv4.tcp_tw_recycle = 1

#在内核内存中netfilter可以同时处理的任务数量(连接请求,连接跟踪条目)
重点net.ipv4.ip_conntrack_max = 655360

#打开FACK(Forward ACK)拥塞避免和快速重传功能(转发确认,不要在缓冲区停留)
重点net.ipv4.tcp_fack = 1

#选择性应答(SACK)是TCP的一项可选特性,可以提高某些网络中所有可用带宽的的使用率(选择性应答,提高网络传输效率,高并发时才可以测试出来)
重点net.ipv4.tcp_sack = 1

#可以接收多少个SYN请求数,缓冲列队列长度的意思,可以改大,默认1024
重点net.ipv4.tcp_max_syn_backlog = 8192

#表示socket监听(listen)的backlog上限,可以粗理解为服务端能一次处理backlog队列中的个数
net.core.somaxconn=2048

#表示用于向外连接的端口范围1024-65000,默认  客户端机器上配置
重点net.ipv4.ip_local_port_range = 1024 65000 

#开启SYN缓存,开启SYN洪水攻击保护。TCP建立连接的3次握手过程中,当服务端收到最初的SYN请求时,会检查应用程序的syn_backlog(上条说的SYN队列)队列是否已满,启用syncookie,可以解决超高并发时的Cant't Connet'问题。但是会导致TIME_WAIT状态fallback为保持2MSL时间,高峰期时会导致客户端可复用连接而无法连接服务器
重点net.ipv4.tcp_syncookies = 1 

#系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息,默认值为180000,设为较小数值此项参数可以控制TIME_WAIT套接字的最大数量,避免服务器被大量的TIME_WAIT套接字拖死。(是TCP挥手时出现的,等待关闭状态)
重点net.ipv4.tcp_max_tw_buckets = 5000

###

#打开重传重组包功能,为0的时候关闭重传重组包功能
重点net.ipv4.tcp_retrans_collapse = 1 

#对于一个新建连接,服务器端内核要发送多少个SYN连接请求才决定放弃
重点net.ipv4.tcp_syn_retries = 2

#显示或设定linux回应SYN要求时尝试多少次重新发送初始SYN,ACK封包后才决定放弃,与上保持一致,功能与上一样,只是加了一个ACK,如果与上条冲突,以此条为准
重点net.ipv4.tcp_synack_retries = 2

#系统所能处理不属于任何进程的TCP sockets最大值(错误及异常的请求)
重点net.ipv4.tcp_max_orphans = 10000
 

#如果TCP连接在空闲30秒后,内核才发起probe(探查),如果probe3次(每次3秒即tcp_keepalive_intvl值)不成功,内核才彻底放弃,认为连接已失效
重点net.ipv4.tcp_keepalive_time = 30
重点net.ipv4.tcp_keepalive_probes = 3
重点net.ipv4.tcp_keepalive_intvl = 3

#放弃回应一个TCP连接请求前,需要进行多少次重试
net.ipv4.tcp_retries1 = 5

#在丢弃激活(已建立通讯状况)的TCP连接之前,需要进行多少次重试
net.ipv4.tcp_retries2 = 5

#表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2 状态的时间
重点net.ipv4.tcp_fin_timeout = 10

net.ipv4.tcp_mem = 178368 237824 356736
#低于此值,TCP没有内存压力
net.ipv4.tcp_mem[0]
#在此值下,进入内在压力阶段
net.ipv4.tcp_mem[1]
#高于此值,TCP拒绝分配socket
net.ipv4.tcp_mem[2]

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

注:

1、功能测试

netstat -an  可以看TIME_WAIT状态信息
lsof  查看系统打开了多少文件

查看写的速度
[root@mail ~]# dd if=/dev/zero of=test.img bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 6.26145 s, 167 MB/s

并发访问
while sleep 1;do ab -c 100 -n 1000 http://www.jfedu.net/ ;done
每秒100次并发  1000次

dd if=/dev/zero of=test.img bs=1M count=2000
写入文件,每次1M,2000

2、快速查看当前TCP的各种状态

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 17
SYN_RECV 245
CLOSE_WAIT 2
ESTABLISHED 4017
FIN_WAIT1 242
FIN_WAIT2 30
TIME_WAIT 148

3、减少TIME_WAIT连接数量,编辑/etc/sysctl.conf

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_timestamps = 1 开启tw_recylce和tw_reuse一定需要timestamps的支持
net.ipv4.tcp_max_tw_buckets = 3000  #表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。

4、tcp_max_syn_backlog 与 net.core.somaxconn

tcp_max_syn_backlog  
	是指定所能接受SYN同步包的最大客户端数量,即半连接上限,默认值是128,即SYN_REVD状态的连接数。
somaxconn
	是Linux中的一个kernel参数,指的是服务端所能accept即时处理数据的最大客户端数量,即完成连接上限,默认值是128.

如redis 中的 tcp-backlog,TCP连接中已完成队列(完成三次握手之后)的长度,可以理解为即时处理的个数(非maxclients 最大链接数)

---------------end

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CentOS 7 中的内核参数可以通过修改 sysctl.conf 文件来优化。下面是一些常见的内核参数优化建议: 1. net.ipv4.tcp_fin_timeout:修改 TCP 连接的结束超时时间,以使其快速释放空间。 2. net.ipv4.tcp_tw_reuse:允许重用 TIME_WAIT sockets。 3. net.ipv4.tcp_tw_recycle:允许快速回收 TIME_WAIT sockets。 4. net.ipv4.tcp_syncookies:开启 syncookies,以防止洪水攻击。 5. net.ipv4.tcp_max_syn_backlog:调整 SYN backlog 的最大长度,以适应网站的负载。 6. net.ipv4.ip_local_port_range:调整本地端口范围,以使用更多的端口。 请注意,在修改内核参数后,需要重新启动系统才能生效。如果不确定如何修改,请尽量遵循经验丰富的专家的建议。 ### 回答2: CentOS 7作为一种流行的Linux操作系统,确实适合进行网站的内核参数优化。以下是为什么CentOS 7适合网站内核参数优化的一些原因: 1.稳定性:CentOS 7是基于Red Hat Enterprise Linux(RHEL)构建的,以稳定性和可靠性而闻名。它经过了广泛的测试和验证,因此非常适合用于托管和运行网站。 2.性能优化:CentOS 7默认启用了一些性能优化功能,如高级存储管理和调度器优化。此外,CentOS 7还支持更高版本的内核,这些内核经过优化以提供更好的性能。 3.安全性:CentOS 7有一个强大的安全性功能集,包括SELinux(强制访问控制)、Firewalld(防火墙管理工具)和安全增强Linux(SELinux策略设置)。这些功能有助于保护网站免受潜在的安全威胁。 4.易用性:CentOS 7拥有用户友好的图形界面和命令行工具,使得内核参数优化变得更加简单和方便。此外,CentOS社区提供了大量的支持和文档,使得学习和使用CentOS 7更加容易。 针对网站的内核参数优化,具体的步骤可能包括调整TCP/IP参数、内存管理参数、文件系统参数以及网络性能参数等。优化这些参数可以提升网站的响应速度、并发处理能力和稳定性,从而提供更好的用户体验。 总之,CentOS 7是一个适合进行网站内核参数优化的操作系统,它具有稳定性、性能优化、安全性和易用性等方面的优势,可以帮助网站实现更好的性能和可靠性。 ### 回答3: CentOS 7是一种适用于网站的操作系统,以下是一些内核参数优化建议: 1. 修改文件数量限制:可以通过修改/etc/security/limits.conf文件来增加单个用户或者整个系统的最大打开文件数量。可以将nofile值增加到更大的数字,以适应网站的文件处理需求。 2. 调整系统性能:可以通过修改/sys/kernel/mm/transparent_hugepage/enabled文件来禁用透明大页功能。这可以提高系统的性能,特别是对于处理大量请求的网站。 3. 调整内存分配策略:可以通过修改/proc/sys/vm/swappiness文件来调整系统的内存分配策略。将值设为0将禁用交换空间,而将值设为1将尽量避免使用交换空间,以提高系统性能。 4. 调整文件系统参数:可以通过修改/etc/fstab文件来调整文件系统的参数。比如可以使用noatime选项来禁止更新文件的访问时间,以减少硬盘的I/O负载。 5. 启用TCP快速打开:可以通过修改/proc/sys/net/ipv4/tcp_fastopen文件来启用TCP快速打开功能。这可以加快网络连接的建立速度,特别是对于处理大量短连接的网站。 6. 调整TCP连接数限制:可以通过修改/proc/sys/net/ipv4/ip_local_port_range文件来增加可用的TCP端口范围,以适应网站的并发连接需求。 7. 启用SYN洪泛攻击防御:可以通过修改/proc/sys/net/ipv4/tcp_syncookies文件来启用SYN洪泛攻击防御功能。这可以保护网站免受SYN洪泛攻击的影响。 需要注意的是,在进行任何内核参数的修改之前,务必备份相关的配置文件,并在修改之后进行测试以确保系统的稳定性和可靠性。此外,不同的网站可能有不同的性能需求,因此需要根据具体情况进行优化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值