专栏首页用户6517667的专栏Linux系统如何做性能测试?

Linux系统如何做性能测试?

来源:51testing

性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench

一、CPU物理个数、内核、超线程、多核心

  1、登录Terminal,执行:cat /proc/cpuinfo,就会显示出主机的CPU详细参数,如内核、频率、型号等等,以下是我Linux 系统主机的CPU:

  2、主要参数physical_id表示物理CPU个数,cpu cores是内核数,Siblings 表示位于这一物理封装上的逻辑处理器的数量,它们可能支持也可能不支持超线程(HT)技术

  3、如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。如果有两个或两个以上的逻辑处理器拥有 相同的 physical id,但是 core id 不同,则说明这是一个多内核处理器。

  4、如果“siblings”和“cpu cores”一致,则说明不支持超线程,或者超线程未打开。如果“siblings”是“cpu cores”的两倍,则说明支持超线程,并且超 线程已打开。

  5、直接查看逻辑CPU的个数,执行:cat /proc/cpuinfo |grep 'physical id' |sort |uniq

  6、直接查看CPU的型号,执行:cat /proc/cpuinfo |grep 'model name' |sort |uniq

  7、单个CPU的内核数,执行:cat /proc/cpuinfo |grep 'cpu cores' |sort |uniq

  8、总的CPU线程数,执行:cat /proc/cpuinfo |grep 'processor'

 二、内存大小、交换空间、高速缓存、实际使用内存

  1、查看主机的内存信息,执行:cat /proc/meminfo,主要是看内存大小、交换空间、高速缓存。

  2、主机实际使用内存大小。Linux管理内存的机制是这样的:无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。

  3、即Linux会利用空闲的物理内存,划分出一部份空间,做为 cache 和 buffers ,以此提高数据访问性能。cache主要用来减少对磁盘的I/O操作。 所以我们经常能够看到一个总内存为8GB的Linux VPS测试出来占用的内存也是8GB。

  4、那么如何才能知道Linux真正占用的内存是多少呢?执行命令:free –m

  5、计算主机真实的使用内存方法是:Total-Free-Cached=真实使用内存,即1016912-18584-206944=791384,表示我的主机真实使用的内存是 791384MB。

三、磁盘IO读写速度测试

  1、磁盘IO,即输入/输出(Input/Output),这是测试磁盘性能一个重要指标。

  2、测试主机磁盘IO的性能可以执行以下两个命令:

  dd if=/dev/zero of=test bs=64k count=4k oflag=dsync

  dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

  3、conv=fdatasync与oflag=dsync的区别在于:sync函数只是将所有修改过的块缓冲区排入写队列,然后就返回,它并不等待实际写磁盘操作结束。

  4、而fsync函数只对由文件描述符filedes指定的单一文件起作用,并且等待写磁盘操作结束,然后返回。这是我电脑的硬盘IO测试结果。

 四、速度测试:上传下载速度、服务器带宽

  测试VPS主机入口与出口的带宽一键脚本,执行命令:

  wget https://github.com/sivel/speedtest-cli/raw/master/speedtest_cli.py

  python speedtest_cli.py --share

五、性能综合测试:UnixBench跑分工具测试

  1、UnixBench是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试性能的工具,Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。

  2、UnixBench测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器,测试系统各个方面一系列的性能,然后将每个 测试结果和一个基准值进行比较,得到一个索引值,所有测试项目的索引值结合在一起形成一个测试分值。

  3、UnixBench测试执行以下命令:

  wget http://teddysun.com/wp-content/uploads/unixbench.sh

  chmod +x unixbench.sh

  ./unixbench.sh

  4、测试时间可能会比较长,请耐心等待。最后UnixBench会详细列出各个测试项目的得分情况,以及主机性能的综合跑分结果。 如下图,得分为879.7。

  这些测试的结果有一个指数值(INDEX ,如520),这个值是测试系统的测试结果与一个基线系统测试结果比较得到的指数值,这样比原始值更容易得到参考价值,测试集合里面所有的测试得到的指数值结合起来得到整个系统的指数值。

本文分享自微信公众号 - 软件测试培训(iTestTrain),作者:软件测试培训

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 软件性能测试(连载1)

    性能测试在质量ISO2510 2006模型中属于效率,根据维基百科定义,[30]软件性能测试作为软件质量保证必不可少的环节,指的是软件系统或构件对于其及时性要求...

    小老鼠
  • 解锁探索式测试:发展阶段、相关类型、优秀实践

    在探索性测试中,测试人员会在没有既定计划的情况下去检查目标系统,以发现用户在浏览网站或使用应用程序时,可能遇到的各种缺陷。此方式应尽量能够模仿最终用户的各种自由...

    小老鼠
  • 测试报告如何编写?

    作为一个曾经是测试萌新的我,在首次接收到一个任务时总有一种忐忑慌张激动紧张期望的复杂情绪~~忐忑慌张紧张是怕自己做不好,得不到领导的赏识;激动期望是哇塞,我有任...

    小老鼠
  • Java中的>>,>>>和<<

    我们都知道对于有符号数据类型,二进制最左端的数字为符号位,0代表正,1代表负,这里先介绍几个概念

    Java识堂
  • 有限元 | 颇有难度的薄板协调单元

    作平面问题分析时,有这样的经验:节点多的单元往往比节点少的单元更难构造。八节点四边形单元比四节点四边形单元难于构造,而四节点四边形单元又比三节点三角形单元更难。...

    fem178
  • Log4j官方文档翻译(八、文件输出)

    使用org.apache.log4j.FileAppender可以把日志写到文件中: FileAppender配置 immediateFlush 这个标志默认为...

    用户1154259
  • YARN任务监控界面Aggregate Resource Allocation指标解析

    在YARN的原生任务监控界面中,我们经常能看到Aggregate Resource Allocation这个指标(图中高亮选中部分),这个指标表示该任务拥有的所...

    九州暮云
  • 如何在Ubuntu 14.04上的主代理安装程序中安装Puppet 4

    来自Puppet Labs的Puppet是一种配置管理工具,可帮助系统管理员自动化服务器基础架构的配置,配置和管理。提前规划并使用Puppet等配置管理工具可以...

    SQL GM
  • 2018全球加密数字货币钱包安全白皮书

    前言 2017年是加密数字货币的爆发之年——比特币涨幅近13倍,很多人认为,加密数字货币是金融行业中最大的革命力量之一。但与此同时,作为金融领域中最具争...

    安智客
  • 【安富莱二代示波器教程】第6章 示波器设计—双通道ADC驱动

    本章节为大家讲解示波器的ADC驱动,采用STM32自带ADC实现。关于STM32F429的ADC,可以说处处有地雷,不小心就踩上了,如果简单的使用,不会发现,复...

    armfly

扫码关注云+社区

领取腾讯云代金券