网站首页 > 精选教程 正文
概述
所谓Linux服务器内核参数优化(适合Apache、Nginx、Squid等多种web应用,特殊的业务有可能需要做略微调整),主要是指在Linux系统中针对业务服务应用而进行的系统内核参数调整,优化并无一定的标准。
下面分两个部分来介绍内核优化这一块,第一部分主要讲内核配置文件,大家根据需要做取舍就行,第二部分是我经常会在压测高并发时做的一些内核优化,仅供参考。
一、内核配置文件
1、tcp套接字方面
#保持在FIN-WAIT-2状态的时间,使系统可以处理更多连接。此参数值为整数,单位为秒。
net.ipv4.tcp_fin_timeout = 2
#开启重用,允许将TIME_WAIT socket用于新的TCP连接。默认为0,表示关闭。
net.ipv4.tcp_tw_reuse = 1
#开启TCP连接中TIME_WAIT socket的快速回收。默认值为0,表示关闭。
net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syn_retries=1
#开启SYN cookie,出现SYN等待队列溢出时启用cookie处理,防范少量的SYN攻击。默认为0,表示关闭。
net.ipv4.tcp_syncookies = 1
#表示SYN队列的长度,预设为1024,这里设置队列长度为262 144,以容纳更多等待连接。
net.ipv4.tcp_max_syn_backlog = 262144
#系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。
net.ipv4.tcp_max_tw_buckets =5000
#表示系统中最多有多少TCP套接字不被关联到任何一个用户文件句柄上。如果超过这里设置的数字,连接就会复位并输出警告信息。这个限制仅仅是为了防止简单的DoS攻击。此值不能太小。
net.ipv4.tcp_max_orphans = 16384
# 增加TCP最大缓冲区大小
net.ipv4.tcp_rmem=4096 87380 4194304 net.ipv4.tcp_wmem=4096 16384 4194304
2、keepalived方面
#keepalived启用时TCP发送keepalived消息的拼度。默认2小时。
net.ipv4.tcp_keepalive_time = 600
#TCP发送keepalive探测以确定该连接已经断开的次数。根据情形也可以适当地缩短此值。
net.ipv4.tcp_keepalive_probes = 5
#探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃。对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值。
net.ipv4.tcp_keepalive_intvl = 15
3、端口方面
#指定外部连接的端口范围。默认值为32768 61000。
net.ipv4.ip_local_port_range = 1024 65000
#定义了系统中每一个端口最大的监听队列的长度, 对于一个经常处理新连接的高负载 web服务环境来说,默认值为128,偏小。
net.core.somaxconn = 16384
#表示当在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数量。
net.core.netdev_max_backlog = 16384
#避免放大攻击
net.ipv4.icmp_echo_ignore_broadcasts=1
PS:修改生效
vi /etc/sysctl.conf
增加合适参数后生效配置
sysctl -p
二、压测调优参数参考
# 允许等待中的监听, 设置系统最大socket连接数
echo 50000 >/proc/sys/net/core/somaxconn
#tcp连接快速回收:0-不加快tcp回收 1-加快tcp回收
echo 1 >/proc/sys/net/ipv4/tcp_tw_recycle
# tcp连接重用 :0-不启用空tcp回收 1-空tcp回收
echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse
#不抵御洪水攻击:0-去除洪水攻击抵御 1-启用洪水攻击抵御
echo 0 >/proc/sys/net/ipv4/tcp_syncookies
#设置系统最大文件访问数量
echo "ulimit -n 50000" >> /etc/profile source /etc/profile
#设置用户最大进程数
vi /etc/security/limits.conf
oracle soft nproc 16384 oracle hard nproc 16384
关于linux内核优化这一块的内容就讲到这了,大家根据需要去做取舍就行,特别是系统有高并发业务时,可以考虑适当去做优化。
后面会分享更多关于优化体系这一块的内容,感兴趣的朋友可以关注下!!
猜你喜欢
- 2024-09-24 CentOS环境下Nginx实现3台虚拟机负载均衡
- 2024-09-24 JVM调优不知道怎么回答,阿里总结四大模块,学不会就背过来
- 2024-09-24 Tomcat、JVM 参数如何调到性能最好?
- 2024-09-24 Nginx在高并发下的性能优化点!有这篇就够了!
- 2024-09-24 Tomcat 和 JVM 的性能调优总结
- 2024-09-24 tomcat 性能调优
- 2024-09-24 Java Web应用调优线程池:没你想的那么复杂
- 2024-09-24 还在不停压榨Tomcat?一份文档带你学习上百种调优方式
- 2024-09-24 《Tomcat和JVM 的性能调优经验总结》
- 2024-09-24 2020最新调优、微服务、框架、分布式指南,我的“大厂”不是梦
你 发表评论:
欢迎- 最近发表
-
- java 服务之间调用(rpc)(java实现服务器)
- Java机器学习库(Java ML)(二、聚类)
- 「Java库」如何使用优秀的加密库Jasypt来保护你的敏感信息?
- GitHub精选 | 轻量级Android和Java日志库
- Java面试官:MySQL binlog 有什么作用?主从延迟的了解么?
- Excel函数核武器库:50个高频场景公式——第二弹
- Excel函数核武器库:50个高频场景公式——第一弹
- Spring Cache高性能缓存库 - Caffeine简介
- Java通过Kafka Streams库来实现数据流处理
- 一连问了好几个大佬,竟然都不知道Redis为什么默认16个数据库?
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)