如何jvm监控linux服务器
如何配置visualvm监控
visualvm支持在Linux和windows上启用图形界面监控jvm的资源,但是如何可以使我们在windows上监控到远程linux服务器资源,这还需要做一些配置,此文是在原文基础上做了更改的,希望对大家能有所帮助。
(1)首先要修改JDK中JMX服务的配置文件,以获得相应的权限:
进入$JAVA_HOME所在的根目录的/jre/lib/management子目录下,
a 将jmxremotepasswordtemplate文件复制为jmxremotepassword
b 调整jmxremoteaccess和jmxremotepassword的权限为只读写,可以使用如下命令
chmod 600 jmxremoteaccess jmxremotepassword
c 打开jmxremotepassword文件,去掉
# monitorRole QED
# controlRole R&D
这两行前面的注释符号
(2)修改envsh
打开envsh文件,并在JVM的启动配置中添加如下信息:
JAVA_OPTS="-Dcomsunmanagementjmxremoteport=1099 -Dcomsunmanagementjmxremotessl=false -Dcomsunmanagementjmxremoteauthenticate=false -Djavarmiserverhostname=1020150218 其他配置”
这几个配置的说明如下:
-Dcomsunmanagementjmxremoteport:这个是配置远程connection的端口号的,要确定这个端口没有被占用
-Dcomsunmanagementjmxremotessl=false -Dcomsunmanagementjmxremoteauthenticate=false:这两个是固定配置,是JMX的远程服务权限的
-Djavarmiserverhostname:这个是配置server的IP的,要使用server的IP最好在机器上先用hostname –i看一下IP是不是机器本身的IP,如果是127001的话要改一下,否则远程的时候连不上,目前我们的server上我已经都改好了
(3)Windows客户端配置
JDK 16版本自带visualvm,只需要进到bin目录下启动即可
启动后页面比较简洁,配置也很简单:
a 点击左侧菜单的add Remote host,输入server的IP,然后再advanced settings里配置端口(注意这个端口要和server上的端口一致)
b 右击刚才配置的IP,选择JMX connection方式,再次输入端口,就可以监视到JVM资源了
使用dstat工具,一般Linux发行版自带,可以监控统计CPU使用最高的进程
例如
dstat --top-cpu 2
每2秒显示一次CPU使用最多的进程
把这个重定向到一个文件就能事后分析了
dstat功能很多,可以查下资料
vmstat 1,文本显示,1代表1s刷新一次
想要曲线的话,把vmstat的结果保存到文本里,然后切到excel下绘图
如果不需要那么短的周期,可用cacti,通过snmp调用,5分钟一个周期。
公司使用的服务器是linux的操作系统,之前很长一段时间监控系统参数都是使用top等linux命令来监控
这样做的好处
1可以非常容易的监控的系统的状态
2实时性非常强
不足之处
1不能和loadrunner其他的图表进行合并,造成了很难在事后分析出系统的问题
2监控系统的数据无法直接保存,供下次参考使用
最近终于说服了公司的sa,让我能在性能测试环境做必要的设置,因为之前sa一直认为我要做的事情会对系统的安全性造成影响。
现在我来介绍一下如何在linux设置来完成loadrunner对服务器性能的监控
A验证服务器上是否配置了rstatd守护程序
1 rup 127001
2find / -name rpcrstatd
3/usr/sbin/rpcinfo -p
B下载rpcrstatd
http://sourceforgenet/projects/rstatd
C打开端口映射
1执行 setup命令
这时会弹出一个类似图形化的界面,光标移动到System services,回车。在新界面中找到portmap项,空格选中。然后选择OK,再选择quit。
2/etc/rcd/initd/portmap start //启动portmap
D编译安装rstatd
/configure
make all-am
make install-am
E起rstatd服务
/usr/local/sbin/rpcrstatd
F安装xinetd服务
yum install xinetdi386
/sbin/service xinetd restart
好了,liunx中的设置基本上都已经设置完了,接下来只要到loadrunner中加上对相应服务的监控就可以了
对于远程监控Linux主机系统CPU,内存使用情况,以前也使用了top等命令,但是最后还是觉得使用vmstat比较好
运行top命令获得系统CPU使用情况有两个缺点,
第一运行top命令,执行的shell语句相对复杂
用top命令获得CPU使用情况的shell语句
top -b -n 2 | grep Cpu |sed 1d | awk '{print $5}' | cut -f 1 -d ""
第二:有时候系统峰值时间很短暂,容易造成误判
注意:运行本例子,你还需要下载第三方ganymed-ssh2-build251beta1jar,改软件主要用于通过ssh远程登录被监控主机
ITjob上。看。的
0条评论