[root@centos12 stress-1.0.4]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
[root@centos12 thmsoftware]# wget http://people.seas.harvard.edu/~apw/stress/stress-1.0.4.tar.gz --2018-01-23 11:53:06-- http://people.seas.harvard.edu/~apw/stress/stress-1.0.4.tar.gz Resolving people.seas.harvard.edu (people.seas.harvard.edu)... 54.172.197.41 Connecting to people.seas.harvard.edu (people.seas.harvard.edu)|54.172.197.41|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 191800 (187K) [application/x-gzip] Saving to: ‘stress-1.0.4.tar.gz’
100%[========================>] 191,800 84.4KB/s in 2.2s
2018-01-23 11:53:14 (84.4 KB/s) - ‘stress-1.0.4.tar.gz’ saved [191800/191800]
[root@centos12 thmsoftware]# [root@centos12 thmsoftware]# ls -ltr total 188 -rw-r--r-- 1 root root 191800 Mar 18 2014 stress-1.0.4.tar.gz [root@centos12 thmsoftware]# tar -xvf stress-1.0.4.tar.gz stress-1.0.4/ stress-1.0.4/aclocal.m4 stress-1.0.4/INSTALL stress-1.0.4/depcomp stress-1.0.4/configure.in stress-1.0.4/NEWS stress-1.0.4/COPYING stress-1.0.4/ChangeLog stress-1.0.4/missing stress-1.0.4/TODO stress-1.0.4/configure stress-1.0.4/README stress-1.0.4/doc/ stress-1.0.4/doc/mdate-sh stress-1.0.4/doc/stress.html stress-1.0.4/doc/stamp-vti stress-1.0.4/doc/stress.1 stress-1.0.4/doc/stress.info stress-1.0.4/doc/Makefile.am stress-1.0.4/doc/stress.texi stress-1.0.4/doc/version.texi stress-1.0.4/doc/texinfo.tex stress-1.0.4/doc/Makefile.in stress-1.0.4/AUTHORS stress-1.0.4/Makefile.am stress-1.0.4/Makefile.in stress-1.0.4/src/ stress-1.0.4/src/Makefile.am stress-1.0.4/src/stress.c stress-1.0.4/src/Makefile.in stress-1.0.4/test/ stress-1.0.4/test/check_version_return_code stress-1.0.4/test/Makefile.am stress-1.0.4/test/check_usage_return_code stress-1.0.4/test/Makefile.in stress-1.0.4/install-sh [root@centos12 thmsoftware]# cd stress-1.0.4 [root@centos12 stress-1.0.4]# ls -ltr total 328 -rwxr-xr-x 1 1003 1003 7831 Dec 8 2002 INSTALL -rwxr-xr-x 1 1003 1003 395 Dec 9 2005 AUTHORS -rwxr-xr-x 1 1003 1003 1921 Jan 23 2007 TODO -rwxr-xr-x 1 1003 1003 922 May 31 2008 README -rwxr-xr-x 1 1003 1003 367 Aug 12 2009 Makefile.am -rwxr-xr-x 1 1003 1003 3509 Feb 18 2010 NEWS -rwxr-xr-x 1 1003 1003 967 Mar 19 2010 configure.in -rwxr-xr-x 1 1003 1003 11135 Mar 19 2010 missing -rwxr-xr-x 1 1003 1003 13620 Mar 19 2010 install-sh -rw-r--r-- 1 1003 1003 32612 Mar 19 2010 aclocal.m4 -rw-r--r-- 1 1003 1003 18730 Mar 19 2010 Makefile.in -rwxr-xr-x 1 1003 1003 17867 Mar 19 2010 depcomp -rwxr-xr-x 1 1003 1003 160968 Mar 19 2010 configure -rw-r--r-- 1 1003 1003 14320 Mar 19 2010 ChangeLog -rw-r--r-- 1 1003 1003 18092 Mar 24 2010 COPYING drwxr-xr-x 2 1003 1003 108 Mar 18 2014 test drwxr-xr-x 2 1003 1003 60 Mar 18 2014 src drwxr-xr-x 2 1003 1003 189 Mar 18 2014 doc [root@centos12 stress-1.0.4]# cat README INSTALL
See the INSTALL file for generic installation instructions. The quick version is:
./configure && make && sudo make install
USAGE
You can see the program's usage statement by invoking it with --help. A typical invocation is:
stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
A user manual is available:
info stress
The project home page is:
http://weather.ou.edu/~apw/projects/stress/
PATCHES
This program works really well for me, but it might not have some of the features that you want. If you would like, please extend the code and send me the patch. Please use the context diff format. That is: save the original program as stress.c.orig, then make and test your desired changes to stress.c, then run `diff -u stress.c.orig stress.c' to produce a context diff. Enjoy the program :-)
Amos Waterland apw@rossby.metr.ou.edu
Norman, Oklahoma
27 Nov 2001
[root@centos12 stress-1.0.4]# ./configure && make && make install
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in /thmsoftware/stress-1.0.4': configure: error: no acceptable C compiler found in $PATH See
config.log' for more details.
[root@centos12 stress-1.0.4]# cat config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was generated by GNU Autoconf 2.63. Invocation command line was
$ ./configure
---------
Platform.
---------
hostname = centos12 uname -m = x86_64 uname -r = 3.10.0-693.11.1.el7.x86_64 uname -s = Linux uname -v = #1 SMP Mon Dec 4 23:52:40 UTC 2017
/usr/bin/uname -p = x86_64 /bin/uname -X = unknown
/bin/arch = x86_64 /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown
PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /usr/sbin PATH: /usr/bin PATH: /root/bin
-----------
Core tests.
-----------
configure:1858: checking for a BSD-compatible install
configure:1926: result: /usr/bin/install -c
configure:1937: checking whether build environment is sane
configure:1980: result: yes
configure:2005: checking for a thread-safe mkdir -p
configure:2044: result: /usr/bin/mkdir -p
configure:2057: checking for gawk
configure:2073: found /usr/bin/gawk
configure:2084: result: gawk
configure:2095: checking whether make sets $(MAKE)
configure:2117: result: yes
configure:2350: checking for gcc
configure:2380: result: no
configure:2443: checking for cc
configure:2490: result: no
configure:2546: checking for cl.exe
configure:2576: result: no
configure:2600: error: in /thmsoftware/stress-1.0.4': configure:2603: error: no acceptable C compiler found in $PATH See
config.log' for more details.
----------------
Cache variables.
----------------
ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value= ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_path_install='/usr/bin/install -c' ac_cv_path_mkdir=/usr/bin/mkdir ac_cv_prog_AWK=gawk ac_cv_prog_make_make_set=yes
-----------------
Output variables.
-----------------
ACLOCAL='${SHELL} /thmsoftware/stress-1.0.4/missing --run aclocal-1.10' AMDEPBACKSLASH='' AMDEP_FALSE='' AMDEP_TRUE='' AMTAR='${SHELL} /thmsoftware/stress-1.0.4/missing --run tar' AUTOCONF='${SHELL} /thmsoftware/stress-1.0.4/missing --run autoconf' AUTOHEADER='${SHELL} /thmsoftware/stress-1.0.4/missing --run autoheader' AUTOMAKE='${SHELL} /thmsoftware/stress-1.0.4/missing --run automake-1.10' AWK='gawk' CC='' CCDEPMODE='' CFLAGS='' CPP='' CPPFLAGS='' CYGPATH_W='echo' DEFS='' DEPDIR='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='' EXEEXT='' GREP='' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' LDFLAGS='' LIBOBJS='' LIBS='' LTLIBOBJS='' MAKEINFO='${SHELL} /thmsoftware/stress-1.0.4/missing --run makeinfo' MKDIR_P='/usr/bin/mkdir -p' OBJEXT='' PACKAGE='stress' PACKAGE_BUGREPORT='' PACKAGE_NAME='' PACKAGE_STRING='' PACKAGE_TARNAME='' PACKAGE_VERSION='' PATH_SEPARATOR=':' SET_MAKE='' SHELL='/bin/sh' STRIP='' VERSION='1.0.4' ac_ct_CC='' am__fastdepCC_FALSE='' am__fastdepCC_TRUE='' am__include='' am__isrc='' am__leading_dot='.' am__quote='' am__tar='${AMTAR} chof - "$$tardir"' am__untar='${AMTAR} xf -' bindir='${exec_prefix}/bin' build_alias='' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE}' dvidir='${docdir}' exec_prefix='NONE' host_alias='' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' install_sh='$(SHELL) /thmsoftware/stress-1.0.4/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' mkdir_p='/usr/bin/mkdir -p' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='NONE' program_transform_name='s,x,x,' psdir='${docdir}' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias=''
-----------
confdefs.h.
-----------
#define PACKAGE_NAME "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define PACKAGE_STRING "" #define PACKAGE_BUGREPORT "" #define PACKAGE "stress" #define VERSION "1.0.4"
configure: exit 1 [root@centos12 stress-1.0.4]#
编译错误,缺少GCC模块
[root@centos12 stress-1.0.4]# stress --cpu 8 --io 4 --vm 2 --vm-by tes 128M --timeout 10s -bash: stress: command not found [root@centos12 stress-1.0.4]# [root@centos12 stress-1.0.4]# find / -name stress [root@centos12 stress-1.0.4]# [root@centos12 stress-1.0.4]# yum install gcc -y Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile
- base: mirrors.cn99.com
- extras: mirrors.tuna.tsinghua.edu.cn
- updates: mirrors.cn99.com Resolving Dependencies --> Running transaction check ---> Package gcc.x86_64 0:4.8.5-16.el7_4.1 will be installed --> Processing Dependency: cpp = 4.8.5-16.el7_4.1 for package: gcc-4.8.5-16.el7_4.1.x86_64 --> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-16.el7_4.1.x86_64 --> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-4.8.5-16.el7_4.1.x86_64 --> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-4.8.5-16.el7_4.1.x86_64 --> Running transaction check ---> Package cpp.x86_64 0:4.8.5-16.el7_4.1 will be installed ---> Package glibc-devel.x86_64 0:2.17-196.el7_4.2 will be installed --> Processing Dependency: glibc-headers = 2.17-196.el7_4.2 for package: glibc-devel-2.17-196.el7_4.2.x86_64 --> Processing Dependency: glibc-headers for package: glibc-devel-2.17-196.el7_4.2.x86_64 ---> Package libmpc.x86_64 0:1.0.1-3.el7 will be installed ---> Package mpfr.x86_64 0:3.1.1-4.el7 will be installed --> Running transaction check ---> Package glibc-headers.x86_64 0:2.17-196.el7_4.2 will be installed --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.17-196.el7_4.2.x86_64 --> Processing Dependency: kernel-headers for package: glibc-headers-2.17-196.el7_4.2.x86_64 --> Running transaction check ---> Package kernel-headers.x86_64 0:3.10.0-693.11.6.el7 will be installed --> Finished Dependency Resolution
Dependencies Resolved
============================================================================= Package Arch Version Repository Size
Installing: gcc x86_64 4.8.5-16.el7_4.1 updates 16 M Installing for dependencies: cpp x86_64 4.8.5-16.el7_4.1 updates 5.9 M glibc-devel x86_64 2.17-196.el7_4.2 updates 1.1 M glibc-headers x86_64 2.17-196.el7_4.2 updates 676 k kernel-headers x86_64 3.10.0-693.11.6.el7 updates 6.0 M libmpc x86_64 1.0.1-3.el7 base 51 k mpfr x86_64 3.1.1-4.el7 base 203 k
Transaction Summary
Install 1 Package (+6 Dependent packages)
Total download size: 30 M Installed size: 60 M Downloading packages: (1/7): glibc-headers-2.17-196.el7_4.2.x86_64.rpm | 676 kB 00:06 (2/7): glibc-devel-2.17-196.el7_4.2.x86_64.rpm | 1.1 MB 00:08 (3/7): libmpc-1.0.1-3.el7.x86_64.rpm | 51 kB 00:09 (4/7): mpfr-3.1.1-4.el7.x86_64.rpm | 203 kB 00:09 (5/7): cpp-4.8.5-16.el7_4.1.x86_64.rpm | 5.9 MB 00:25 (6/7): kernel-headers-3.10.0-693.11.6.el7.x86_64.rpm | 6.0 MB 00:28 (7/7): gcc-4.8.5-16.el7_4.1.x86_64.rpm | 16 MB 00:43
Total 699 kB/s | 30 MB 00:44 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : mpfr-3.1.1-4.el7.x86_64 1/7 Installing : libmpc-1.0.1-3.el7.x86_64 2/7 Installing : cpp-4.8.5-16.el7_4.1.x86_64 3/7 Installing : kernel-headers-3.10.0-693.11.6.el7.x86_64 4/7 Installing : glibc-headers-2.17-196.el7_4.2.x86_64 5/7 Installing : glibc-devel-2.17-196.el7_4.2.x86_64 6/7 Installing : gcc-4.8.5-16.el7_4.1.x86_64 7/7 Verifying : cpp-4.8.5-16.el7_4.1.x86_64 1/7 Verifying : glibc-devel-2.17-196.el7_4.2.x86_64 2/7 Verifying : mpfr-3.1.1-4.el7.x86_64 3/7 Verifying : libmpc-1.0.1-3.el7.x86_64 4/7 Verifying : glibc-headers-2.17-196.el7_4.2.x86_64 5/7 Verifying : gcc-4.8.5-16.el7_4.1.x86_64 6/7 Verifying : kernel-headers-3.10.0-693.11.6.el7.x86_64 7/7
Installed: gcc.x86_64 0:4.8.5-16.el7_4.1
Dependency Installed: cpp.x86_64 0:4.8.5-16.el7_4.1 glibc-devel.x86_64 0:2.17-196.el7_4.2 glibc-headers.x86_64 0:2.17-196.el7_4.2 kernel-headers.x86_64 0:3.10.0-693.11.6.el7 libmpc.x86_64 0:1.0.1-3.el7 mpfr.x86_64 0:3.1.1-4.el7
Complete!
[root@centos12 stress-1.0.4]#
[root@centos12 stress-1.0.4]#
[root@centos12 stress-1.0.4]#
[root@centos12 stress-1.0.4]#
[root@centos12 stress-1.0.4]# ./configure && make && make install checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for unistd.h... (cached) yes
checking for sqrt in -lm... yes
checking for basename in -lgen... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating doc/Makefile
config.status: creating test/Makefile
config.status: executing depfiles commands
Making all in .
make[1]: Entering directory /thmsoftware/stress-1.0.4' make[1]: Nothing to be done for
all-am'.
make[1]: Leaving directory /thmsoftware/stress-1.0.4' Making all in src make[1]: Entering directory
/thmsoftware/stress-1.0.4/src'
gcc -DPACKAGE_NAME="" -DPACKAGE_TARNAME="" -DPACKAGE_VERSION="" -DPACKAGE_STRING="" -DPACKAGE_BUGREPORT="" -DPACKAGE="stress" -DVERSION="1.0.4" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBM=1 -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -g -O2 -MT stress.o -MD -MP -MF .deps/stress.Tpo -c -o stress.o stress.c
mv -f .deps/stress.Tpo .deps/stress.Po
gcc -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -g -O2 -o stress stress.o -lm
make[1]: Leaving directory /thmsoftware/stress-1.0.4/src' Making all in doc make[1]: Entering directory
/thmsoftware/stress-1.0.4/doc'
make[1]: Nothing to be done for all'. make[1]: Leaving directory
/thmsoftware/stress-1.0.4/doc'
Making all in test
make[1]: Entering directory /thmsoftware/stress-1.0.4/test' make[1]: Nothing to be done for
all'.
make[1]: Leaving directory /thmsoftware/stress-1.0.4/test' Making install in . make[1]: Entering directory
/thmsoftware/stress-1.0.4'
make[2]: Entering directory /thmsoftware/stress-1.0.4' make[2]: Nothing to be done for
install-exec-am'.
make[2]: Nothing to be done for install-data-am'. make[2]: Leaving directory
/thmsoftware/stress-1.0.4'
make[1]: Leaving directory /thmsoftware/stress-1.0.4' Making install in src make[1]: Entering directory
/thmsoftware/stress-1.0.4/src'
make[2]: Entering directory /thmsoftware/stress-1.0.4/src' test -z "/usr/local/bin" || /usr/bin/mkdir -p "/usr/local/bin" /usr/bin/install -c 'stress' '/usr/local/bin/stress' make[2]: Nothing to be done for
install-data-am'.
make[2]: Leaving directory /thmsoftware/stress-1.0.4/src' make[1]: Leaving directory
/thmsoftware/stress-1.0.4/src'
Making install in doc
make[1]: Entering directory /thmsoftware/stress-1.0.4/doc' make[2]: Entering directory
/thmsoftware/stress-1.0.4/doc'
make[2]: Nothing to be done for install-exec-am'. test -z "/usr/local/share/info" || /usr/bin/mkdir -p "/usr/local/share/info" /usr/bin/install -c -m 644 './stress.info' '/usr/local/share/info/stress.info' install-info --info-dir='/usr/local/share/info' '/usr/local/share/info/stress.info' test -z "/usr/local/share/man/man1" || /usr/bin/mkdir -p "/usr/local/share/man/man1" /usr/bin/install -c -m 644 'stress.1' '/usr/local/share/man/man1/stress.1' make[2]: Leaving directory
/thmsoftware/stress-1.0.4/doc'
make[1]: Leaving directory /thmsoftware/stress-1.0.4/doc' Making install in test make[1]: Entering directory
/thmsoftware/stress-1.0.4/test'
make[2]: Entering directory /thmsoftware/stress-1.0.4/test' make[2]: Nothing to be done for
install-exec-am'.
make[2]: Nothing to be done for install-data-am'. make[2]: Leaving directory
/thmsoftware/stress-1.0.4/test'
make[1]: Leaving directory `/thmsoftware/stress-1.0.4/test'
[root@centos12 stress-1.0.4]# which stress /usr/local/bin/stress
[root@centos12 stress-1.0.4]#
上述表明stress 安装成功
进行压测 [root@centos12 stress-1.0.4]# stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s stress: info: [8041] dispatching hogs: 8 cpu, 4 io, 2 vm, 0 hdd stress: info: [8041] successful run completed in 11s [root@centos12 stress-1.0.4]#
查看负载变化
[root@centos12 ~]# uptime 13:53:49 up 3:59, 2 users, load average: 0.04, 0.04, 0.05 [root@centos12 ~]# uptime
13:54:03 up 3:59, 2 users, load average: 1.87, 0.42, 0.17 [root@centos12 ~]# uptime 13:54:03 up 3:59, 2 users, load average: 1.87, 0.42, 0.17 [root@centos12 ~]# [root@centos12 ~]# [root@centos12 ~]# uptime 13:54:04 up 3:59, 2 users, load average: 1.72, 0.41, 0.17 [root@centos12 ~]# uptime 13:54:06 up 3:59, 2 users, load average: 1.72, 0.41, 0.17 [root@centos12 ~]# uptime 13:54:07 up 3:59, 2 users, load average: 1.72, 0.41, 0.17