目录
一、理论
1.stress工具简介与安装
2.语法及参数
3.具体安装
二、实验
1.运行8 cpu, 4 fork, 5 hdd, 4 io, 50 vm, 10小时
2.CPU测试
3.内存测试
4.IO测试
5.磁盘及I/O测试
三、问题
1. -bash: ./configure: 没有那个文件或目录
2. 下载yum源报错:未知的名称或服务解决方法
3. linux 为什么要安装gcc和gcc-c++(又叫做g++)
四、总结
1.stress分类
2.GCC功能与作用
一、理论
1.stress工具简介与安装
(1)概念
stress是Linux系统下的系统压力测试工具,可以测试Linux系统的CPU、内存、磁盘I/O等的负载。
当stress测试CPU时,会不断调用进程,计算随机数的平方根;当测试内存时,会不断调用内存调用malloc和内存释放free函数;当测试磁盘I/O时,会不断调用sync()中断,以测试磁盘I/O。
CentOS 7 的EPEL源包含2个压力测试工具,一个是标准的stress,另一个是其升级版stress-ng。
stress-ng是stress的升级版,用于Linux压力测试,带源码。stress-ng兼容stress, 支持产生各种复杂的压力。
(2)安装
stress的安装有两种方式,YUM方式和源码安装方式。
①采用YUM方式
yum install -y epel-release.noarch && yum -y update
yum install -y stress stress-ng
②采用源码安装方式
下载页面为:The Fossies Software Archive - linux/privat,如下所示:
2.语法及参数
(1)语法
stress [OPTION]
stress-ng [OPTION [ARG]]
(2)stress参数
表1 stress参数
参数 |
功能 |
-?,–help |
显示帮助信息 |
–version |
显示版本信息 |
-v,–verbose |
运行时显示详细的信息 |
-q,–quiet |
运行时不显示运行信息 |
-n,–dry-run |
显示以完成的指令情况 |
-t,–timeout |
指定程序运行结束的时间,单位为秒 |
–backoff |
指定程序开始运行的时间,单位为微妙 |
-c,–cpu |
后面跟一个整数,表示测试CPU的进程数 -c 2 :表示生成2个worker循环调用sqrt()产生cpu压力 |
-i,–io |
后面跟一个整数,表示测试磁盘I/O的进程数 -i 1 :表示生成1个worker循环调用sync()产生io压力 |
-m,–vm |
后面跟一个整数,表示测试内存的进程数 -m 1 :表示生成1个worker循环调用malloc()/free()产生内存压力 |
–vm-bytes |
指定在内存测试时malloc的字节数,默认256M |
–vm-stride |
指定每B个字节移动一个字节 |
–vm-hang |
指定free栈的秒数 |
–vm-keep |
向内存空间内不断写入,而不是释放和重新分配 |
-d,–hdd |
产生执行write和unlink函数的进程数 |
–hdd-bytes |
指定写的字节数 |
(3)stress-ng参数
stress-ng参数有几百项,可以模拟复杂的压力测试,但是兼容stress的参数。 主要使用参数:
表1 stress-ng参数
参数 |
功能 |
-c N |
运行N worker CPU压力测试进程 |
--cpu-method all |
worker从迭代使用30多种不同的压力算法,包括pi, crc16, fft等等 |
-tastset N |
将压力加到指定核心上 |
-d N |
运行N worker HDD write/unlink测试 |
-i N |
运行N worker IO测试 |
3.具体安装
(1)在线安装
yum install -y epel-release && yum install -y stress
(2)离线安装
① 上传stress包
登录要安装的服务器,将stress-ng-0.15.08.tar.gz上传到服务器,解压安装
此处以实际工作环境为例,首先登录服务器控制节点(由于网络环境限制无法直接与被测服务器传送文件,也无法实现在线安装,故以此作为跳板登录到被测服务器实现文件互传),首先控制节点服务器上创建并切换到新建目录,将stress-ng-0.15.08.tar.gz包传入新建目录中,然后通过scp命令将stress-ng-0.15.08.tar.gz包传入需要测试的服务器中
[root@localhost opt]# scp stress-ng-0.15.08.tar.gz root@192.168.204.200:/opt/
The authenticity of host '192.168.204.200 (192.168.204.200)' can't be established.
ECDSA key fingerprint is SHA256:98OlrQFN15A/f8247mqaSl4bNm+Gd36VEWfNis2unG4.
ECDSA key fingerprint is MD5:96:5a:85:bd:1a:91:0b:3e:94:fe:32:d1:d9:27:1c:ac.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.204.200' (ECDSA) to the list of known hosts.
root@192.168.204.200's password:
stress-ng-0.15.08.tar.gz 100% 3750KB 22.7MB/s 00:00
输入服务器登录密码,文件上传成功
[root@localhost opt]# ssh root@192.168.204.200
root@192.168.204.200's password:
Last login: Wed Jun 14 21:58:37 2023 from 192.168.204.1
[root@localhost ~]# ls /opt
stress-ng-0.15.08.tar.gz
输入gcc -v 验证是否已安装gcc,若未安装请先安装gcc
yum -y install gcc
[root@localhost ~]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
② 编译安装stress
make && make install
③ 安装完成后,可以使用stress-ng -V查看版本。
[root@localhost stress-ng-0.15.08]# stress-ng -V
stress-ng, version 0.15.08 (gcc 4.8.5, x86_64 Linux 3.10.0-693.el7.x86_64)
④ 使用stress-ng -h查看使用方法。
[root@localhost stress-ng-0.15.08]# stress-ng -h
stress-ng, version 0.15.08 (gcc 4.8.5, x86_64 Linux 3.10.0-693.el7.x86_64)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)