使用linux测试工具,对服务器的内存,cpu,磁盘io,网卡吞吐容量与可靠性等服务器硬件性能进行测试
测试工具介绍
-
内存与磁盘io:dd命令可从标准输入中读取数据,根据指定的格式来转换数据,再输出到磁盘中,统计读取写入速度即可统计出io,将读取的数据写入/dev/null即可统计出内存速度。
-
cpu:sysbench是一个多线程的Linux压力测试工具,使用单位线程中素数的加法进行CPU性能测试。计算单位线程有限时间内的素数计算次数,即可统计出cpu性能。
-
网卡吞吐容量:iperf 是一个网络性能测试工具,可以基于多种参数来对UDP与TCP性能。通过客户端与服务端数据测试,即可统计出网卡吞吐与可靠性。
-
http响应:ab是Apache自带的压力测试工具。它不仅可以对Apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。可以测试安装Web服务器每秒种处理的HTTP请求的详细信息。
-
dns响应:curl是linux下的下载工具,可以根据下载请求数据包的内容来统计出dns响应的时间。
服务器
硬件配置:
- 2核单线程cpu
- 8G内存
- 100G数据磁盘
硬盘读写测试
命令:sudo dd if=/dev/zero of=iotest bs=G count=20
功能:在磁盘中生成20G的大文件
内存性能测试
命令:sudo dd if=/dev/zero of=/dev/null bs=G count=100
功能:在内存中加载100G内容
cpu性能测试
命令:sysbench cpu --cpu-max-prime=20000 --threads=2 --time=10 run
功能:启动两个线程进行cpu计算,时间10s,上限20000次
http响应测试
命令:ab -n 100 -c 10 http://172.25.1.42/index.php
功能:保持10的并发连接数,共发起100次请求
网卡测试
命令: iperf -s -P 0 -i 1 -p 5001 -w 2M -f k (服务端) iperf -c IP -i 1 -w 2M -t 10 (客户端)
功能:指定tcp传输单位为2M,测试传输10s
dns解析时间
命令:curl -o /dev/null -s -w time_namelookup:" "%{time_namelookup}"
"time_connect:" "%{time_connect}"
"time_appconnect:" "%{time_appconnect}"
"time_pretransfer:" "%{time_pretransfer}"
"time_starttransfer:" "%{time_starttransfer}"
"time_total:" "%{time_total}"
"time_redirect:" "%{time_redirect}"
" https://www.baidu.com
功能:测试服务器dns解析时,tcp连接,获取dns解析,完成请求的时间并统计