top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
top - 13:49:38 up 14 days, 15:44, 1 user, load average: 0.01, 0.02, 0.05 Tasks: 111 total, 2 running, 109 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1882352 total, 224980 free, 222020 used, 1435352 buff/cache KiB Swap: 0 total, 0 free, 0 used. 1450992 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 43516 3828 2560 S 0.0 0.2 1:12.57 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:21.61 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:46.77 rcu_sched
第一行
13:49:38:系统当前时间
14 days, 15:44:系统开机到现在经过了多少时间
1 users : 当前2用户在线
load average: 0.01, 0.02, 0.05: 系统1分钟、5分钟、15分钟的CPU负载信息
第二行
Tasks:任务;
111 total:很好理解,就是当前有87个任务,也就是87个进程。
2 running:2个进程正在运行
109 sleeping:109个进程睡眠
0 stopped:停止的进程数
0 zombie:僵死的进程数
第三行
Cpu(s):表示这一行显示CPU总体信息
0.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。
0.0%sy:内核占用CPU时间百分比
0.0%ni:改变过优先级的进程占用CPU的百分比
100%id:空闲CPU时间百分比
0.0%wa:等待I/O的CPU时间百分比
0.0%hi:CPU硬中断时间百分比
0.0%si:CPU软中断时间百分比
注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1;
第四行
Men:内存的意思
1882352 total:物理内存总量
224980 used:使用的物理内存量
222020 free:空闲的物理内存量
1435352 buffers:用作内核缓存的物理内存量
第五行
Swap:交换空间
0 total:交换区总量
0used:使用的交换区量
0 free:空闲的交换区量
1450992 cached:缓冲交换区总量
进程信息
再下面就是进程信息:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
【交互操作指令】
下面列出一些常用的 top命令操作指令
· q:退出top命令
· <Space>:立即刷新
· s:设置刷新时间间隔
· c:显示命令完全模式
· t::显示或隐藏进程和CPU状态信息
· m:显示或隐藏内存状态信息
· l:显示或隐藏uptime信息
· f:增加或减少进程显示标志
· S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
· P:按%CPU使用率排行
· T:按MITE+排行
· M:按%MEM排行
· u:指定显示用户进程
· r:修改进程renice值
· kkill:进程
· i:只显示正在运行的进程
· W:保存对top的设置到文件^/.toprc,下次启动将自动调用toprc文件的设置。
· h:帮助命令。
· q:退出
注:强调一下,使用频率最高的是P、T、M,因为通常使用top,我们就想看看是哪些进程最耗cpu资源、占用的内存最多; 注:通过”shift + >”或”shift + <”可以向右或左改变排序列 如果只需要查看内存:可用free命令。只查看uptime信息(第一行),可用uptime命令;
【实例】
例1:多核CPU监控
在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况;
[root@wzxaini9 ~]# top top - 14:07:11 up 14 days, 16:01, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 111 total, 2 running, 109 sleeping, 0 stopped, 0 zombie %Cpu0 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1882352 total, 224184 free, 222128 used, 1436040 buff/cache KiB Swap: 0 total, 0 free, 0 used. 1450844 avail Mem
例2:高亮显示当前运行进程
在top基本视图中,按键盘“b”(打开/关闭加亮效果);
例3:显示完整的程序命令
命令:top -c
top - 14:09:42 up 14 days, 16:04, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 111 total, 2 running, 109 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 98.7 id, 0.7 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1882352 total, 224076 free, 222208 used, 1436068 buff/cache KiB Swap: 0 total, 0 free, 0 used. 1450820 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 43516 3828 2560 S 0.0 0.2 1:12.56 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:21.61 [ksoftirqd/0] 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H] 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0] 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [rcu_bh] 9 root 20 0 0 0 0 R 0.0 0.0 0:46.77 [rcu_sched]
例4:显示指定的进程信息
命令:top -p pidid
top - 14:20:24 up 14 days, 16:14, 1 user, load average: 0.02, 0.06, 0.07 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1882352 total, 223416 free, 222268 used, 1436668 buff/cache KiB Swap: 0 total, 0 free, 0 used. 1450744 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 43516 3828 2560 S 0.0 0.2 1:12.60 systemd
指定进程信息有多个时,需要结合其它工具将回车替换为,(-p 支持pid,pid,pid语法)
命令:top -p pgrep MULTI_PROCESS | tr “\n” ”,” | sed ‘s/,$//’
[root@wzxaini9 ~]# top -p `pgrep php | tr "\\n" "," | sed 's/,$//'` top - 14:23:02 up 14 days, 16:17, 1 user, load average: 0.02, 0.05, 0.06 Tasks: 17 total, 0 running, 17 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 1.3 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1882352 total, 223208 free, 222308 used, 1436836 buff/cache KiB Swap: 0 total, 0 free, 0 used. 1450708 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3265 root 20 0 339788 15388 1384 S 0.0 0.8 1:31.39 php-fpm 3266 www 20 0 431616 28960 12984 S 0.0 1.5 0:28.50 php-fpm 3267 www 20 0 431304 28656 12904 S 0.0 1.5 0:29.03 php-fpm 3268 www 20 0 431340 28696 12944 S 0.0 1.5 0:28.74 php-fpm 3269 www 20 0 431336 28232 12464 S 0.0 1.5 0:29.33 php-fpm 3270 www 20 0 342764 24392 9496 S 0.0 1.3 0:28.60 php-fpm 3271 www 20 0 431340 28696 12948 S 0.0 1.5 0:29.52 php-fpm 3272 www 20 0 431148 28360 12716 S 0.0 1.5 0:29.49 php-fpm 3273 www 20 0 431228 28924 13160 S 0.0 1.5 0:28.85 php-fpm
【更强大的工具】
htop 是一个 Linux 下的交互式的进程浏览器,可以用来替换Linux下的top命令。
与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
与top相比,htop有以下优点:
· 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。
· 在启动上,比top 更快。
· 杀进程时不需要输入进程号。
· htop 支持鼠标操作。
登录后可发表评论