bin/results)放在SSD分区。free -h;dd if=/dev/zero of=/swapfile bs=1G count=10;chmod 600 /swapfile;mkswap /swapfile;swapon /swapfile;/etc/fstab):echo '/swapfile swap swap defaults 0 0' >> /etc/fstab。vm.swappiness参数控制系统使用Swap的倾向(默认60,值越高越易用Swap)。建议设置为10(减少Swap使用,优先使用物理内存):echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sysctl -p
jmeter或jmeter.sh启动脚本):export JVM_ARGS="-Xms2g -Xmx4g -XX:MaxMetaspaceSize=512m"
-Xms2g:初始堆内存2GB(避免启动时频繁扩容);-Xmx4g:最大堆内存4GB(不超过系统内存的70%,预留空间给系统和其他进程);-XX:MaxMetaspaceSize=512m:元空间最大大小(避免元空间溢出)。-XX:+UseG1GC
-Xloggc:/path/to/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps
jmeter -n -t /path/to/test_plan.jmx -l /path/to/results.jtl
View Results Tree、Aggregate Report)会占用大量内存,调试时可用,正式测试需关闭。若需收集结果,使用Simple Data Writer或Backend Listener(配合InfluxDB+Grafana实时监控)。CSV Data Set Config读取外部数据文件(如用户名、密码),避免硬编码参数;Recycle on EOF(循环读取)和Stop thread on EOF(EOF时停止线程);jmeter -n -t test.jmx -l result.jtl --quiet
jmeter-server(./bin/jmeter-server);jmeter.properties,设置remote_hosts(Slave节点IP列表,如remote_hosts=192.168.1.101:1099,192.168.1.102:1099);jmeter -n -t test.jmx -r(-r表示启动所有Slave节点)。jmeter.save.saveservice.output_format=xml并开启压缩)或使用二进制格式(jmeter.save.saveservice.output_format=binary)。Throughput Shaping Timer控制TPS(每秒事务数),避免瞬间高并发压垮服务器;Groovy代替Beanshell:Groovy性能优于Beanshell(尤其对于复杂逻辑),建议在JSR223 Sampler中选择Groovy语言;${__Random()}、${__time()},比BeanShell更轻量。Transaction Controller将多个相关请求合并为一个事务(如“登录流程”包含“访问登录页→提交用户名密码→获取token”),减少采样器数量,提高测试效率。If Controller、Switch Controller等逻辑控制器,避免复杂的条件判断消耗CPU。top(查看CPU、内存占用)、vmstat(查看系统整体性能)、iostat(查看磁盘I/O)、netstat(查看网络流量);Backend Listener配合InfluxDB+Grafana实时监控TPS、响应时间、错误率;result.jtl),分析响应时间、错误率(如Error%过高需检查接口或脚本);jstat监控GC情况(如jstat -gcutil <pid> 1000,每秒输出一次GC统计信息),判断是否需要调整堆内存或GC策略。setenforce 0 # 临时关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久关闭
systemctl停止不需要的服务(如firewalld、postfix):systemctl stop firewalld
systemctl disable firewalld
systemctl stop postfix
systemctl disable postfix
bin/results目录(存储测试结果),避免数据堆积占用磁盘空间:rm -rf /path/to/jmeter/bin/results/*