2025-02-23
在Linux中top
命令应该是最常使用的性能分析工具,可以通过top
命令获取CPU、内存、进程状态和中断等信息,是排错和调试一把好手。
在终端执行top
命令,会输出下面的信息:
top - 11:47:33 up 4 days, 1:55, 7 users, load average: 0.18, 0.07, 0.09
Tasks: 450 total, 1 running, 449 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3914.0 total, 277.1 free, 2261.1 used, 1738.0 buff/cache
MiB Swap: 3914.0 total, 3913.5 free, 0.5 used. 1652.9 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
69146 blue 20 0 23184 5888 3712 R 0.4 0.1 0:00.10 top
1583 root 20 0 335108 18080 7296 S 0.2 0.5 0:38.89 upowerd
38269 gdm 20 0 5179284 233356 126464 S 0.2 5.8 1:58.34 gnome-shell
50982 gdm 20 0 5253208 233484 126940 S 0.2 5.8 1:15.60 gnome-shell
67095 root 20 0 0 0 0 I 0.2 0.0 0:00.28 kworker/5:0-events
...
top - 11:47:33 up 4 days, 1:55, 7 users, load average: 0.18, 0.07, 0.09
11:47:33:当前系统时间。
up 4 days, 1:55:系统已经运行了4天1小时55分钟。
7 users:当前有7个用户登录系统。
load average: 0.18, 0.07, 0.09:系统的平均负载,分别表示过去1分钟、5分钟和15分钟的平均负载。负载值表示系统的任务队列长度,通常小于CPU核心数表示系统负载较轻。
Tasks: 450 total, 1 running, 449 sleeping, 0 stopped, 0 zombie
450 total:系统中共有450个任务(进程)。
1 running:当前有1个进程正在运行。
449 sleeping:有449个进程处于睡眠状态(等待资源或事件)。
0 stopped:没有进程被停止。
0 zombie:没有僵尸进程(已经终止但未被父进程回收的进程)。
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
0.0 us:用户空间占用CPU的百分比(运行用户进程)。
0.0 sy:内核空间占用CPU的百分比(运行内核进程)。
0.0 ni:调整过优先级的用户进程占用CPU的百分比。
99.9 id:空闲CPU的百分比。
0.0 wa:等待I/O操作的CPU时间百分比。
0.0 hi:硬件中断占用CPU的百分比。
0.0 si:软件中断占用CPU的百分比。
0.0 st:虚拟机偷取的CPU时间百分比(在虚拟化环境中)。
MiB Mem : 3914.0 total, 277.1 free, 2261.1 used, 1738.0 buff/cache
3914.0 total:系统总内存为3914 MiB。
277.1 free:空闲内存为277.1 MiB。
2261.1 used:已使用内存为2261.1 MiB。
1738.0 buff/cache:用于缓存和缓冲的内存为1738.0 MiB。
MiB Swap: 3914.0 total, 3913.5 free, 0.5 used. 1652.9 avail Mem
3914.0 total:交换分区总大小为3914 MiB。
3913.5 free:空闲交换分区为3913.5 MiB。
0.5 used:已使用的交换分区为0.5 MiB。
1652.9 avail Mem:可用内存为1652.9 MiB(估计可用于启动新应用程序的内存)。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID:进程ID。
USER:进程所有者。
PR:进程优先级。
NI:进程的nice值(优先级调整值)。
VIRT:进程使用的虚拟内存总量(包括交换分区和物理内存)。
RES:进程使用的物理内存大小。
SHR:进程使用的共享内存大小。
S:进程状态(R=运行,S=睡眠,I=空闲,Z=僵尸等)。
%CPU:进程占用的CPU百分比。
%MEM:进程占用的内存百分比。
TIME+:进程使用的CPU时间总计(格式为分钟:秒)。
COMMAND:进程的命令名称。
通过上面的详细讲解,你应该对top
命令的默认输出有一个很直观和清晰的认知。