linux 测试程序?linux执行文件
linux下如何监听进程
一、supervise
Supervise是daemontools的一个工具,可以用来监控管理unix下的应用程序运行情况,在应用程序出现异常时,supervise可以重新启动指定程序。
使用:
mkdir test
cd test
vim run写入希望执行的操作
supervise test(注意这里是的参数是run文件上层的文件夹,改变run的为可执行 chmod+x run)
二、monit
monit是一个小型的开放源码工具来管理和监控Unix系统。Monit可以自动维护进程,及时避免进程异常退出等产生的问题。
系统: monit可以监控问题的发生,包括进程状态、系统cpu负载、内存占用情况等,例如当apache服务的cpu负载以及内存闸弄情况过高时候,它会重启apache服务。
进程: monit可以监控守护进程,包括系统进程。例如当某个进行down掉,它会自动恢复重启该进程。
文件系统:Monit可以监控本地文件、目录、文件系统的变化,包括时间戳、校验值、大小的变化。例如,可以监控文件sha1以及md5的值,来监控文件是否发生变化。
网络:monit可以监控网络连接,支持TCP、UDP、Unix domain sockets以及HTTP、SMTP等。
定时脚本:monit可以用来定时测试程序和脚本,获取程序输出结果,进而判断是否成功或其他情况。
安装:
sudo apt-get install monit
编辑配置:
sudo vim/etc/monit/monitrc
启动、停止、重启:
sudo/etc/init.d/monit start
sudo/etc/init.d/monit stop
sudo/etc/init.d/monit restart
设置页面监控状态:
set httpd port 2812 and
allow 0.0.0.0/0.0.0.0
allow localhost
增加监控:
需要注意的是,这里需要添加start和stop,缺一个都是不行的
1.根据程序名称来监控
check process test with MATCHING test.py
start program="/home/yxd/test.py"
stop program="xxxxx"
2.根据pid监控
check process apache with pidfile/var/run/httpd.pid
start program="/etc/init.d/rcWebServer.sh start https"
stop program="/etc/init.d/rcWebServer.sh stop https"
if changed pid then aler
参考:用monit监控系统关键进程
supervisord
Supervisor是一个C/S系统,它可以在类unix操作系统让用户来监视和控制后台服务进程的数量。它是由python编写的,常用于进程异常退出的重启保护。
安装:
pip install supervisor
查看配置文件:
echo_supervisord_conf
从该命令的结果中,可以看到各个模块的配置信息。
创建配置文件:
echo_supervisord_conf>/etc/supervisord.conf
配置应用:
[program:test]
command=python/root/test_supervisor.py
process_name=%(program_name)s
stdout_logfile=/root/test.log
stderr_logfile=/root/test.log
保存,启动:
/usr/bin/supervisord-c/etc/supervisord.conf
linux中利用UnixBench进行性能测试
UnixBench是一款开源的测试 unix系统基本性能的工具,是比较通用的测试VPS性能的工具. UnixBench会执行一系列的测试,包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器.
UnixBench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。
最新版本UnixBench5.1.3,包含system和graphic测试,如果你需要测试graphic,则需要修改Makefile,不要注释掉”GRAPHIC_TESTS= defined”,同时需要系统提供x11perf命令gl_glibs库。
下面的脚本使用了最新版UnixBench5.1.3来测试,注释了关于graphic的测试项(大多数VPS都是没有显卡或者是集显,所以图像性能无需测试),运行10-30分钟后(根据CPU内核数量,运算时间不等)得出分数,越高越好。
测试方法:
wget
chmod+x unixbench.sh
./unixbench.sh
或直接把下面代码保存成unixbench.sh
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#===============================================================================================
# Description: Unixbench for Test
#===============================================================================================
# Create new soft download dir
mkdir-p/opt/unixbench;
cd/opt/unixbench;
# Download UnixBench5.1.3
if [-s UnixBench5.1.3.tgz ]; then
echo"UnixBench5.1.3.tgz [found]"
else
echo"UnixBench5.1.3.tgz not found!!!download now......"
if! wget-c
echo"Failed to download UnixBench5.1.3.tgz,please download it to"/opt/unixbench" directory manually and rerun the install script."
exit 1
fi
fi
tar-xzf UnixBench5.1.3.tgz;
cd UnixBench;
yum-y install gcc gcc-c autoconf gcc-c++ time perl-Time-HiRes
#Run unixbench
sed-i"s/GRAPHIC_TESTS= defined/#GRAPHIC_TESTS= defined/g"./Makefile
make;
./Run;
echo'';
echo'';
echo'';
echo"======= Script description and score comparison completed!=======";
echo'';
echo'';
echo'';
测试项目:
Dhrystone 2 using register variables
此项用于测试 string handling,因为没有浮点操作,所以深受软件和硬件设计(hardware and software design)、编译和链接(compiler and linker options)、代码优化(code optimazaton)、对内存的cache(cache memory)、等待状态(wait states)、整数数据类型(integer data types)的影响。
Double-Precision Whetstone
这一项测试浮点数操作的速度和效率。这一测试包括几个模块,每个模块都包括一组用于科学计算的操作。覆盖面很广的一系列 c函数:sin,cos,sqrt,exp,log被用于整数和浮点数的数学运算、数组访问、条件分支(conditional branch)和程序调用。此测试同时测试了整数和浮点数算术运算。
Execl Throughput
此测试考察每秒钟可以执行的 execl系统调用的次数。 execl系统调用是 exec函数族的一员。它和其他一些与之相似的命令一样是 execve()函数的前端。
File copy
测试从一个文件向另外一个文件传输数据的速率。每次测试使用不同大小的缓冲区。这一针对文件 read、write、copy操作的测试统计规定时间(默认是 10s)内的文件 read、write、copy操作次数。
Pipe Throughput
管道(pipe)是进程间交流的最简单方式,这里的 Pipe throughtput指的是一秒钟内一个进程可以向一个管道写 512字节数据然后再读回的次数。需要注意的是,pipe throughtput在实际编程中没有对应的真实存在。
Pipe-based Context Switching
这个测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数。这一点很向现实编程中的一些应用,这个测试程序首先创建一个子进程,再和这个子进程进行双向的管道传输。
Process Creation
测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。process creation的关注点是新进程进程控制块(process control block)的创建和内存分配,即一针见血地关注内存带宽。一般说来,这个测试被用于对操作系统进程创建这一系统调用的不同实现的比较。
System Call Overhead
测试进入和离开操作系统内核的代价,即一次系统调用的代价。它利用一个反复地调用 getpid函数的小程序达到此目的。
Shell Scripts
测试一秒钟内一个进程可以并发地开始一个 shell脚本的 n个拷贝的次数,n一般取值 1,2,4,8。(我在测试时取 1, 8)。这个脚本对一个数据文件进行一系列的变形操作(transformation)。
下面是我的一个512MB,2核,OpenVZ的VPS的跑分结果:
BYTE UNIX Benchmarks(Version 5.1.3)
System: vpn: GNU/Linux
OS: GNU/Linux-- 2.6.32-042stab076.8--#1 SMP Tue May 14 20:38:14 MSK 2013
Machine: i686(i386)
Language: en_US.utf8(charmap="UTF-8", collate="UTF-8")
CPU 0: Intel(R) Xeon(R) CPU L5520@ 2.27GHz(4533.6 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
CPU 1: Intel(R) Xeon(R) CPU L5520@ 2.27GHz(4533.6 bogomips)
Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
09:41:17 up 31 days, 9:21, 1 user, load average: 0.23, 0.05, 0.02; runlevel 3
------------------------------------------------------------------------
Benchmark Run: Mon Jul 29 2013 09:41:17- 10:09:29
2 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 17172222.3 lps (10.0 s, 7 samples)
Double-Precision Whetstone 2600.2 MWIPS(10.0 s, 7 samples)
Execl Throughput 4152.8 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 622759.5 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 172634.3 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1218236.9 KBps (30.0 s, 2 samples)
Pipe Throughput 1416230.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching 206509.4 lps (10.0 s, 7 samples)
Process Creation 8568.6 lps (30.0 s, 2 samples)
Shell Scripts(1 concurrent) 3145.9 lpm (60.0 s, 2 samples)
Shell Scripts(8 concurrent) 528.3 lpm (60.0 s, 2 samples)
System Call Overhead1528474.7 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 17172222.3 1471.5
Double-Precision Whetstone 55.0 2600.2 472.8
Execl Throughput 43.0 4152.8 965.8
File Copy 1024 bufsize 2000 maxblocks 3960.0 622759.5 1572.6
File Copy 256 bufsize 500 maxblocks 1655.0 172634.3 1043.1
File Copy 4096 bufsize 8000 maxblocks 5800.0 1218236.9 2100.4
Pipe Throughput 12440.0 1416230.5 1138.4
Pipe-based Context Switching 4000.0 206509.4 516.3
Process Creation 126.0 8568.6 680.0
Shell Scripts(1 concurrent) 42.4 3145.9 742.0
Shell Scripts(8 concurrent) 6.0 528.3 880.5
System Call Overhead 15000.0 1528474.7 1019.0
========
System Benchmarks Index Score 960.4
------------------------------------------------------------------------
Benchmark Run: Mon Jul 29 2013 10:09:29- 10:39:56
2 CPUs in system; running 2 parallel copies of tests
Dhrystone 2 using register variables 16851634.7 lps (10.0 s, 7 samples)
Double-Precision Whetstone 5182.9 MWIPS(10.0 s, 7 samples)
Execl Throughput 4101.9 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 635244.9 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 174430.2 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1219982.0 KBps (30.0 s, 2 samples)
Pipe Throughput 1387297.9 lps (10.0 s, 7 samples)
Pipe-based Context Switching 196296.1 lps (10.0 s, 7 samples)
Process Creation 10889.9 lps (30.0 s, 2 samples)
Shell Scripts(1 concurrent) 4073.7 lpm (60.0 s, 2 samples)
Shell Scripts(8 concurrent) 550.5 lpm (60.2 s, 2 samples)
System Call Overhead1538517.4 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 16851634.7 1444.0
Double-Precision Whetstone 55.0 5182.9 942.3
Execl Throughput 43.0 4101.9 953.9
File Copy 1024 bufsize 2000 maxblocks 3960.0 635244.9 1604.2
File Copy 256 bufsize 500 maxblocks 1655.0 174430.2 1054.0
File Copy 4096 bufsize 8000 maxblocks 5800.0 1219982.0 2103.4
Pipe Throughput 12440.0 1387297.9 1115.2
Pipe-based Context Switching 4000.0 196296.1 490.7
Process Creation 126.0 10889.9 864.3
Shell Scripts(1 concurrent) 42.4 4073.7 960.8
Shell Scripts(8 concurrent) 6.0 550.5 917.5
System Call Overhead 15000.0 1538517.4 1025.7
========
System Benchmarks Index Score
在Linux中使用unixbench来测试测试系统性能
unixbench是什么?
unixbench是一套unix系统基准测试套件。unixbench的设计目标是为类unix系统提供一套基本的指标,所以有许多项目测试系统各方面的性能。各项的测试有得分,然后有一个综合的得分,这样可以很方便的通过分数去比较。
unixbench也包含一些非常简单的2D和3D图形测试。
unixbench也支持多CPU系统的测试,默认的行为是测试两次,第一次是一个进程的测试,第二次是N份测试,N等于CPU个数。这样的设计是为了以下目标:
测试系统的单任务性能
测试系统的多任务性能
测试系统并行处理的能力
unixbench一个基于系统的基准测试工具,不单纯是CPU内存或者磁盘测试工具。测试结果不仅仅取决于硬件,也取决于系统、开发库、甚至是编译器。
测试项目
Dhrystone测试
测试聚焦在字符串处理,没有浮点运算操作。这个测试用于测试链接器编译、代码优化、内存缓存、等待状态、整数数据类型等,硬件和软件设计都会非常大的影响测试结果。
Whetstone测试
这项测试项目用于测试浮点运算效率和速度。这项测试项目包含若干个科学计算的典型性能模块,包含大量的C语言函数,sin cos sqrt exp和日志以及使用整数和浮点的数学操作。包含数组访问、条件分支和过程调用。
Execl Throughput(execl吞吐,这里的execl是类unix系统非常重要的函数,非办公软件的execl)测试
这项测试测试每秒execl函数调用次数。execl是 exec函数家族的一部分,使用新的图形处理代替当前的图形处理。有许多命令和前端的execve()函数命令非常相似。
File Copy测试
这项测试衡量文件数据从一个文件被传输到另外一个,使用大量的缓存。包括文件的读、写、复制测试,测试指标是一定时间内(默认是10秒)被重写、读、复制的字符数量。
Pipe Throughput(管道吞吐)测试
pipe是简单的进程之间的通讯。管道吞吐测试是测试在一秒钟一个进程写512比特到一个管道中并且读回来的次
数。管道吞吐测试和实际编程有差距。
Pipe-based Context Switching(基于管道的上下文交互)测试
这项测试衡量两个进程通过管道交换和整数倍的增加吞吐的次数。基于管道的上下文切换和真实程序很类似。测试程序产生一个双向管道通讯的子线程。
Process Creation(进程创建)测试
这项测试衡量一个进程能产生子线程并且立即退出的次数。新进程真的创建进程阻塞和内存占用,所以测试程序直接使用内存带宽。这项测试用于典型的比较大量的操作系统进程创建操作。
Shell Scripts测试
shell脚本测试用于衡量在一分钟内,一个进程可以启动并停止shell脚本的次数,通常会测试1,2, 3, 4, 8个shell脚本的共同拷贝,shell脚本是一套转化数据文件的脚本。
System Call Overhead(系统调用消耗)测试
这项测试衡量进入和离开系统内核的消耗,例如,系统调用的消耗。程序简单重复的执行getpid调用(返回调用的进程id)。消耗的指标是调用进入和离开内核的执行时间。
Graphical Tests(图形)测试
由"ubgears"程序组成,测试非常粗的2D和3D图形性能,尤其是3D测试非常有限。测试结果和硬件,系统合适的驱动关系很大。
unixbench安装
代码如下:
wget
tar xvfz unixbench-5.1.2.tar.gz
cd unixbench-5.1.2
如果不需要测试图形,注释掉Makefile文件的这一行
代码如下:
#GRAPHIC_TESTS= defined
运行
代码如下:
./Run
测试结果
代码如下:
##########################
##################
############################
#################
##################
############################
Version 5.1.2 Based on the Byte Magazine Unix Benchmark
Multi-CPU version Version 5 revisions by Ian Smith,
Sunnyvale, CA, USA
December 22, 2007 johantheghost at yahoo period com
1 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10
1 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10
1 x Execl Throughput 1 2 3
1 x File Copy 1024 bufsize 2000 maxblocks 1 2 3
1 x File Copy 256 bufsize 500 maxblocks 1 2 3
1 x File Copy 4096 bufsize 8000 maxblocks 1 2 3
1 x Pipe Throughput 1 2 3 4 5 6 7 8 9 10
1 x Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10
1 x Process Creation 1 2 3
1 x System Call Overhead 1 2 3 4 5 6 7 8 9 10
1 x Shell Scripts(1 concurrent) 1 2 3
1 x Shell Scripts(8 concurrent) 1 2 3
========================================================================
BYTE UNIX Benchmarks(Version 5.1.2)
System: localhost.localdomain: GNU/Linux
OS: GNU/Linux-- 3.10.0-123.8.1.el7.x86_64--#1 SMP Mon Sep 22 19:06:58 UTC 2014
Machine: x86_64(x86_64)
Language: en_US.utf8(charmap="UTF-8", collate="UTF-8")
CPU 0: Intel(R) Xeon(R) CPU X5650@ 2.67GHz(5331.8 bogomips)
x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
08:24:54 up 1 day, 2:11, 1 user, load average: 0.00, 0.01, 0.05; runlevel 3
------------------------------------------------------------------------
Benchmark Run: Wed Nov 12 2014 08:24:54- 08:52:53
1 CPU in system; running 1 parallel copy of tests
Dhrystone 2 using register variables 28890881.0 lps(10.0 s, 7 samples)
Double-Precision Whetstone 3880.4 MWIPS(9.0 s, 7 samples)
Execl Throughput 4146.3 lps(30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 1051084.3 KBps(30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 286552.2 KBps(30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 2142638.4 KBps(30.0 s, 2 samples)
Pipe Throughput 1726807.0 lps(10.0 s, 7 samples)
Pipe-based Context Switching 322865.5 lps(10.0 s, 7 samples)
Process Creation 13662.4 lps(30.0 s, 2 samples)
Shell Scripts(1 concurrent) 5955.4 lpm(60.0 s, 2 samples)
Shell Scripts(8 concurrent) 713.1 lpm(60.0 s, 2 samples)
System Call Overhead 2138318.1 lps(10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 28890881.0 2475.7
Double-Precision Whetstone 55.0 3880.4 705.5
Execl Throughput 43.0 4146.3 964.2
File Copy 1024 bufsize 2000 maxblocks 3960.0 1051084.3 2654.3
File Copy 256 bufsize 500 maxblocks 1655.0 286552.2 1731.4
File Copy 4096 bufsize 8000 maxblocks 5800.0 2142638.4 3694.2
Pipe Throughput 12440.0 1726807.0 1388.1
Pipe-based Context Switching 4000.0 322865.5 807.2
Process Creation 126.0 13662.4 1084.3
Shell Scripts(1 concurrent) 42.4 5955.4 1404.6
Shell Scripts(8 concurrent) 6.0 713.1 1188.4
System Call Overhead 15000.0 2138318.1 1425.5
========
System Benchmarks Index Score 1444.7