[转]通过loadRunner监控Linux的资源状况
我们在使用LR进行性能测试的时候,经常有需要监控OS的资源使用情况的需求,对于windows系统,只隔工作
进行起来很方便,直接在LR的资源监控窗口中添加需要被监控的机器名或者IP即可,但对于linux/unix系统要稍微
复杂一些,本文简单介绍一下如何在LR中监控Linux/Unix系统的资源使用情况。
Linux对于linux系统,想要通过LR监控Linux的德系统资源使用情况,要运行rstatd服务,如果OS没有安装rstatd,则需要进行安装。rstatd安装步骤如下:获得rstatd的安装介质(rstatd.tar.gz),可以从redhat的安装CD中获得,或者从网站上下载(给出一个下载地址,sourceforge的:http://heanet.dl.dourceforge.net/sourceforge/rstatd )。将rstatd.tar.gz拷贝到linux系统中,解压,赋予可执行权限,进入rpc.rstatd目录,一次执行如下命令:#./configrue#make#make install结束后,运行./rpc.rstatd命令,启动服务,这个时候,你就可以在LR中监控Linux资源了。
Unix对于Unix系统,比如Solaris,AIX或者HP UX等,他们的配置过程比较简单--在inetd.conf(在/etc目录下)文件中去掉rstatd前面的注释,然后启动rstatd服务即可。
附:rstatd详解
1.前期准备:1,把rstatd文件解压到要监控的机器上。2,打开终端,定位到rstatd文件夹下:查看文件夹中的内容如下:
[root@localhost rpc.rstatd]# ls aclocal.m4 COPYING Makefile.am README rstat_proc.c rup.1 config.h.in CVS Makefile.in rpc.rstatd.8 rstat.x rup.c configure INSTALL missing rstatd.8 rsysinfo.1 stamp-h.in configure.in install-sh mkinstalldirs rstat_main.c rsysinfo.c 2.执行如下步骤: 2.1.执行:./configure 命令 [root@localhost rpc.rstatd]# ./configure creating cache ./config.cache checking for a BSD compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking whether make sets ${MAKE}... yes checking for working aclocal... found checking for working autoconf... found checking for working automake... found checking for working autoheader... found checking for working makeinfo... found checking for gawk... gawk checking for gcc... gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking for a BSD compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets ${MAKE}... (cached) yes checking how to run the C preprocessor... gcc -E checking for sys/ioctl.h... yes checking for syslog.h... yes checking whether time.h and sys/time.h may both be included... yes checking whether gcc needs -traditional... no checking for ANSI C header files... yes checking return type of signal handlers... void updating cache ./config.cache creating ./config.status kcreating Makefile creating config.h2.2.执行:make 命令。
[root@localhost rpc.rstatd]# make rm -f rstat.h rpcgen -h -o rstat.h rstat.x gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c rup.c rup.c: In function ' ointopoint_v5 ' : rup.c:256: warning: passing argument 6 of 'c lient->cl_ops->cl_call ' ?from incompatible pointer type rup.c: In function ' ointopoint_v3 ' ? rup.c:292: warning: passing argument 6 of 'c lient->cl_ops->cl_call ' ?from incompatible pointer type rup.c: In function 'm ain ' ? rup.c:317: warning: return type of 'm ain ' ?is not 'i nt ' ?rm -f rstat_xdr.c rpcgen -c -o rstat_xdr.c rstat.x gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c rstat_xdr.c rm -f rstat_clnt.c rpcgen -l -o rstat_clnt.c rstat.x gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c rstat_clnt.c gcc -g -O2 -o rup rup.o rstat_xdr.o rstat_clnt.o gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c rsysinfo.c rsysinfo.c: In function ' ointopoint_v3 ' ? rsysinfo.c:136: warning: passing argument 6 of 'c lient->cl_ops->cl_call ' ?from incompatible pointer type rsysinfo.c: In function 'm ain ' ? rsysinfo.c:160: warning: return type of 'm ain ' ?is not 'i nt ' ?gcc -g -O2 -o rsysinfo rsysinfo.o rstat_xdr.o rstat_clnt.o rm -f rstat_svc.c rpcgen -m -o rstat_svc.c rstat.x gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c rstat_svc.c gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c rstat_proc.c gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c rstat_main.c rstat_main.c: In function 'm ain ' ? rstat_main.c:82: warning: return type of 'm ain ' ?is not 'i nt ' ?gcc -g -O2 -o rpc.rstatd rstat_svc.o rstat_xdr.o rstat_proc.o rstat_main.o 这之后可以执行 :make check检查一下。2.3.执行:make install 命令。
[root@localhost rpc.rstatd]# make install make[1]: Entering directory `/opt/rpc.rstatd' /bin/sh ./mkinstalldirs /usr/local/bin /usr/bin/install -c rup /usr/local/bin/rup /usr/bin/install -c rsysinfo /usr/local/bin/rsysinfo /bin/sh ./mkinstalldirs /usr/local/sbin /usr/bin/install -c rpc.rstatd /usr/local/sbin/rpc.rstatd make[1]: Nothing to be done for `install-data-am'. make[1]: Leaving directory `/opt/rpc.rstatd'
2.4.执行:./rpc.rstatd 命令。启动rpc服务。注:无回显为成功。
[root@localhost rpc.rstatd]# ./rpc.rstatd 2.5.执行:rpcinfo -p 命令。检查rpc服务的状态. [root@localhost rpc.rstatd]# rpcinfo -p program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 797 status 100024 1 tcp 800 status 100001 5 udp 900 rstatd 100001 3 udp 900 rstatd 100001 2 udp 900 rstatd 100001 1 udp 900 rstatd [root@localhost rpc.rstatd]# 3. 可能会出现的错误: 1,若RPC服务没有成功启动。 2,若目标主机上开启了防火墙,阻挡了RPC服务。 在LR中添加时可能会出现如下错误: Monitor name :UNIX Resources. Cannot initialize the monitoring on 10.1.200.65. Error while creating the RPC client. Ensure that the machine can be connected and that it runs the rstat daemon (use rpcinfo utility for this verification). Detailed error: RPC: Failed to create RPC client. RPC-TCP: Failed to establish RPC server address. RPC-TCP: RPC Server <100001, 3, 17> is not registered on host '10.1.200.65'. (entry point: CFactory::Initialize). [MsgId: MMSG-47190] Monitor name :UNIX Resources. Internal rpc error (error code:2). Machine: 10.1.200.65. Hint: Check that RPC on this machine is up and running. Check that rstat daemon on this machine is up and running (use rpcinfo utility for this verification). Details: RPC: RPC call failed. RPC-TCP: recv()/recvfrom() failed. RPC-TCP: Timeout reached. (entry point: Factory::CollectData). [MsgId: MMSG-47197] 至此完毕。
Technorati : linux, loadrunner, rstatd