jmc配置监控Java程序,启动优化

jmc

jmc(Java mission control),用于监控Java应用程序的内存、cpu占用率、gc、线程等。

如何配置

Java程序启动参数中添加配置信息;

java -jar -Xms2g -Xmx4g -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=xx.xx.xx -Dcom.sun.management.jmxremote.port=6666 -Dcom.sun.management.jmxremote.rmi.port=6666 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.managementote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

Djava.rmi.server.hostname=xx.xx.xx是我们远程连接的主机,即Java程序部署的机器公网ip
Dcom.sun.management.jmxremote.port=6666为jmx监听的端口
Dcom.sun.management.jmxremote.rmi.port=6666为jmx对外暴露的端口,使用jmc工具连接会使用到这个配置。
默认jmx会随机分配两个tcp端口,用于外部连接,但是线上机器对外暴露的端口都需进行配置,所以使用Dcom.sun.management.jmxremote.rmi.port=6666指定;
样子如图

java -jar启动参数优化

-server 提高吞吐量

-client 提高响应时间

-Xms 堆内存的最小大小,默认为物理内存的1/64

-Xmx 堆内存的最大大小,默认为物理内存的1/4

-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn

-Xss 设置每个线程可使用的内存大小,即栈的大小。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成。线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会出现内存溢出的错误。

例子:nohup java -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -jar

java -jar 搭配linux 监控自动启脚本
#!/bin/sh
 
#切换到目录
date=`date`
 
#查询端口占用
lsof -i:8001
 
# $? -ne 0 不存在 $? -eq 0存在 
if [ $? -ne 0 ]
then
    java -jar -Xms64m -Xmx512m  -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MaxNewSize=256m  -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=182.168.3.6 -Dcom.sun.management.jmxremote.port=6666 -Dcom.sun.management.jmxremote.rmi.port=6666 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.managementote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false Single-Minio-Start-0.0.1-SNAPSHOT.jar > log/restart-minio.log 2>&1 &
    echo $date  ":=============== restart ===============" >> log/monitoring.log
else
    echo $date  ":=============== is normal ==============" >> log/monitoring.log
fi

if [ `du -b log/monitoring.log|awk '{print $1}'` -gt 10485760 ]
then
 cat /dev/null > log/monitoring.log
fi

#   * * * * *  cd /extdisk01/software/minIO/monitor  && bash Restart_Ubuntu_Minio.sh
#  vim   Restart_Ubuntu_Minio.sh    

参考:
https://www.jianshu.com/p/2896d2ae82b2
https://blog.csdn.net/yunfeng482/article/details/89384912

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值