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)

ps aux grep java_linux命令ps-aux监控java进程相关推荐

  1. ps与grep组合命令使用

    管道命令 我们在做运维的时候,经常会使用这个命令ps -ef | grep nginx. ps -ef 表示显示所有进程的消息. | 是管道命令.通常需要借助管道命令"|"多个命令 ...

  2. java jmx 监控_利用VisualVm和JMX远程监控Java进程

    在前一篇文章里我们发现通过jstatd + VisualVm的方式,不能获得Java进程的CPU.线程.MBean信息,这时JMX就要登场了. 自Java 6开始,Java程序启动时都会在JVM内部启 ...

  3. 第三方工具监控java进程_前9个免费的Java进程监视工具以及如何选择一种

    第三方工具监控java进程 这样就可以运行Java代码了. 也许它甚至可以在生产服务器上运行. 当您做好工作后,我们得到了好消息和令人讨厌的消息. 令人讨厌的消息是,现在开始调试. 就是进行调试和应用 ...

  4. java 堆栈信息_每天学习一个命令:jstack 打印 Java 进程堆栈信息

    Jstack 用于打印出给定的 java 进程 ID 或 core file 或远程调试服务的 Java 堆栈信息. 这里需要注意的是 Java 8 引入了 Java Mission Control, ...

  5. linux 多个java_linux 同时出现两个java进程,新手~ 请详细说明,这个是怎么回事。 我就装了一个jdk...

    首先Tomcat是用java开发的,所以它的开始和停止的命令都是用java来执行的. 你执行一下ps -ef |grep tomcat如果输出: sun 5144 1 0 10:21 pts/1 00 ...

  6. linux shell监本监控java进程自动重启

    监控shell脚本:monitor.sh 注意:脚本中"source /etc/profile"是因为crontab执行脚本无法取到环境变量,导致进程启动不起来,所以这个必须加上 ...

  7. jmx监控java进程_用VisualVM远程监控Java进程

    1. 配置并启动jstatd 在用jvisualvm监控远程机器前,需要在对端启动一个RMI服务器. 1.1 创建jstatd权限配置文件 jstatd.all.policy [plain]grant ...

  8. linux xxx命令,linux命令ps aux|grep xxx详解

    对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令. 使用该命令 可以确定有哪些进程正在运 ...

  9. linux下的ps aux | grep -c php-fpm 与netstat -napo |grep php-fpm | wc -l 命令

    一.使用背景 查询某个程序的进程数,以及输出该程序通过TCP,UDP,Unix Socket等方式建立的连接数.我这边是想获取到php-fpm程序的进程数. 二.获取php-fpm的进程数 ps au ...

最新文章

  1. android省市二级联动的实现
  2. delete hive_「挑战30万年薪」 Hive语句详解之从SQL到HQL的应转习惯
  3. java实现map和object互转
  4. this--学习笔记
  5. golang 监听服务的信号,实现平滑启动,linux信号说明
  6. php上传图片文件常用的几个方法
  7. SCOM 2007 R2监控系统安装部署(一)SCOM简介及安装SQL Server 2008 R2 数据库
  8. java面试题框架知识点总结
  9. vue+elementui 字体改用思源黑体
  10. windows环境下,搭建RTSP视频推流服务器
  11. c语言网络时间校准,c语言如何建时间校准来和电脑一致?
  12. MYSQL 面试常见问题汇总
  13. Python定时爬虫脚本
  14. 新手必看学习JAVA的N个理由,看阿…
  15. NAND Flash硬件读写原理
  16. linux androidx86双系统,实用教程:PC实现Windows/原生安卓双系统
  17. systeminfo卡死一例分析
  18. 心血漏洞(OpenSSL升级)
  19. 2021李宏毅机器学习笔记--12 attack ML models
  20. linux kernle 同步原语

热门文章

  1. 使用 bat 文件管理计算机服务
  2. springboot使用mongodb
  3. JavaScript this 关键字
  4. JavaScript 所有数据类型
  5. 配置svn 报错E200002解决办法
  6. mongodb 高级查询 统计记录条数
  7. Win7的市场份额终于超过XP了,以后可以逐渐考虑放弃ie6/7了!
  8. spring (四) SpringMVC的请求和响应
  9. 【C语言进阶深度学习记录】三十九 C语言中的可变参数(参数可变的函数)
  10. 温习了一下java线程状态方面的知识总结一