ps

查看线程

ps –eLf 进程id
ps H 也行
ps -mp pid -o THREAD,tid,time;printf “%x\n” tid;jstack pid |grep tid -A 30;CPU占用太高追查
ps -mp pid -o THREAD,tid,time;printf “%x\n” tid;jstack pid

top

查看线程

top -H -p 25120
-H查看线程
-p指定进程号
其中25120为Java进程号

配合jstack

系统监控命令 - 图1

切换top显示模式

1:显示每个cpu的使用率
E/e:切换单位:

  • e:切换列表单位
  • E:切换内存单位

m 切换显示内存信息
-c:显示进程运行命令
-Hp [进程号]:显示进程的线程

lsof

  • -i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )【根据端口查进程】
  • -t : 仅获取进程ID
  • -p:查看进程打开的文件【根据进程查打开文件】

image.png

查看占用端口的进程

input 好记
(1) netstat -an|grep 8080
(2) lsof -i:8080

df & du

文件系统

/proc

  • /proc/xxxx/task:线程
    - /proc/xxxx/fd:查看进程打开了哪些文件【socket也是文件】
    - /proc/stat:查看cpu信息
    - /proc/meminfo:查看cache 和buffer 的占用
    - /proc/softirqs:软中断

    strace查看系统调用

    pidstat & sar &vmstat

    sar看整体,pidstat看具体的进程?
    pidstat 命令详解 - 简书
    pidstat常用
    image.png
    vmstat看整体?
    系统监控命令 - 图4