1. 准备工作:安装VirtualBox及CentOS虚拟机
在物理机安装VirtualBox(最新稳定版),创建CentOS虚拟机并完成系统安装(建议选择Minimal或Server版本以减少额外服务对测试的干扰)。配置虚拟机资源时,根据测试需求分配CPU核心数(如2-4核)、内存大小(如2-4GB)及磁盘空间(如20-50GB),并开启硬件虚拟化(VirtualBox设置→系统→处理器→勾选“启用嵌套VT-x/AMD-V”)以提升虚拟机性能。
2. 安装性能测试工具
通过CentOS的包管理器(yum/dnf)安装常用性能测试工具,覆盖CPU、内存、磁盘、网络等核心维度:
sudo yum install -y sysbench iperf stress fio hdparm
3. CPU性能测试
使用sysbench生成素数计算任务,通过执行时间评估CPU单线程/多线程性能:
# 单线程CPU性能测试(计算20000以内的素数)
sysbench --test=cpu --cpu-max-prime=20000 run
# 多线程CPU性能测试(4线程,计算200000以内的素数)
sysbench --test=cpu --cpu-max-prime=200000 --threads=4 run
观察输出中的events per second(每秒处理事件数)和total time(总执行时间),数值越高表示CPU性能越好。
4. 内存性能测试
使用sysbench测试内存的顺序读写与随机读写速率:
# 顺序内存写入测试(1GB数据量)
sysbench --test=memory --memory-block-size=1G --memory-total-size=1G --memory-oper=write run
# 随机内存读取测试(1GB数据量,4线程)
sysbench --test=memory --memory-block-size=1M --memory-total-size=1G --memory-oper=read --threads=4 run
关注total operations(总操作数)和total time(总时间),数值越大表示内存性能越优。
5. 磁盘I/O性能测试
sysbench文件IO测试:创建10GB测试文件,模拟随机读写场景:
# 准备测试文件(10GB)
sysbench --test=fileio --file-total-size=10G prepare
# 随机读写测试(块大小4KB,300秒内尽可能多操作)
sysbench --test=fileio --file-total-size=10G --file-test-mode=rndrw --max-time=300 --max-requests=0 run
# 清理测试文件
sysbench --test=fileio --file-total-size=10G cleanup
关注read IOPS(读取IOPS)、write IOPS(写入IOPS)和latency(延迟),数值越高表示磁盘I/O性能越好。
hdparm物理磁盘读取测试(适用于直接挂载的物理磁盘):
sudo hdparm -Tt /dev/sda # /dev/sda为目标磁盘设备
输出中的cached reads(缓存读取速度)和buffered reads(缓冲读取速度)反映磁盘读取性能。
6. 网络带宽测试
使用iperf工具,在测试主机(作为服务器)和CentOS虚拟机(作为客户端)间测量TCP/UDP带宽:
iperf -s # 启动iperf服务器
iperf -c <主机IP> -t 30 -i 5 # 测试30秒,每5秒输出一次结果(TCP)
iperf -c <主机IP> -t 30 -i 5 -u # UDP测试(需添加-u参数)
关注Bandwidth(带宽,单位Mbps/Gbps),数值越高表示网络性能越好。7. 压力测试
使用stress工具模拟高负载场景,测试虚拟机在极端条件下的稳定性:
# 模拟2个CPU核心满载、2GB内存占用、持续60秒
stress --cpu 2 --vm 2 --vm-bytes 2G --timeout 60s
结合top(实时查看CPU/内存使用率)、vmstat(监控系统整体状态)等工具观察虚拟机资源占用情况,判断是否存在瓶颈。
8. 结果分析与优化
整理测试数据,对比不同测试项的结果(如CPU多线程性能是否达到宿主机80%以上、磁盘IOPS是否符合预期)。若性能未达标,可通过以下方式优化: