云桌面测试--测试软件指导文件
  

Hacking 412

{{ttag.title}}
1. Netperf性能测试工具
1、 安装Netperf,用网线连接服务端和客户端,设置IP:
服务端的IP:192.168.0.20
客户端的IP:192.168.0.10
2、 解压压缩包:unzip netperf-2.7.0.zip
3、 cd netperf-netperf-2.7.0/
4、 指定架构配置:./configure  (或./configure --build=arm|mips|x86)
5、 make
6、 make install
7、 临时关闭服务端和客户端的防火墙:systemctl stop firewalld
8、 启动服务端Netperf
服务端执行netserver
默认情况下 netserver 开启端口号为 12865,如提示端口被占用,可以通过以下命令指定服务端口(如果服务端指定端口,则客户端也需要指定服务器端口)如:
服务端:netserver -D -p 4659
客服端:
TCP吞吐率
netperf -t TCP_STREAM -H 192.168.0.20 -l 60 -p 4659
TCP单链路
netperf -t TCP_RR -H 192.168.0.20 -l 60 -p 4659
UDP单链路
netperf -t UDP_RR -H 192.168.0.20 -l 60 -p 4659
UDP吞吐率
netperf -t UDP_STREAM -H 192.168.0.20 -l 60 -p 4659
9、 如默认端口未被占用,则客户端执行:
-H为服务端的IP地址;-l为运行时间.
(1) TCP吞吐率
netperf -t TCP_STREAM -H 192.168.0.20  -l 60
(2) TCP单链路
netperf -t TCP_RR -H 192.168.0.20  -l 60
(3) UDP单链路
netperf -t UDP_RR -H 192.168.0.20  -l 60
(4) UDP吞吐率
netperf -t UDP_STREAM -H 192.168.0.20  -l 60
1.1. 命令解析:
命令参数
  命令参数包括如下:
  -H host:制定远端运行netserver 的服务器IP地址;
  -I testlen:执行测试的时间长度(秒);
  -t testname:制定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR;
  -s size:设置本地系统的socket发送与接收缓冲大小;
  -S size:设置远端系统的socket发送与接收缓冲大小;
  -m size:设置本地系统发送测试分组的大小;
  -M size:设置远端系统接收测试分组的大小;
  -D 对本地与远端系统的socket设置TCP_NODELAY选项;
TCP_STREAM测试
Netperf缺省情况下进行TCP批量传输,即-t TCP_STREAM,用来测试进行TCP批量传输时的网络性能。
测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量。
UDP_STREAM测试
UDP_STREAM用来测试进行UDP批量传输时的网络性能。
测试UDP的网络性能时,测试分组的大小不得大于socket的发送与接收缓冲大小,否则netperf会报出错提示。
TCP_RR
TCP_RR 方式的测试对象是多次 TCP request 和 response 的交易过程,但是它们发生在同一个 TCP 连接中,这种模式常常出现在数据库应用中。数据库的 client 程序与 server 程序建立一个 TCP 连接以后,就在这个连接中传送数据库的多次交易过程。
2. Unixbench性能测试工具
2.1. Unixbench 简介
UnixBench是一款开源的测试unix系统基本性能的工具,是比较通用的测试VPS性能的工具。
UnixBench会执行一系列的测试,包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译 器。
测试系统各个方面一系列的性能,然后将每个测试结果和一个基准值进行比 较,得到一个索引值,所有测试项目的索引值结合在一起形成一个测试分数值.
:Unixbench是一个系统基准测试工具,不是CPURAM或者磁盘基准测试工具。结果不仅依靠硬件,还要依靠操作系统、库甚至编译器。
2.2. Unixbench安装
下载地址:https://github.com/kdlucas/byte-unixbench
将测试工具Unixbench拷贝到测试机器并进行解压
Unixbench目录下执行以下命令
#make
2.3. Unixbench 系统性能测试
Unixbench目录下执行以下命令
#./Run
#./Run -c 64 //c指定测试的线程数为64
2.4. Unixbench 图形性能测试
2.5. Unixbench测试结果分析
Unixbench目录下的results文件中,可查看html相关文件。
如图,系统性能得分741。
file:///C:/Users/Administrator/AppData/Local/Temp/ksohtml9692/wps34.jpg
如图,2D性能得分5252.4,3D性能得分1533.9。
file:///C:/Users/Administrator/AppData/Local/Temp/ksohtml9692/wps35.jpg
2.6. 测试用时参考
测试用时预计30分钟。
2.7. 报错信息
libnsl.so.1:无法打开共享对象文件:没有这个文件或目录
原因
升级后的麒麟系统缺少动态库
解决办法
1、到 /usr/lib64/下 执行find命令 找一下 libnsl.so 资源库
find / -name “libnsl.so*”
如果不是我们需要的 libnsl.so.1 而是有 libnsl.so.2 那么我们就可以做个软连 ln -s /usr/lib64/libnsl.so.2 /usr/lib64/libnsl.so.1
或者自己去网上下载 libnsl.so.1 动态库资源 放置到系统目录下 /usr/lib64/ 然后执行 chmod +x libnsl.so.1 即可
编译软件报错 undefined reference to `major'
在对应的文件前面加上 #include <sys/sysmacros.h>
3. stream性能测试工具
3.1. stream 简介
STREAM是一套综合性能测试程序集,通过fortran和C两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率, 使得 STREAM 测试例程可以充分发挥出内存的能力。 STREAM 测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值
3.2. stream安装执行
1、 在服务器操作系统中,运行Stream性能测试工具
2、 执行单线程测试命令:gcc -O3 -DSTREAM_ARRAY_SIZE=20000000 stream.c -o stream
3、 ./stream
4、 执行满线程测试命令:gcc -O3 -fopenmp -DSTREAM_ARRAY_SIZE=40000000 stream.c -o stream
5、 ./stream
参数解析:
1.    –fopenmp
适应多处理器环境。开启后,程序默认线程为CPU线程数,也可以运行时也可以动态指定运行的进程数,12为自定义的要使用的处理器数。
export OMP_NUM_THREADS=12
2.    -DSTREAM_ARRAY_SIZE(指定计算中数组的大小)
计算方法参考stream.c中的说明,举例:u540的 L2缓存 2MB,其值为
double类型占8 Byte,每个ARRAY的大小是 STREAM_ARRAY_SIZE * 8Byte。
每个ARRAY的大小要超过4倍的缓存大小,即:
        STREAM_ARRAY_SIZE * 8B   >   4 * 2MB
可得STREAM_ARRAY_SIZE最小需要为1M,在这里作者并不区分1M是10的6次方,还是2的20次方,因为4倍大小已经远远大于缓存,能够保证访存到达内存而不是访问到缓存。这个值是最小值,可以适当大于此值,增大array size会增加测试时间,也会保证测试过程至少经历20个clock ticks。
2.    –DNTIMES
NTIMES是执行次数,默认值是10,所有测试,结束后从结果中取最优,第一轮测试的结果不参与最终统计。
4.    -mexplicit-relocs
STREAM_ARRAY_SIZE太大时,gcc编译会出错,需要使用此选项更改代码链接时的分布。
如果是x64平台,当STREAM_ARRAY_SIZE比较大时,(大于100MB可能)编译会出错,需要给gcc添加 选项  -mcmodel=large
3.3. 结果说明
Copy:是复制操作,即从内存单元中读取一个数,并复制到其他内存单元中,两次访问内存操作。
Scale:是乘法操作,即从内存单元中读取一个数,与常数相乘,得到的记过存到其他内存单元,两次访问内存操作。
Add:是加法操作,从两个内存单元中分别读取两个数,将其进行加法操作后,得到的结果写入另一个内存单元中,3次访问内存操作。
Triad:是前面三种的结合,先从内存中读取一个数,与一个常数相乘得到一个乘积,然后从另一个内存单元中读取一个数与刚才乘积结果相加,得到的结果写入内存。3次访问内存操作。
测试结果一般的规律是Add > Triad > Copy > Scale。一次Add操作需要访问三次内存(两个读操作,一个写操作),Triad操作也需要三次访问内存, Copy和Scale操作需要两次访问内存。单位操作内,访问内存次数越多,越能够掩盖访存延迟,带宽越大
4. FIO性能测试工具
4.1. FIO简介
FIO是一个开源的I/O压力测试工具,主要是用来测试磁盘的IO性能,也可测试cpu,nic的IO性能。它可以支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, network, syslet, guasi, solarisaio, I/Opriorities (针对新的Linux内核), rate I/O, forked or threaded jobs等。
FIO使用简单,支持的文件操作非常多,基本可以覆盖到常用的的文件使用方式
4.2. FIO安装执行
//解压安装包
tar zxvf fio-2.2.5.tar.gz
//进入文件
cd fio-2.2.5
//执行
./configure
//执行
make
//执行
make install
//执行顺序读命令
fio -filename=/dev/sda -direct=1 -iodepth=1 -thread -rw=read -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=120 -group_reporting -name=labTest
//执行顺序写命令
fio -filename=/dev/sda -direct=1 -iodepth=1 -thread -rw=write -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=60 -group_reporting -name=labTest
参数解析:
可以使用fio -help查看每个参数,具体的参数左右可以在官网查看how to文档,如下为几个常见的参数描述
filename=/dev/emcpowerb 支持文件系统或者裸设备-filename=/dev/sda2或-filename=/dev/sdb
direct=1        测试过程绕过机器自带的buffer,使测试结果更真实 rw=randwread    测试随机读的I/O
rw=randwrite    测试随机写的I/O
rw=randrw       测试随机混合写和读的I/O
rw=read         测试顺序读的I/O
rw=write        测试顺序写的I/O
rw=rw           测试顺序混合写和读的I/O
bs=4k          单次io的块文件大小为4k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g         本次的测试文件大小为5g,以每次4k的io进行测试 numjobs=30      本次的测试线程为30 runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止
ioengine=psync   io引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包
rwmixwrite=30    在混合读写的模式下,写占30%
group_reporting   关于显示结果的,汇总每个进程的信息
lockmem=1g       只使用1g内存进行测试
zero_buffers     用0初始化系统buffer
nrfiles=8        每个进程生成文件的数量
4.3. 结果说明
file:///C:/Users/Administrator/AppData/Local/Temp/ksohtml9692/wps36.png
io 执行了多少M的IO
bw 平均IO带宽
iops IOPS 即I/O per second,即每秒进行读写(I/O)操作的次数,是衡量磁盘性能的主要指标之一。
runt 线程运行时间(单位毫秒)
slat 提交延迟
clat 完成延迟
lat 响应时间
cpu 利用率
IO depths io队列
IO submit 单个IO提交要提交的IO数
IO complete 与上面的提交编号一样,但改为填写
IO issued 发出的读/写请求数,以及短请求数。
IO latencies IO延迟的分布
下面的io 总共执行了多少size的IO
aggrb group总带宽
minb 最小平均带宽.
maxb 最大平均带宽.
mint group中线程的最短运行时间.
maxt group中线程的最长运行时间.
ios 所有group总共执行的IO数.
merge 总共发生的IO合并数.
ticks Number of ticks we kept the disk busy.
in_queue 花费在队列上的总共时间.
util 磁盘利用率
总结
我们一般主要看iops、bw、util的值,数值越高则性能越好

打赏鼓励作者,期待更多好文!

打赏
1人已打赏

发表新帖
热门标签
全部标签>
安全效果
【 社区to talk】
功能体验
新版本体验
每日一问
西北区每日一问
技术咨询
产品连连看
标准化排查
GIF动图学习
干货满满
社区新周刊
纪元平台
高手请过招
信服课堂视频
安装部署配置
安全攻防
自助服务平台操作指引
每周精选
专家问答
技术笔记
VPN 对接
资源访问
玩转零信任
畅聊IT
答题自测
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
2023技术争霸赛专题
通用技术
卧龙计划
华北区拉练
天逸直播
以战代练
秒懂零信任
技术晨报
技术盲盒
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力
故障案例库

本版版主

197
328
992

发帖

粉丝

关注

217
291
151

发帖

粉丝

关注

25
15
5

发帖

粉丝

关注

7
12
27

发帖

粉丝

关注

5
10
7

发帖

粉丝

关注

32
35
46

发帖

粉丝

关注

本版达人

皮皮虾·真

本周建议达人

郑州网络

本周分享达人

二进制网络

本周提问达人