Linux系统中有许多命令。今天,萧边主要介绍监控Linux系统命令。如果你有兴趣监视命令或学习相关知识,你不妨知道它。


找到最耗时的java线程的CPU


ps命令


命令:PS MP PID O线,tid,LFP PID或PS


结果显示:


此命令的主要功能是收集一些关于线程对应一个进程的信息。例如,如果你想分析一些运行瓶颈一个java程序,可以通过命令找到所有当前线程的CPU时间,这是最后一篇。


例如,我们发现一个TID:30834,占最高的时间。


通过printf % X30834先转换为16,通过jstack命令转储继续当前的JVM进程堆栈信息,grep命令,你可以找到相应的16个基地的线程ID信息,你可以很快找到最好的CPU代码快。


在一个简单的解释,这条线在jstack信息:





java代码


dboserviceprocessor-4-thread-295参数= 10;守护TID = 0x00002aab047a9800 NID = 0x7d9b等条件0x0000000046f66000 } {


标识:相应的Linux操作系统下的TID是先前转换的16位数字。


TID:这应该是在JVM的内存地址的JMM规范只。如果详细分析JVM的内存数据,我还没有达到这个级别,所以我先把它放下来。


上面的命令


命令:高级PID


结果表明:


利用前面的效果,您可以实时跟踪并获取指定进程中的CPU占用线程。


判断I/O瓶颈


mpstat命令


mpstat命令:P 11000


结果表明:


走在这%iowait列注,和CPU等待由我/ O操作所花费的时间。这个值仍然很高,通常可以由我/ O瓶颈。


通过这个参数,可以更直观地了解当前I/O操作是否存在瓶颈。


iostat命令


命令:iostat米x 11000


以同样的方式,你可以观察到在相应的CPU %iowait数据。此外,iostat还提供了一些更详细的我/ O状态数据,例如,


avgqu尺码:那发出的请求的平均队列长度是(磁盘请求队列长度,正常2, 3更好。你可以理解为CPU的负载相同)


等待:发出到、到、到的I/O请求的平均时间(毫秒),它表示从完成时间到完成时间的单个操作。


两svctm %利用代表我处理的I/O请求和CPU的时间比时间。判断瓶颈的时候,这两个参数是不是主要的。


R / S W / S和人民币/ s / s和一些州代表我/ O的现行制度,前者是我们常说的TPS,后者是吞吐量。这也是一个评价系统的性能指标


PID指令


指挥:pidstat -p PID U·D·T·W·H 11000


结果表明:


一个很实用的命令可以基于过程分析了相应的性能数据,包括CPU,我 / O,IR,CS,等等,可以方便开发者观察系统的运行状态更精细。但pidstat似乎更多一些的2.6内核的新版本,和你需要安装提示sysstat包。


在Ubuntu系统中,你可以安装它通过sudo apt-get install SYSSTAT。


sar命令


命令:SAR - X PID 11000


SAR也可以指定相应的PID参数,以固定的数量,不pidstat强大。你不能看到相应的我/ O、IR等信息。


SAR的功能可以覆盖mpstat和iostat功能。


dstat命令


命令:dstat - Y - TCP 11000


dstat,TCP可以看到当前的TCP的各种状态,更方便,不需要每次看到netstat NAT。


其他命令


回答:看看通过相应的网络链接,在recv-q,send-q焦点状态。


lsof -p PID:对于相应的PID找到文件句柄


lsof-我:80:找出哪些过程是通过相应的端口占用


lsof / / 1.txt TMP:找出哪些过程是由相应的文件占用


tcpdump / Wireshark嗅探:


一系列的java监控命令,如jstat / / / jstack jmap JPS,等等


最后


如果你想做一些性能优化工作,你要善于利用一些工具要注意相应的状态。通过Linux命令,你可以很容易地观察到一些周边国家,如CPU,我 / O、网络等等,你可以解决很多问题的时间。一些运行在JVM需要细粒度的一些特定的工具观察到的状态监测。


以上是linux系统监控命令的介绍。通过这些命令,开发人员可以方便地观察系统的运行状态。这些命令用于系统监视。