ps aux grep java_linux命令ps-aux监控java进程

linux下用ps -aux可以监控java的进程情况。

linux根据内核的不同对每个进程分配的最大使用内存不同,如果是32位机器,cpu最大的寻址空间是2的32次方,4G,但内核分配给每个进程最大的内存肯定是小于4G,经过重新编译的内核分配给java进程的最大内存是2G,如果tomcat中的catalina.sh中的java-opts Xms1024m -Xmx1600,那么你就要小心了,根据tomcat指南中介绍,tomcat的请求和响应是通过线程池这种异步通信机制来完成的,而每个线程除了JVM会给它分配堆栈外,还要占用操作系统的一些内存资源,当然没有固定大小,原因是线程可以共享进程的内存资源。如果jvm是1.6G,线程数达到一定的数量,即访问量不断增大的时候,线程一共占用操作系统的内存资源超过400M,那么一个java进程就很可能操作2G的限制,导致无法正常提供服务。

其实,java进程的内存的实际使用达不到2G,这里指的是java进程的虚拟内存。我们可以用ps -aux很好的观察到,VSZ字段就是虚拟内存的使用量,指的是将整个进程一次装入到内存里所需要的内存大小,RSS字段是进程实际使用内存的大小。根据刚才的分析,对VSZ字段的监控可以很好的起到报警预防作用。当然为了保证服务的稳定与快捷,还是应该合理的调整java-opts 的参数。

关于JVM的内存管理方面,可以参考以下文章:

在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。

错误显示如下:

[root@ngtsl68 bin]# java -Xmx2700M -version

Error occurred during initialization of VM

Could not reserve enough space for object heap

Could not create the Java virtual machine.

正确显示如下:

[root@ngtsl68 bin]# java -Xmx2600M -version

java version "1.6.0_18"

Java(TM) SE Runtime Environment (build 1.6.0_18-b07)

Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值