linux 查看java进程_Linux进程查看及管理工具(ps, vmstat, dstat, glances等)
pstree
pstree - display a tree of processes , 进程树查看。
[root@localhost /]# pstree
systemd─┬─agetty├─auditd───{auditd}├─bash├─crond├─dbus-daemon├─dnsmasq───dnsmasq├─dockerd─┬─docker-containe─┬─docker-containe─┬─tini───exim│ │ │ └─9*[{docker-containe}]│ │ ├─docker-containe─┬─tini───[celery beat] r───{[celery beat] r}│ │ │ └─11*[{docker-containe}]│ │ ├─docker-containe─┬─memcached───9*[{memcached}]│ │ │ └─11*[{docker-containe}]│ │ ├─docker-containe─┬─tini───uwsgi─┬─2*[uwsgi───3*[{uwsgi}]]│ │ │ │ ├─uwsgi───4*[{uwsgi}]│ │ │ │ └─uwsgi│ │ │ └─10*[{docker-containe}]│ │ ├─docker-containe─┬─tini───[celeryd: celer─┬─4*[[celeryd: celer───{[celeryd: celer}]│ │ │ │ └─{[celeryd: celer}│ │ │ └─9*[{docker-containe}]│ │ ├─docker-containe─┬─redis-server───2*[{redis-server}]│ │ │ └─10*[{docker-containe}]│ │ ├─docker-containe─┬─postgres───9*[postgres]│ │ │ └─9*[{docker-containe}]│ │ └─40*[{docker-containe}]│ ├─docker-proxy───6*[{docker-proxy}]│ └─55*[{dockerd}]
ps
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
- 语法
ps (选项)
- 常用选项
-a: 与终端相关的进程
-x: 与终端无关的进程
-u: 以用户为中心组织进程状态信息显示
aux:常用组合
-e: 显示所有进程
-f: 显示完整格式的进程信息
-e: 显示完整格式的所有进程信息
-F: 显示完整格式的进程信息
-H: 以进程层级格式显示进程信息
efH:常用组合
-eo:以指定的格式显示进程信息(-eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm)
axo:axo(stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm)
- 进程显示各参数说明
[root@localhost 1]# ps -aux | head -1
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND|
各参数解释如下:
USER: 进程属主
PID: 进程id号
CPU: 该进程使用CPU占比
%MEM: 该进程使用内存占比
VSZ(Virtual Memory Size) : 虚拟内存集
RSS(ReSident Size) :常驻内存集
TTY: 进程启用的终端
TAT: 进程状态
ni: nice值
pri: priority-优先级
psr: processor-处理器
rtprio: 实时优先级
- 进程状态
R: running-运行态
S: interruptable sleeping-可中断睡眠状态
D: uninterruptal sleeping-不可中断睡眠状态
T: stopped-停止态
Z: zombie-僵死态
+: 前台进程
1: 多线程进程
N: 低优先级进程
<: 高优先级进程
pgrep
pgrep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。
- 语法
pgrep(选项)(参数)
- 参数
-o:仅显示找到的最小(起始)进程号;
-n:仅显示找到的最大(结束)进程号;
-l:显示进程名称;
-P:指定父进程号;
-g:指定进程组;
-t:指定开启进程的终端;
-u:指定进程的有效用户ID。
- 参数
进程名称:指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。
- 示例
pgrep -lo httpd
4557 httpd[root@localhost ~]# pgrep -ln httpd
4566 httpd[root@localhost ~]# pgrep -l httpd
4557 httpd
4560 httpd
4561 httpd
4562 httpd
4563 httpd
4564 httpd
4565 httpd
4566 httpd[root@localhost ~]# pgrep httpd
4557
4560
4561
4562
4563
4564
4565
4566
pkill
pkill命令可以按照进程名杀死进程。pkill和killall应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill来杀掉。
- 语法
pkill(选项)(参数)
- 选项
-o:仅向找到的最小(起始)进程号发送信号;
-n:仅向找到的最大(结束)进程号发送信号;
-P:指定父进程号发送信号;
-g:指定进程组;
-t:指定开启进程的终端。
- 参数
进程名称:指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。
- 示例
pgrep -l gaim
2979 gaimpkill gaim
vmstat
vmstat命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
- 语法
vmstat (选项) (参数)
- 选项
-a:显示活动内页
-f:显示启动后创建的进程总数
-m:显示slab信息
-n:头信息仅显示一次
-s:以表格方式显示事件计数器和内存状态
-d:报告磁盘状态
-p:显示指定的硬盘分区状态
-S:输出信息的单位
- 参数
事件间隔:状态信息刷新的时间间隔;
次数:显示报告的次数。
[root@localhost 1]# vmstat 3 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 308992 128716 68 337964 2 14 174 47 61 45 0 0 100 0 00 0 308992 128724 68 337964 0 0 0 0 143 128 0 0 100 0 0
- 字段说明
(1) Procs(进程)
r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
b: 等待IO的进程数量。(2) Memory(内存)
swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
free: 空闲物理内存大小。
buff: 用作缓冲的内存大小。
cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。(3) Swap
si: 每秒从交换区写到内存的大小,由磁盘调入内存。
so: 每秒写入交换区的内存大小,由内存调入磁盘。
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。(4) IO(现在的Linux版本块的大小为1kb)
bi: 每秒读取的块数
bo: 每秒写入的块数
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。(5) system(系统)
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。(6) CPU(以百分比表示)
us: 用户进程执行时间百分比(user time)
us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
sy: 内核系统进程执行时间百分比(system time)
sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
wa: IO等待时间百分比
wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
id: 空闲时间百分比
- 示例
[root@localhost ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free inact active si so bi bo in cs us sy id wa st1 0 306688 102568 498476 170324 1 6 70 19 47 38 0 0 100 0 0[root@localhost ~]# vmstat -f7565 forks[root@localhost ~]# vmstat -m
Cache Num Total Size Pages
isofs_inode_cache 153 153 640 51
fuse_request 80 80 400 40
fuse_inode 42 42 768 42
nf_conntrack_ffff9302b74c0000 0 0 320 51
nf_conntrack_ffffffffb0cfc900 204 204 320 51
rpc_inode_cache 51 51 640 51
...[root@localhost ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------total merged sectors ms total merged sectors ms cur sec
sda 62476 12425 8109275 59592 44440 80956 2191291 11455 0 23
sdb 345 0 11800 118 0 0 0 0 0 0
sr0 29 0 2100 256 0 0 0 0 0 0
dm-0 59703 0 7965200 58816 43348 0 1526779 9090 0 22
dm-1 14197 0 117280 3735 82035 0 656280 117561 0 2
dm-2 47 0 2104 23 0 0 0 0 0 0
dm-3 82 0 10464 246 4 0 4096 59 0 0[root@localhost ~]# vmstat -w
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 306688 102796 68 353328 1 6 68 18 47 38 0 0 100 0 0
dstat
dstat命令是一个全能系统信息统计工具。拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新,譬如输入dstat 3
即每三秒收集一次,但最新的数据都会每秒刷新显示。和sysstat相同的是,dstat也可以收集指定的性能资源,譬如dstat -c
即显示CPU的使用情况。
直接使用dstat,默认使用的是-cdngy
参数,分别显示cpu、disk、net、page、system信息,默认是1s显示一条信息。可以在最后指定显示一条信息的时间间隔,如dstat 5
是没5s显示一条,dstat 5 10
表示没5s显示一条,一共显示10条。
- 语法
dstat [-afv] [options..] [delay [count]]
- 常用选项
-c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息。
-C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息。
-d:显示磁盘读写数据大小。
-D hda,total:include hda and total。
-n:显示网络状态。
-N eth1,total:有多块网卡时,指定要显示的网卡。
-l:显示系统负载情况。
-m:显示内存使用情况。
-g:显示页面使用情况。
-p:显示进程状态。
-s:显示交换分区使用情况。
-S:类似D/N。
-r:I/O请求情况。
-y:系统状态。
--ipc:显示ipc消息队列,信号等信息。
--socket:用来显示tcp udp端口状态。
-a:此为默认选项,等同于-cdngy。
-v:等同于 -pmgdsc -D total。
--output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中。
- 实例
如想监控swap,process,sockets,filesystem并显示监控的时间:
将结果定向输出到文件可以加--output filename
:
glances
glances- A cross-platform curses-based system monitoring tool: 一种跨平台的系统资源监控工具。
glance有许多内建命令,可以查看各部分系统资源的使用情况,一般生产中比较喜欢这款工具,一方面可视化效果做的不错,另一方面对系统资源的监控也比较全。该工具需要自行安装,这里介绍下 Centos 下的安装方法。
$ yum -y install glances
- 内建命令
a Sort process list automaticallyb Switch between bit/s or Byte/s for network I/Oc Sort processes by CPU usaged Show/hide disk I/O statse Enable/disable top extended statsf Show/hide file system statsF Switch between file system used and free spaceg Generate graphs for current historyh Show/hide the help screeni Sort processes by I/O ratel Show/hide log messagesm Sort processes by MEM usagen Show/hide network statsp Sort processes by nameq Quitr Reset historys Show/hide sensors statst Sort process by CPU times (TIME+)T View network I/O as combinationu Sort processes by USERU View cumulative network I/Ow Delete finished warning log messagesx Delete finished warning and critical log messagesz Show/hide processes statsz Show/hide processes list (for low CPU consumption)0 Task's cpu usage will be divided by the total number of CPUs1 Switch between global CPU and per-CPU stats2 Enable/disable left sidebar3 Enable/disable the quick look module4 Enable/disable all but quick look and load module/ Switch between short name/command line (processes name)
- 常用选项
-b: 以byte为单位显示网卡数据速率
-d /path/to/somefile: 设定输入文件位置
-n: 禁用网络模块
-t: 延迟时间间隔
-1: 每个CPU的相关数据单独显示
总结
以上的 Linux 工具使用习惯后,对工作还是有比较大的帮助。工具比较多,适合自己的才是最好的。欢迎大家查阅评论。
linux 查看java进程_Linux进程查看及管理工具(ps, vmstat, dstat, glances等)相关推荐
- linux 查看java端口_Linux之查看端口使用情况
1:查看到进程占用的端口号netstat -anp | grep pid 2.查看8000端口的使用情况lsof-i:8000 3.netstat命令各个参数说明如下: -t : 指明显示TCP端口 ...
- linux查看jdk版本_linux环境查看jdk版本
2.设置环境变量.#vi/etc/profile在最后面加入#setjavaenvironmentexportjava_home=/usr/java/jdk-1_5_0_02exportclasspa ...
- Java基础-Eclipse第三方安装包管理工具之Maven
Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...
- linux查看java进程_linux中查看java进程
linux中查看java进程 查看进程可以使用 ps -ef|grep 'java -jar' ps -ef|grep java [root@vm-linux-x86 ~]# ps -ef|grep ...
- linux 查看java进城_linux查看java进程|线程池信息
1.根据端口号57638查看对应进程pid/name=1463/java netstat -apn | grep 57638 tcp 0 0 ::ffff:172.20.5. ...
- 根据用户查进程_Linux进程之如何查看进程详情?
来自:掘金,作者:RunFromHere 链接:https://juejin.im/post/5bf9213ce51d452237153c5c 1.ps是什么? 要对进程进行监测和控制,首先必须要了解 ...
- mysql查看文件句柄数_Linux下查看进程打开的文件句柄数
在 Linux 平台上运行的进程都会从系统资源申请一定数量的句柄,而且系统控制了进程能够申请的最大句柄数量.用户程序如果不及时释放无用的句柄,将会引起句柄泄露,从而可能造成申请资源失败,导致系统文件句 ...
- linux查看java版本_linux 查看java版本
inux查看java jdk安装路径和设置环境变量 windows: set java_home:查看JDK安装路径 java -version:查看JDK版本 linux: whereis java ...
- linux 重启java 命令_linux重启进程命令
#!/bin/sh ps -ef | grep [p]ython | cut -c 9-15| xargs kill -s 9 python a.py > /dev/null & pyt ...
最新文章
- 使用ssh-keygen生成私钥和公钥
- MySQL分组查询的介绍
- 解决 idea 中 jsp 修改后页面不生效
- Java—Set集合详解(HashSet/LinkedHashSet/TreeSet/EnumSet)
- c语言flappy bird代码,Flappy bird源代码(略吊)
- 11月国内浏览器市场份额:IE、Chrome均遭蚕食
- 《R语言数据挖掘:实用项目解析》——2.6 变量分段
- java为什么安装怎么慢_Java JDK下载为什么慢? 国内下载站来解决
- windows清理C盘
- 拼写纠错原理以及模型(Spelling Correction model)
- python股票预测_python用线性回归预测股票价格的实现代码
- 嘉兴 机器人仓库 菜鸟_双11前菜鸟网络升级智能仓库 浙江嘉兴仓担当大任
- 使用Mailgun WordPress插件增加订户
- 《矩阵理论与方法》lambda矩阵及Jordan标准形
- 如何学习编程、一门编程语言怎么算入门、快速掌握一门编程语言
- ❤️❤️❤️Unity废柴看过来,手把手教你做植物大战僵尸(十二)—— 向日葵生产太阳
- 为什么在线客服系统很重要
- android移植wifi驱动流程porting
- widnows ,mongodb 复制代码,无法粘贴到cmd中
- 如何查看ORACLE各个表空间的使用情况
热门文章
- 安装VMwareTools后虚拟机中的鼠标滚轮无法使用解决办法
- Ubuntu下安装DEB包时出现错误的解救方法
- 重装MAC系统 “安装器有效负载签名检查失败” 解决方法
- using namspace std的使用
- Groonga 2.1.1 发布,嵌入式的全文搜寻引擎 - 开源中国 OSChina.NET
- ArcGIS对AutoCAD操作的图文教程
- ZooKeeper配置中出现Error contacting service. It is probably not running
- Isolation Forest
- 剖析Vue原理实现双向绑定MVVM
- JQuery 选择器。