在进行JMeter测试时,优化Linux性能是一个重要的步骤,以确保测试结果的准确性和可靠性。以下是一些常见的优化方法:
修改/etc/sysctl.conf
:
net.ipv4.tcp_syncookies = 1
fs.file-max = 12553500
fs.nr_open = 12453500
kernel.shmall = 1048576
kernel.shmmax = 1887436
kernel.msgmax = 65536
kernel.sysrq = 0
kernel.pid_max = 65536
net.core.netdev_max_backlog = 2000000
net.core.rmem_default = 699040
net.core.rmem_max = 50331648
net.core.wmem_default = 131072
net.core.wmem_max = 33554432
net.core.somaxconn = 65535
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_mem = 1048576 1572864 2097152
net.ipv4.tcp_rmem = 4096 4194304 8388608
net.ipv4.tcp_wmem = 4096 4194304 8388608
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_window_scaling = 1
vm.swappiness = 0
net.ipv4.tcp_max_tw_buckets = 1800000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.route.max_size = 5242880
net.ipv4.ip_forward = 1
net.ipv4.tcp_timestamps = 1
执行 sysctl -p
使配置生效。
文件描述符限制:
修改 /etc/security/limits.conf
:
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
重启服务以生效:
service sshd restart
或:
echo "ulimit -n 65535" >> /etc/profile
source /etc/profile
```。
调整网络参数:
修改 /proc/sys/net/ipv4/tcp_fin_timeout
:
echo 15 > /proc/sys/net/ipv4/tcp_fin_timeout
修改 /proc/sys/net/ipv4/tcp_tw_reuse
和 /proc/sys/net/ipv4/tcp_tw_recycle
:
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
设置最大句柄数:
echo "net.ipv4.ip_local_port_range = 1024 65535" > /etc/sysctl.conf
sysctl -p
```。
查看错误日志:在JMeter安装目录的 user.properties
文件末尾添加以下配置,以便生成详细的日志文件:
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true
执行脚本报错后,将生成的 jtl
文件拷贝到本地,使用监听器打开以查看接口报错日志。。
通过以上方法,可以有效优化JMeter在Linux上的性能,确保压力测试的准确性和可靠性。