Linux系统监控要用到哪些命令

Linux系统监控要用到哪些命令,第1张

找到最耗CPU的java线程

ps命令

命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid

结果展示:

这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息。 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列。

比如这里找到了一个TID : 30834 ,所占用的TIME时间最高。

通过 printf “%x\n” 30834 首先转化成16进制, 继续通过jstack命令dump出当前的jvm进程的堆栈信息。 通过Grep命令即可以查到对应16进制的线程id信息,很快就可以找到对应最耗CPU的代码快在哪。

简单的解释下,jstack下这一串线程信息内容:

Java代码

“DboServiceProcessor-4-thread-295” daemon prio=10 tid=0x00002aab047a9800 nid=0x7d9b waiting on condition [0x0000000046f66000]

nid : 对应的linux *** 作系统下的tid,就是前面转化的16进制数字

tid: 这个应该是jvm的jmm内存规范中的唯一地址定位,如果你详细分析jvm的一些内存数据时用得上,我自己还没到那种程度,所以先放下

top命令

命令:top -Hp pid

结果显示

和前面的效果一下,你可以实时的跟踪并获取指定进程中最耗cpu的线程。 再用前面的方法提取到对应的线程堆栈信息。

判断I/O瓶颈

mpstat命令

命令:mpstat -P ALL 1 1000

结果显示:

注意一下这里面的%iowait列,CPU等待I/O *** 作所花费的时间。这个值持续很高通常可能是I/O瓶颈所导致的。

通过这个参数可以比较直观的看出当前的I/O *** 作是否存在瓶颈

Linux对文本 *** 作命令及正则表达式:

cat

cat 是 concatenate 的缩写,所以它的作用其实是连接文件。但默认情况下它会将连接文件的结果送到标准输出。所以我们常用来显示文件内容。类似于 dos 中的 type。

more

当一个文件的内容超过一屏后,我们可以用 more 这个指令来逐屏 察看 文件内容。

less

less 在 more 的基础上,更可以逐行 察看 ,前后翻页。

head

head 显示文件开头部分内容,默认显示前十行参数 --lines 或者 –n 指明显示行数基本格式:

tail

tail 显示文件结尾部分内容,命令用法同 head,参数 -f 显示文件的纪实更新,用于监视日志文件

tail 默认显示文件列表中每个文件的后 10 行,如果没有文件名或文件名为“-”则其从标准输入中读取文件,如果有多个文件则其会在文件前面加上“==>文件名<==”以便区别。

# tail /etc/mail/sendmail.mc 默认查看文件的后 10 行内容

# tail –n 20 /etc/passwd 查看文件后 20 行内容

注意: # tail –f /var/log/message 实时监控日志文件更新信息,非常重要

diff

diff 用于比较两个文件之间的区别,并送到标准输出。输出时先报告两个文件的哪一行不同。基本格式:

参数:

uniq 用于去除文本中相邻的重复行。

-u 参数可以只显示那些没有被重复过的行。 -d 显示有被重复过的行。

cut

cut 可以根据一个指定的标记(默认是 tab)来为文本划分列,然后将此列显示。使用权限:所有使用者

基本格式: cut -cnum1 -num2 filename

说明:显示每行从开头算起 num1 到 num2 的文字。

[root@uplooking root] $ cut –f1 –d: /etc/shadow 表示以 : 为分隔符,显示 /etc/shadow 的第一列 sort

sort 用来按各种需要重新排列文本,一般运用在一个管道之后。例如:

默认情况下 sort 按照字母顺序排列文本。

wc

wc 用来统计一个文件的行数、词数、字数并送到标准输出。也可以用-l(行数)、-w(词数)、-c(字数)来指定输出内容。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8469024.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存