Linux系统的性能测试
性能测试: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),这个值是测试系统的测试结果与一个基线系统测试结果比较得到的指数值,这样比原始值更容易得到参考价值,测试集合里面所有的测试得到的指数值结合起来得到整个系统的指数值。
对于测试结果,说明如下:
Linux系统的性能测试的更多相关文章
- Ubuntu等Linux系统显卡性能测试软件 Unigine 3D
Ubuntu等Linux系统显卡性能测试软件 Unigine 3D Ubuntu Intel显卡驱动安装,请参考: http://blog.csdn.net/zhangrelay/article/de ...
- Linux系统性能测试工具(九)——文件系统的读写性能测试工具之iozone
本文介绍关于Linux系统(适用于centos/ubuntu等)的文件系统的读写性能测试工具-iozone: 参考链接: https://www.cnblogs.com/Dev0ps/p/788938 ...
- Linux系统性能测试工具(八)——网络性能测试工具之netperf
本文介绍关于Linux系统(适用于centos/ubuntu等)的网络性能测试工具-iperf.磁盘io性能测试工具包括: iperf: netperf 参考链接:https://www.jiansh ...
- Linux系统性能测试工具(七)——网络性能工具之iperf
本文介绍关于Linux系统(适用于centos/ubuntu等)的网络性能测试工具-iperf.磁盘io性能测试工具包括: iperf: netperf 参考链接:https://www.cnblog ...
- Linux系统性能测试工具(六)——磁盘io性能工具之dd
本文介绍关于Linux系统(适用于centos/ubuntu等)的磁盘io性能测试工具-dd.磁盘io性能测试工具包括: fio: dd
- Linux系统性能测试工具(五)——磁盘io性能工具之fio
本文介绍关于Linux系统(适用于centos/ubuntu等)的磁盘io性能测试工具-fio.磁盘io性能测试工具包括: fio: dd
- Linux系统性能测试工具(四)——CPU性能测试工具之super_pi、sysbench
本文介绍关于Linux系统(适用于centos/ubuntu等)的CPU性能测试工具-sysbench.CPU性能测试工具包括: super_pi: sysbench——不仅可以测试CPU性能,而且可 ...
- Linux系统性能测试工具(三)——内存性能综合测试工具lmbench
本文介绍关于Linux系统(适用于centos/ubuntu等)的内存性能综合测试工具-lmbench.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: ...
- Linux系统性能测试工具(二)——内存压力测试工具memtester
本文介绍关于Linux系统(适用于centos/ubuntu等)的内存压力测试工具-memtester.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: ...
随机推荐
- Altium Designer 快捷键与技巧
在PCB中: 布线过程中,换层快捷键:"Ctrl" + "Shift" + "滚轮". 单独显示顶层或底层:按"SHIFT&qu ...
- Python2和Python3
1. 字符编码 1.1. Python2默认为ACSII编码 1.2. Python3为Unicode 2. Unicode和UTF8和GBK编码的关系 utf8:中文3字节 ...
- 1010 一元多项式求导 (25 分) C语言
设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为nxn−1.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数).数字间以空格分隔. ...
- pygame---制作一只会转弯的小乌龟
Pygame Pygame是跨平台Python模块,专为电子游戏设计,包含图像.声音.建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚. 包含图像.声音. 建立在S ...
- ssm中需要注意的问题
1.在controller中需要加注解 @Controller @RequestMapping("url") @Autowired private CardService card ...
- Spring缓存穿透问题修复
本文来自网易云社区. 本剧情纯属真实,犹如雷同实乃缘分. 发生 事情的发生在某天早上,天气怎样反正是忘了,只记得当时监控平台大量的数据库错误报警. 作为后端开发,当看到日志中大量的db连接获取失败,心 ...
- 【system.folder】使用说明
对象:system.folder 说明:提供一系列针对文件夹的操作 目录: 方法 返回 说明 system.folder.exists(folderPath) [True | False] 检测指定文 ...
- python 终极篇 ---django 认证
Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...
- STL之--插入迭代器(back_inserter,inserter,front_inserter的区别)
除了普通迭代器,C++标准模板库还定义了几种特殊的迭代器,分别是插入迭代器.流迭代器.反向迭代器和移动迭代器,定义在<iterator>头文件中,下面主要介绍三种插入迭代器(back_in ...
- 165. Merge Two Sorted Lists【LintCode by java】
Description Merge two sorted (ascending) linked lists and return it as a new sorted list. The new so ...