Ubuntu Stream 8(假设这里指的是Ubuntu的一个版本)的性能测试可以通过多种工具和方法进行。以下是一些常用的性能测试工具和步骤:
STREAM 是业界标准的内存带宽测试工具,通过模拟四种典型的内存访问模式(Copy、Scale、Add、Triad)来评估系统的内存带宽性能(单位:MB/s)。
安装依赖(需 GCC 编译器):
# Debian/Ubuntu
sudo apt update && sudo apt install -y gcc
# RHEL/CentOS
sudo yum install -y gcc
下载并编译 STREAM:
wget https://www.cs.virginia.edu/stream/FTP/Code/stream.c
gcc -O3 -march=native -fopenmp -DSTREAM_ARRAY_SIZE=100000000 -DNTIMES=20 stream.c -o stream
参数说明:
-O3
:最高优化级别-march=native
:针对当前 CPU 架构优化-fopenmp
:启用多线程支持-DSTREAM_ARRAY_SIZE
:测试数组大小(建议 ≥4×CPU 缓存大小)-DNTIMES
:测试轮次(取平均值)运行测试:
单线程测试:
export OMP_NUM_THREADS=1
./stream
多线程测试(例如 8 线程):
export OMP_NUM_THREADS=8
./stream
Function Best Rate MB/s Avg time Min time Max time
Copy: 45678.9 0.0351 0.0349 0.0353
Scale: 43821.6 0.0366 0.0365 0.0368
Add: 48912.3 0.0492 0.0490 0.0495
Triad: 49234.7 0.0488 0.0487 0.0490
在性能测试期间,可以使用以下工具监控系统状态,以确保测试结果的准确性:
命令行工具:
top
:实时显示系统进程和资源占用情况,按CPU占用率排序。htop
(如果未安装,请先安装EPEL仓库):交互式进程查看器,提供图形化界面和更多功能。vmstat
:报告系统虚拟内存统计信息,包括CPU、内存、磁盘和交换空间的信息。free
:显示系统的内存使用情况,包括已使用内存、空闲内存等。iostat
:报告系统的磁盘I/O统计信息,包括设备的读写速率等。netstat
:显示当前活动的网络连接、路由表、接口统计信息等。ss
:类似于netstat,用于显示活动的网络连接和套接字统计信息。dstat
:实时显示系统的网络、CPU、内存、磁盘I/O等资源使用情况。iftop
:实时监控网络带宽,显示发送和接收的数据量。sar
:系统活动报告工具,可以收集和显示较长周期的数据,提供关于CPU、内存、I/O和网络等方面的详细信息。图形化工具:
Zabbix
:一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。Prometheus
:一个开源的监控系统,用于收集和存储时间序列数据,通常与Grafana结合使用进行可视化。Grafana
:一个开源的数据可视化工具,可以与Prometheus等监控系统结合使用,提供强大的可视化功能。通过上述工具和方法,您可以对Ubuntu Stream 8系统进行全面的性能测试,确保系统的高效运行。在进行任何系统级更改之前,建议备份重要数据,并确保你了解这些更改可能带来的影响。