Linux查看Java进程PID、端口号和内存占用脚本 您所在的位置:网站首页 linux查看java程序进程端口 Linux查看Java进程PID、端口号和内存占用脚本

Linux查看Java进程PID、端口号和内存占用脚本

2024-07-02 08:43| 来源: 网络整理| 查看: 265

Linux查看Java进程PID、端口号和内存占用脚本

Linux查看Java进程PID、端口号和内存占用脚本 背景查询PID查询占用端口查询内存占用百分比脚本使用

背景

正常情况下,一个jps -ml就可以查看机器上有多少Java进程以及它们的PID,如果还要看端口号,甚至内存占用,就还要配合netstat以及ps等查询,如果直接使用一个命令就能查出所有信息多好呀,那就试试吧。

查询PID

Java自带的jps就很好用,不多说。

查询占用端口

使用netstat工具,根据Java进程的PID查询这个PID占用的端口,一定是状态为LISTEN,并且PID/NAME = PID/java的记录。这在一台机器启多个Java Web项目的时候很有用,比如测试环境一台机器上的多个spring-boot项目,没有网关的情况下,经常搞不清到底访问哪个端口。

查询内存占用百分比

感觉机器很卡,free一下发现内存没了,看看哪个java占用的内存偏高,可以使用ps -e -o 'pid,pmem'查询PID内存占用的百分比。

脚本 vi ~/bin/superJps ##>>>>>>>>>>>>>>>>>>>>>>>file input>>>>>>>>>>>>>>>>>>>>> #!/bin/bash # 临时文件路径,保存jps信息 TMP_FILE_PATH=/tmp/superJps.tmp jps -ml > $TMP_FILE_PATH # java进程占用的内存总百分比 SUM_PMEM=0 # 展示第一行表头 echo -e "PID\tPORT\tPMEM\tJAR" # 逐行读入jps内容 while read LINE do # 首先转换为数组,第一列是PID,第二列是详细描述 JPS_ARRAY=($LINE) # 占用端口 PORT=`netstat -nlp | awk '{if($6=="LISTEN" && $7=="'"${JPS_ARRAY[0]}/java"'")print $4}' | awk -F ":" '{print $4}'` # 占用内存 PMEM=`ps -e -o 'pid,pmem' | sed s/'^\s*'/''/ | egrep "^${JPS_ARRAY[0]}" | awk '{print $2}'` # 输出 echo -e "${JPS_ARRAY[0]}\t$PORT\t$PMEM%\t${JPS_ARRAY[1]}" # 内存百分比求和 if [ ! -n "$PMEM" ] ;then SUM_PMEM=`echo $SUM_PMEM+0|bc` else SUM_PMEM=`echo $SUM_PMEM+$PMEM|bc` fi done < $TMP_FILE_PATH # 展示总的内存占用百分比 echo "PMEM_TOTAL: $SUM_PMEM%" ##>>>>>>>>>>>>>>>>>>>>>>>file input>>>>>>>>>>>>>>>>>>>>> 使用

先给可执行权限,root用户赋最高权限,其他用户赋可读可执行权限:

chmod 755 superJps

可以把路径写到环境变量里,这样就不用每次带路径:

vi /etc/profile export PATH=$PATH:/root/bin source /etc/profile # 使用 [root@dbaasdev01 bin]# superJps PID PORT PMEM JAR 24337 8761 7.8% /any/path/a.jar 20851 8190 4.4% /any/path/b.jar 13651 9010 7.1% /any/path/c.jar 6565 % sun.tools.jps.Jps 26118 8081 4.1% /any/path/d.jar 8631 8091 4.0% /any/path/e.jar 32375 8088 4.4% /any/path/f.jar 20986 8082 10.2% /any/path/g.jar 14205 9000 9.6% /any/path/h.jar 20909 8084 3.8% /any/path/i.jar PMEM_TOTAL: 55.4%


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有