linux查看资源使用情况

linux查看资源使用情况

top -c # 查看资源使用情况
top

输出如下内容

top - 14:54:21 up 95 days, 20:03,  3 users,  load average: 2072.21, 1241.33, 1244.76
Tasks: 1071 total, 459 running, 610 sleeping,   2 stopped,   0 zombie
%Cpu(s): 12.4 us, 36.1 sy,  0.0 ni, 51.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem : 515457.4 total, 330572.6 free, 127919.9 used,  56965.0 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used. 381876.9 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                              
109931        20   0 1151960 101916  30340 R  45.9   0.0  35:01.51 /home/
110902        20   0 1150032  99684  29548 R  43.7   0.0  36:25.97
  • 第一行:系统时间 + 系统已经运行时间 + 目前几个用户登录系统 + 1/5/15分钟系统负载平均值

    负载值表示系统正在运行的进程数,这些进程在等待 CPU 或 I/O 的时间。通常情况下,负载值应该在CPU核心数的范围内。

  • 第二行:total总进程数 + 正在运行进程数 + 睡眠状态进程数 + 停止的进程数 + 僵尸进程数(zombie)

    僵尸进程:即已经结束但是父进程还没有读取到退出状态的进程。

  • 第三行:us用户空间CPU占比 + sy内核空间CPU占比 + ni 用于优先级别较低的进程的用户空间CPU占比 + id CPU空闲比 + 等待I/O的CPU时间比 + hi 硬中断处理百分比 + si 软中断处理百分比 + st 被虚拟化软件(如虚拟机)偷取的CPU时间百分比

    hi(hardware IRQ) 硬中断

    si(software IRQ) 软中断

  • 第四行 Mem:物理内存大小 + 可用物理内存大小 + 已使用物理内存大小 + 用于缓冲和缓存的内存大小

  • 第五行 Swap:交换空间的总大小 + 可用交换空间大小 + 已使用交换空间大小 + 可用于系统使用的内存大小

  • 第六行:

    • PID:进程ID
    • USER:进程所属用户
    • PR:进程优先级
    • NI:进程的nice值
    • VIRT:进程的虚拟内存大小
    • RES:进程占用的物理内存大小
    • SHR:进程使用的共享内存大小
    • S:进程状态(运行--R,睡眠--S,停止--T)
    • %CPU:进程使用的CPU百分比
    • %MEN:进程占用内存百分比
    • TIME+:进程占用的CPU时间
    • COMMAND:进程的命令
P # 输入P将会按照%CPU使用率排序

然后根据最耗费CPU的进程定位该进程下耗费CPU的线程,然后输入P对线程进行排序

top -Hp pid

P

由于Liunx中PID为十进制,先转换成十六进制

printf"%x\n" tid

然后使用指令查看高CPU线程的堆栈信息,打印出代码中哪些方法导致CPU较高的。

jstack pid | grep tid -C5 --color

这是java里的。

posted @ 2024-03-10 16:43  ben犇  阅读(40)  评论(0)    收藏  举报