Linux监控工具vmstat命令详解与结果分析 - 2877206/docs GitHub Wiki

Linux监控工具vmstat命令详解与结果分析 http://www.ha97.com/4512.html

I Machine View

Top

  • mem --bi, bo. swpd

vmstat

cat /proc/cpuinfo|grep processor|wc -l

free

  • cpu --sy+us, r

vmstat

mpstat 1 3

mpstat -P ALL 2 3

  • io

iostat

iostat -d 1 3

iostat -dx 1 3

  • net

sar

sar -n ALL 1 2

dstat

netstat /ss

iftop -i eth0 -P -n

lsof

lsof 目录 查看哪些进程打开其下的文件 lsof –i:端口号 查看指定端口有哪些进程在使用 lsof –i@ip 查看连接IP有哪些进程在使用 lsof –u 用户名 查看指定用户打开的文件 lsof –c 程序名 查看指定程序打开的文件 lsof -­‐p pid 进程当前打开的文件资源(文件句柄数) lsof |wc –l 查看当前系统打开文件数量

df -h 查看磁盘空间使用情况 du -sh ./* 获取当前目录下所有子目录所占用的磁盘空间大小 ls -lrt /proc/[pid] 查找进程对应路径等信息 tcpdump 查看通信包信息 ls /proc/[pid]/fd 查看某一进程打开文件数量

II Application View 1、启动日志

2、运行日志

3、JVM日志 GC -log java - jconsole java - jvisualvm java - jstat java - jmap java - jstack

III Tools 内存分析利器 Mat jmap‐dump:format=b,file=[file url] [pid]

负载分析利器 ps -mp [pid] -o THREAD,tid,time ps -Lfp pid ps -eLo pid,tid,lwp,nlwp,pcpu|grep [pid]|more ps Hh –eo tid,pcpu

找到最耗cpu线程编号,转换成16进制 jstack [pid] 找到对应16进制编码信息。 jstack 信息中nid 对应tid,即为前面转化成16进制数字

RUNNABLE/LOCK 状态是导致CPU偏高的主要原因

pidstat -p[pid] -t 1 2 选项 说明 ‐l 显示该进程和CPU相关的信息(command列中可以显示 命令的完整路径名和命令的参数) ‐d 显示该进程和设备IO相关的信息 ‐r 显示该进程和内存相关的信息 ‐w 显示该进程和任务时间片切换相关的信息 ‐t 显示在该进程内正在运行的线程相关的信息 ‐p 后面紧跟着带监控的进程id或ALL(表示所有进程),如不 指定该选项,将监控当前系统正在运行的所有进程

TDA BTrace TProfiler