性能压测服务器调优配置-Linux
1、内核参数调整
- 调整文件描述符限制:
sudo sysctl -w fs.file-max=35942900
- 调整内核参数以优化网络性能:
sudo sysctl -w net.core.somaxconn=65535
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=65535
- 调整内存分配策略:
sudo sysctl -w vm.swappiness=10
sudo sysctl -w vm.dirty_ratio=10
sudo sysctl -w vm.dirty_background_ratio=5
- 调整 TCP 缓冲区大小:
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
sudo sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216'
sudo sysctl -w net.ipv4.tcp_wmem='4096 65536 16777216'
2、Tomcat参数配置
1、调整 JVM 参数:
- 增加堆内存大小(-Xmx)和初始堆大小(-Xms)(给机器空闲内存的80%)以确保足够的内存供应:
export CATALINA_OPTS="$CATALINA_OPTS -Xmx10g -Xms10g"
- 选择低延迟的垃圾回收算法:
在 Java 8 中,G1 垃圾回收器虽然不是默认的垃圾回收器,但也可以使用。启用 G1 垃圾回收器可以通过设置如下参数:
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseG1GC"
- 调整垃圾回收相关参数:
设置并发线程数以减少垃圾回收的停顿时间:
export CATALINA_OPTS="$CATALINA_OPTS -XX:ParallelGCThreads=4"
调整 G1 垃圾回收器的最大暂停时间目标(MaxGCPauseMillis):
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxGCPauseMillis=200"
- 优化新生代和老年代的大小和比例:
调整新生代和老年代的比例以适应低延时要求:
export CATALINA_OPTS="$CATALINA_OPTS -XX:NewRatio=2"
2、调整 Tomcat 连接器参数:
增加连接器的最大线程数(maxThreads)与调整连接器的接收线程数(acceptCount):
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="5000"
acceptCount="1000" />
3、客户端连接端口(在jmeter服务器上)
-
增加可用端口:
sysctl -a |grep port_range
net.ipv4.ip_local_port_range = 50000 65000 -----意味着50000~65000端口可用
-
修改参数:
vi /etc/sysctl.conf
net.ipv4.ip_local_port_range = 10000 65000 -----意味着10000~65000端口可用
-
使参数生效:
sysctl -p
4、优化应用程序
-
application.properties文件中,修改server.tomcat.max-threads的值
-
接口日志记录策略选择不记录
-
对于网关接口可以使用缓存,可在修改api->高级配置->发布配置->备注那里填入参数比如requestConfig:5或requestConfig:3,这个数值可以更改试试(仅限整数)数值越小,TPS越高
5、监控与性能测试
- 使用工具如
top
,htop
,nload
,iftop
等实时监控服务器性能。 - 使用性能测试工具如 Apache Bench(ab)、JMeter 等进行压力测试,验证调整后的参数是否能够满足性能需求。
性能压测服务器调优配置-Windows
1、服务器注册表调优
TcpTimedWaitDelay:确定 TCP/IP 可释放已关闭连接并重用其资源前,必须经过的时间。关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态。此时间期间,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP 更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT 中存在很多连接,导致低吞吐量,则调整此参数。 如何查看或设置: 使用 regedit 命令访问 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/ Services/TCPIP/Parameters 注册表子键并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值。 将此值设置为十进制 30,其为十六进制 0x0000001e。该值将等待时间设置为 30 秒。 停止并重新启动系统。 缺省值:0xF0,它将等待时间设置为 240 秒(4 分钟)。 建议值:最小值为 0x1E,它将等待时间设置为 30 秒。
MaxUserPort :确定在应用程序从系统请求可用用户端口时,TCP/IP 可指定的最高端口号。 如何查看或设置: 使用 regedit 命令访问 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/ Services/TCPIP/Parameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值。 停止并重新启动系统。 缺省值:无 建议值:至少十进制 32768,建议65534
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services[Tcpip](https://so.csdn.net/so/search?q=Tcpip&spm=1001.2101.3001.7020)\Parameters]
"MaxUserPort"=dword:fffe
"TcpTimedWaitDelay"=dword:1e
"TcpNumConnections"=dword:fffffe
"MaxFreeTcbs"=dword:3e80
"MaxHashTableSize"=dword:10000
评论一下吧
取消回复