在CentOS上使用JMeter进行网络测试
一 环境准备与安装
sudo yum install -y java-1.8.0-openjdk-develjava -versionwget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.4.3.tgz && tar -xzf apache-jmeter-5.4.3.tgz -C /opt/ln -sfn /opt/apache-jmeter-5.4.3 /opt/jmeter/etc/profile 并 source /etc/profile):export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export JMETER_HOME=/opt/jmeter
export PATH=$JMETER_HOME/bin:$PATH
jmeter -vjmeter-plugins-manager-*.jar 放入 $JMETER_HOME/lib/ext,重启 JMeter 后在 GUI 的 Plugins Manager 中安装所需插件。二 被测服务与网络准备
sudo yum install -y httpd && sudo systemctl start httpd && sudo systemctl enable httpdsudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload/var/www/html/test-api/ 放置 index.php,内容 <?php echo "Hello, JMeter"; ?>sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reloadhttp://服务器IP:8080/test-api/index.php三 编写与执行测试计划
/test-api/index.php)jmeter -n -t test.jmx -l result.jtljmeter -n -t test.jmx -R 192.168.30.132:1099,192.168.30.130:1099 -l result.jtljmeter -n -t test.jmx -l result.jtl -e -o ./html-reportjmeter.properties 启用summariser.name=summary
summariser.interval=30
summariser.out=true
四 分布式压测与网络连通性
$JMETER_HOME/bin/jmeter-serverjmeter.properties 设置 server.rmi.ssl.disable=truejmeter-server,取消 RMI_HOST_DEF 注释并设置为本机 IPjmeter.properties 配置 remote_hosts=slave1:1099,slave2:1099jmeter -n -t test.jmx -R <slave1_ip>:1099,<slave2_ip>:1099 -l result.jtl五 性能调优与监控
bin/jmeter 或 bin/jmeter.sh 的 JVM_ARGS):如 -Xms2g -Xmx8g,一般不超过物理内存的 2/3jmeter.properties 设置 httpclient4.idletimeout=10000(单位毫秒)/etc/security/limits.conf 并重新登录生效):* soft nofile 65536
* hard nofile 65536
root soft nofile 65536
root hard nofile 65536
* soft nproc 65565
* hard nproc 65565
/etc/sysctl.conf 并执行 sysctl -p):net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.ip_local_port_range = 1024 65000
worker_connections 64000、keepalive_timeout 60s(结合实际硬件与业务调优)