1.
概述与测试目标设定
小分段:1) 明确测试目标:确定你要评估的关键指标(CPU、内存、磁盘IO、网络延迟与带宽、并发处理能力、稳定性/连续运行能力)。
2) 划定试用范围:记录试用时长、可用机型(例如单核/双核/多核、SSD或HDD、带宽上限)、公网IP数量。
3) 输出预期:定义通过/未通过标准,例如99.9% 可用率、单请求平均响应 <200ms、磁盘IOPS达标等。
2.
准备测试环境与权限
小分段:1) 获取 root 或 sudo 权限,确认可安装测试工具。命令:sudo -i 或 sudo su -。
2) 创建测试用户与SSH密钥,避免使用生产账号:adduser tester;mkdir /home/tester/.ssh;将公钥放入authorized_keys。
3) 关闭不必要服务以减少干扰:sudo systemctl stop apache2 mysql(仅在非目标服务时)。
3.
基础系统检查与基线采集
小分段:1) 收集系统信息:uname -a;lsb_release -a;lscpu;free -m;df -h。
2) 安装监控工具:sudo apt install sysstat iotop htop iftop -y。
3) 采集基线1小时:sar -u 1 3600(CPU)、sar -r 1 3600(内存)、iostat -x 1 3600(磁盘),保存为日志以供对比。
4.
磁盘性能测试(IOPS 与吞吐)
小分段:1) 使用fio做标准IOPS测试,示例命令:fio --name=randread --ioengine=libaio --rw=randread --bs=4k --size=1G --numjobs=4 --runtime=60 --group_reporting。
2) 顺序吞吐测试:fio --name=seqwrite --rw=write --bs=1M --size=2G --numjobs=1 --runtime=60。
3) 简单验证用dd(注意缓存影响):sync; dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct;记录写入带宽。
5.
CPU 与内存压力测试
小分段:1) CPU 多核压力:使用 stress-ng 或 stress。示例:sudo apt install stress-ng -y;stress-ng --cpu 0 --cpu-method fft --timeout 120s --metrics-brief。--cpu 0 表示使用所有核。
2) 内存耗尽测试:stress-ng --vm 2 --vm-bytes 75% --vm-method all --timeout 120s。观察OOM和swap使用。
3) 监控时序:在负载运行期间用top/htop、vmstat 1、free -m 记录数据,判断是否出现瓶颈。
6.
网络带宽与延迟测试
小分段:1) 带宽测量:使用 iperf3,需另一台测试机作为服务端。服务端:iperf3 -s;客户端:iperf3 -c SERVER_IP -P 8 -t 60。记录吞吐与丢包。
2) 延迟与丢包:ping -c 100 8.8.8.8 与 mtr SERVER_IP(或 traceroute)查看路由波动。
3) HTTP层面并发:使用 wrk 或 hey:wrk -t12 -c400 -d60s http://SERVER_IP:PORT/;观察平均延迟与99百分位。
7.
并发与压力测试(应用层)
小分段:1) 准备测试脚本或使用现有工具(ab、siege、wrk):ab -n 50000 -c 200 http://SERVER_IP/;注意不要超出试用协议限制。
2) 渐进加载法:从低并发开始,每5分钟增加并发至目标,监控响应时间、错误率。记录突然升高点(瓶颈阈值)。
3) 长时稳定压测:用wrk持续运行1~2小时以测试内存泄漏或句柄耗尽问题,同时监控open files、netstat -anp 等。
8.
稳定性(Soak)测试与恢复测试
小分段:1) Soak测试:在接近生产负载下持续运行6~24小时,定期采样系统指标,确认无性能退化。
2) 恢复测试:模拟进程崩溃(sudo pkill -9 yourapp),观察自动重启、日志记录与可用性恢复时间(MTTR)。
3) 网络抖动与带宽突降:使用 tc 命令在本地或测试网段制造延迟/丢包,tc qdisc add dev eth0 root netem delay 100ms loss 1%。
9.
监控、日志与告警配置
小分段:1) 简易实时监控:安装 netdata 或 glances:sudo bash <(curl -Ss https://my-netdata.io/kickstart.sh);glances -w。
2) 指标采集保存:Prometheus + node_exporter + Grafana 可在试用期短时间内部署轻量版以保存历史数据。
3) 设置告警阈值:CPU>80% 持续5分钟触发告警、磁盘使用>85%、响应错误率>1% 等,用邮件或Webhook提醒。
10.
结果记录、分析与报告生成
小分段:1) 整理所有测试日志(sar、iostat、fio、iperf3、wrk 等),统一命名并压缩备份。示例:tar czvf testlogs_20260301.tgz /var/log/test/*.log。
2) 关键指标对比基线:制作表格列出基线值、峰值与平均值,标注是否达标并给出原因分析(例如CPU饱和导致响应慢)。
3) 给出建议:如需更高IOPS建议换SSD或增加磁盘条带;网络问题建议更高峰值带宽或选择本地节点。
11.
注意事项与避免误区
小分段:1) 尊重试用政策:不要进行非法流量或影响他人服务的测试(如DDoS样式的极端测试),避免账号被禁用。
2) 避免缓存伪造结果:执行fio或dd时用 oflag=direct 避免页缓存干扰;web测试时清除CDN或应用缓存以得到真实后端表现。
3) 多节点对比:如果可能同时申请两个不同配置或不同机房的试用,横向对比更能判断地域或网络差异。
12.
常见问题一:免费试用期间能做哪些重负载测试?
小分段:答:一般可做合理业务负载和压力测试(如并发请求、IOPS、带宽评估、长时间运行测试),但需遵守供应商使用条款。避免破坏性测试(如持续DDoS或影响公有网络的洪泛),若需做极端压力应提前告知客服并取得许可。
13.
常见问题二:在试用期内如何保存数据以便后续分析?
小分段:答:在测试前统一配置日志目录并定期上传到外部存储(例如S3、FTP或你本地机器)。使用tar/gzip打包并计算MD5校验:tar czf logs.tgz /var/log/test && md5sum logs.tgz。若试用机将被回收,务必在结束前导出监控图表(Grafana PNG)和原始CSV数据。
14.
常见问题三:如何判断台湾机房的网络质量是否适合我的用户?
小分段:答:结合ping/mtr多点测试、iperf3到目标用户区域的带宽测试、以及在不同时间段(高峰/非高峰)执行HTTP并发测试,观察平均延迟、丢包率与99百分位响应时间。如果延迟稳定且99%响应在可接受范围内,且丢包低于1%,则网络质量基本合格;否则考虑更换运营商或节点。