[转]通过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.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.h
|
2.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
|
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
|
[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]#
|
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]
|