漫游测试之性能测试(4.5.性能测试工具中的监控方法)

4.5.1Loadrunner的监控

Loadrunner 的windows监控,在开启监控之前,需要在远程机器中启动以下2个服务。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

并同时需要注意一下安全选项的设置。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

在Loadrunner Controller中填入要监控的IP,选择相对应的性能计算数器即可。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

删除默认的,只选择自己要用的性能计数器。性能计数器不易过多,因为性能计数器其本身是需要通过网络传输回来的,过多会占有一点带宽,并且也不易于抓重点。建议,当出现某方面瓶颈问题时,根据瓶颈方面细化监控的性能计数器。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

监控windows大多数的时候,添加以下性能计算器即可。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

添加性能数器后,系统监控就开始了。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

Loadrunner利用Rstatd监控linux

 

下载rstatd后解压:tar -zxvf rpc.rstatd-4.0.1.tar.gz。

./configure

Make&&make install

可能会遇到以下问题:

[email protected]:/usr/rpc.rstatd-4.0.1# rpc.rstatd

Cannot register service: RPC: Unable to receive; errno = Connection refused

 

安装apt-get install nfs-kernel-server

apt-get install portmap

 

关闭防火墙

/etc/init.d/iptables stop

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

然后返回Loadrunner同windows一样进行添加性能计数器

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

但是出现以下问题:

Monitor name :UNIX Resources. Internal rpc error (error code:2). Machine: 10.170.9.189. 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]

 

根据以下的资料的显示,Rstatd的方式Loadrunner本身是有问题,推荐使用SiteScope的方式进行监控。

https://www.cnblogs.com/miniren/p/7865219.html

https://*.com/questions/21156371/loadrunner-monitoring-linux-counters-gives-rpc-error

而SiteScope是收费软件,故推荐linux的使用vmstat即可

 

4.5.2Jmeter的监控

Jmeter Windows和Linux下的方法相同。

下载图示插件后丢入.\lib\ext目录中,重启Jmeter即可。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

选择[email protected] Metrics Collector进行服务器资源监控。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

也可以下载plugins-manager.jar直接进行插件管理的方式进行下载。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

更新插件。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

到以下地址下载ServerAgent-2.2.1,在要监控的机器上启动即可。

https://jmeter-plugins.org/wiki/PerfMonAgent/

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

添加IP和性能计数器进行选择,即可(选择哪些性能计数器,可以参数Loadrunner中的对应的性能计数器)。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

报这个错误,查询后说是jmeter版本过高,插件不支持,需要将jmeter降级到3.1版本。

java.lang.NoSuchMethodError:org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

更新jmeter和插件后重新运行即可。注意,选择的性能计数器要正确,否则可能报以下错误。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

正确的配置:

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

4.5.3在linux中批量进行vmstat的监控

调用Python的paramiko模块,可以对服务端进行同时命令执行,注意vmstat执行后是后台执行的,结束监控时需要killall。

主要脚本代码如下:

import paramiko

import threading

def sshCommand(ip, port, username, pwd, commands):

    try:

        client = paramiko.SSHClient()

        client.load_system_host_keys()

        client.set_missing_host_key_policy(paramiko.AutoAddPolicy)

 

        client.connect(ip, 22, username, pwd, timeout=30, allow_agent=False, look_for_keys=False)

        # client.connect(ip, 22, username, pwd, timeout=30, allow_agent=False)

        for cmd in commands:

            stdin, stdout, stderr = client.exec_command(cmd)

            # stdin.write('Y')

            out = stdout.readlines()

            for outprint in out:

                print '%s' % (ip)

                print outprint

                print '------------------------------------------------\n'

 

    except Exception, e:

        print('%s:%s Error\n,reason=%s' % (ip, port, e))

    finally:

        client.close()

 

 

if __name__ == "__main__":

 

    orderList = [{'ip': '10.xxx.8.xxxx', 'port': 22, 'username': 'root', 'password': 'xxxxxx', 'cmd': ['vmstat -t 5 > /usr/test.txt ']},{'ip': '10.xxx.138.xxxx', 'port': 22, 'username': 'root', 'password': 'xxxxxx','cmd': ['vmstat -t 5 > /usr/test.txt ']}]

 

#监控结束时,kill掉进程,让监控停止

#orderKill = [{'ip': '10.xxx.8.xxxx', 'port': 22, 'username': 'root', 'password': 'xxxxxx', 'cmd': ['killall vmstat']},{'ip': '10.xxx.138.xxxx', 'port': 22, 'username': 'root', 'password': 'xxxxxx','cmd': ['killall vmstat']}]

 

    

    for order in orderList:

ssh_connet = threading.Thread(target=sshCommand,

args=[order['ip'], order['port'], order['username'], order['password'],

order['cmd']])

ssh_connet.start()

注意,vmstat生成的文本格式,可以在Excel中导入,生成Excel的方式,产生数据。

漫游测试之性能测试(4.5.性能测试工具中的监控方法)

vmstat监控输出到文件中的数据,每20行后,有新的标题行在导入到Excel中前处理时需要删除这些标题行,可以利用sed命令删除。

sed -e '/proce/,/r/d' vmstat.txt > movmstat.txt

Vmstat数据格式的处理可以参考这篇文章:

http://blog.****.net/aovenus/article/details/6167581