龙空技术网

7. 玩转树莓派——性能测试

iMinusMinus 178

前言:

当前大家对“java的library”大体比较看重,看官们都想要知道一些“java的library”的相关资讯。那么小编在网上汇集了一些有关“java的library””的相关知识,希望大家能喜欢,看官们一起来学习一下吧!

JMeter监控服务器性能被压测服务器端数据采集ServerAgent

wget  unzip ServerAgent-2.2.1.zip ./startAgent.sh

树莓派直接执行会报错:org.hyperic.sigar.SigarException: no libsigar-arm-linux.so in java.library.path 由于ServerAgent本身带的libsigar动态链接库没有ARM版本,需要自己编译。

sigar

wget  tar -zxvf hyperic-sigar-1.6.4-src.tar.gz cd hyperic-sigar-1.6.4-src/bindings/java # 需ANT已安装 $ANT_HOME/bin/ant

第一次构建失败,会提示"hyperic-sigar-1.6.4-src/src/os/linux/linux_sigar.c:1148:22: error: called object ‘major’ is not a function or function pointer"。

# major and minor was declared in /usr/include/arm-linux-gnueabihf/sys/sysmacros.h sed -i "s|#include <sys/stat.h>|#include <sys/stat.h>\n#include <sys/sysmacros.h>" hyperic-sigar-1.6.4-src/src/os/linux/linux_sigar.c

构建成功,将生成的文件复制到ServerAgent的lib目录下。再启动,依然报错:libsigar-arm-linux.so: undefined symbol: sigar_skip_token

如果有注意构建过程的日志,就会发现编译时已经有对头文件的内联函数只有声名没有定义的警告。

# inline function should declared and defined in same header file

# 将hyperic-sigar-1.6.4-src/src/sigar_util.c里面的三个函数定义(sigar_skip_multiple_token, sigar_skip_token, sigar_skip_line)移动到hyperic-sigar-1.6.4-src/include/sigar_util.h

# 重新构建,并将生成的动态链接库复制到ServerAgent的lib目录下。或者修改startAgent.sh,通过选项"-Djava.library.path"指定动态链接库位置。

启动ServerAgent,控制台打印出端口号为4444,无错误日志,说明启动成功。

压测工具端

要收集服务器CPU、内存、磁盘等情况,JMeter客户端要安装插件。

插件可以直接下载perfmon,也通过先安装管理插件,再从管理插件列表选择安装性能数据接收、展示插件。

我们以先下载管理插件为例。

wget  -O $JMETER_HOME/lib/ext/jmeter-plugins-manager-1.3.jar$JMETER_HOME/bin/jmeter

此时启动的JMeter比之前再界面会在"Options"菜单下多出一个"Plugins Manager",打开"Plugins Manager",将tab页切换到"Avaiable Plugins",选择PerfMon,然后选择"Apply Changes and Restart JMeter。

重启后打开JMeter GUI,即可发现现在可添加的Listener多出了一个"jp@gc - PerfMon Metrics Collector"。

添加该Listener,需要设置监控的服务器地址、端口及监控项。地址填性能测试的应用服务器所在地址,端口需要和应用服务器开启的数据采集报告端口一致,监控项视具体情形定。

标签: #java的library