常用的linux系统监控命令整理

上传人:第*** 文档编号:30562160 上传时间:2018-01-30 格式:DOC 页数:6 大小:406.50KB
返回 下载 相关 举报
常用的linux系统监控命令整理_第1页
第1页 / 共6页
常用的linux系统监控命令整理_第2页
第2页 / 共6页
常用的linux系统监控命令整理_第3页
第3页 / 共6页
常用的linux系统监控命令整理_第4页
第4页 / 共6页
常用的linux系统监控命令整理_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《常用的linux系统监控命令整理》由会员分享,可在线阅读,更多相关《常用的linux系统监控命令整理(6页珍藏版)》请在金锄头文库上搜索。

1、常用的 linux 系统监控命令整理#uptime13:22:30 up 8 min, 4 users, load average: 0.14, 0.38, 0.25其内容如下:12:38:33 当前时间up 50days 系统运行时间,格式为时:分1 user 当前登录用户数load average: 0.06, 0.60, 0.48系统负载,即任务队列的平均长度。三个数值分别为 1 分钟、5 分钟、15 分钟前到现在的平均值。找到最耗 CPU 的 java 线程 ps 命令命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid结果展示:这个命令的作用

2、,主要是可以获取到对应一个进程下的线程的一些信息。 比如你想分析一下一个 java 进程的一些运行瓶颈点,可以通过该命令找到所有当前 Thread 的占用 CPU 的时间,也就是这里的最后一列。比如这里找到了一个 TID : 30834 ,所占用的 TIME 时间最高。通过 printf %xn 30834 首先转化成 16 进制, 继续通过 jstack 命令 dump 出当前的 jvm 进程的堆栈信息。 通过 Grep 命令即可以查到对应 16 进制的线程 id 信息,很快就可以找到对应最耗 CPU 的代码快在哪。简单的解释下,jstack 下这一串线程信息内容: DboServicePr

3、ocessor-4-thread-295 daemon prio=10 tid=0x00002aab047a9800 nid=0x7d9b waiting on condition 0x0000000046f66000nid : 对应的 linux 操作系统下的 tid,就是前面转化的 16 进制数字tid: 这个应该是 jvm 的 jmm 内存规范中的唯一地址定位,如果你详细分析 jvm 的一些内存数据时用得上,我自己还没到那种程度,所以先放下top 命令命令:top -Hp pid 结果显示:和前面的效果一下,你可以实时的跟踪并获取指定进程中最耗 cpu 的线程。 再用前面的方法提取到对应

4、的线程堆栈信息。判断 I/O 瓶颈mpstat 命令命令:mpstat -P ALL 1 1000结果显示:注意一下这里面的%iowait 列,CPU 等待 I/O 操作所花费的时间。这个值持续很高通常可能是 I/O 瓶颈所导致的。通过这个参数可以比较直观的看出当前的 I/O 操作是否存在瓶颈iostat 命令命令: iostat -m -x 1 1000 同样你可以观察对应的 CPU 中的%iowait 数据,除此之外 iostat 还提供了一些更详细的 I/O 状态数据,比如比较重要的有: avgqu-sz : The average queue length of the request

5、s that were issued to the device. (磁盘队列的请求长度,正常的话 2,3 比较好。可以和 cpu 的 load 一样的理解)await : The average time (in milliseconds) for I/O requests issued to the device to be served. (代表一个 I/O 操作从 wait 到完成的总时间)svctm 和%util 都是代表处理该 I/O 请求花费的时间和 CPU 的时间比例。 判断是否瓶颈时,这两个参数不是主要的r/s w/s 和 rMB/s wMB/s 都是代表当前系统处理的 I/

6、O 的一些状态,前者是我们常说的 tps,后者就是吞吐量。这也是评价一个系统的性能指标pid 命令命令: pidstat -p pid -u -d -t -w -h 1 1000结果显示:相当实用的一个命令,可以基于当个进程分析对应的性能数据,包括 CPU,I/O,IR , CS 等,可以方便开发者更加精细化的观察系统的运行状态。不过 pidstat 貌似是在 2.6 内核的一些较新的版本才有,需要安装sysstat 包。ubuntu 下,可以通过 sudo apt-get install sysstat 进行安装。sar 命令命令:sar -x pid 1 1000sar 也可以指定对应的

7、pid,关注固定的几个参数,没有 pidstat 那么强大。 看不到对应的 I/O, IR 等信息。sar 的功能可以覆盖 mpstat , iostat 的相关功能。dstat 命令命令:dstat -y -tcp 1 1000 通过 dstat -tcp 可以比较方便的看到当前的 tcp 的各种状态,不需要每次 netstat -nat 去看其他命令netstat -natp : 查看对应的网络链接,关注下 Recv-Q , Send-Q , State。lsof -p pid : 查找对应 pid 的文件句柄lsof -i : 80 : 查找对应端口被哪个进程占用lsof /tmp/1.txt :查找对应文件被哪个进程占用tcpdump / wireshark :抓包分析工具jstat / jmap / jstack / jps 等一系列的 java 监控命令最后如果你想做一些性能调优的工作,一定要善于利用一些工具进行关注相应的状态。通过 linux 命令你可以比较方便的观测到 CPU , I/O , network 等一些比较外围的状态, 很多时候就已经可以解决大部分的问题。jvm 内部的一些运行状态监控,得需要借助一些特有的工具进行细粒度的观测。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号