火影 发表于 2024-6-21 13:29:17

Linux性能分析——TOP下令详解

https://img-blog.csdnimg.cn/img_convert/544c0c89adf611849f889938b92e4617.jpeg    我的圈子: 高级工程师聚集地    我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和体系开发,曾就职于世界500强公司!    创作理念:专注分享高质量嵌入式文章,让大家读有所得!    https://img-blog.csdnimg.cn/img_convert/dddab6c6ad4689a46be3e3c5a788852c.jpeg

1、Top下令先容

Linux体系中,Top下令重要用于实时运行体系的监控,包括Linux内核管理的进程或者线程的资源占用情况。
这个下令对所有正在运行的进程和体系负荷提供不断更新的概览信息,包括体系负载、CPU使用分布情况、内存使用、每个进程的内容使用情况等信息。
 
2、Top下令使用

Top的下令先容如下:
top -hv|-bcHiOSs -d secs -n max -u|U user -p pid -o fld -w
常用的Top指令有:
top:启动top命令
top -c:显示完整的命令行
top -b:以批处理模式显示程序信息
top -S:以累积模式显示程序信息
top -n 2:表示更新两次后终止更新显示
top -d 3:设置信息更新周期为3秒
top -p 139:显示进程号为139的进程信息,CPU、内存占用率等
top -n 10:显示更新十次后退出
除此之外,在top进程运行过程中,两个最告急的功能是查看帮助(h 或 ?)和退出(q 或 Ctrl+C)。
 
3、Top信息详解

top展示界面由从上到下3部分组成

[*]概览区域
[*]表头
[*]使命区域
[*]还有一个输入/消息行,位于概览区域和表头之间。
https://img-blog.csdnimg.cn/img_convert/84f7a8e7accf6a8f1720da547e5e26b3.png
3.1 概览区详解

top - 14:46:08 up5:46,1 user,load average: 0.00, 0.00, 0.00


[*]程序或者窗口的名称:top
[*]当前时间和体系的启动时间:14:46:08 up 5:46
[*]总共的用户数量:1 user
[*]过去1、5和15分钟的体系均匀负载:load average: 0.00, 0.00, 0.00
Tasks: 290 total,   1 running, 212 sleeping,   0 stopped,   0 zombie
%Cpu(s):0.0 us,0.1 sy,0.0 ni, 99.9 id,0.0 wa,0.0 hi,0.0 si,0.0 st
这两行表现了使命数量和CPU状态


[*]第一行该信息对Task进行分类,包括running、sleeping、stopped、zombie四类,表现了体系中正在运行的使命的状态统计信息。详细来说,这里有291个使命总数,其中有1个使命正在运行,212个使命正在睡眠,0个使命已停止,0个使命为僵尸进程。
[*]第二行表现CPU的状态百分比

[*]%Cpu(s): CPU使用率的统计信息。
[*]us (user): 用户空间进程占用CPU的时间百分比。
[*]sy (system): 内核空间进程占用CPU的时间百分比。
[*]ni (nice): 用户进程以优先级调解过的占用CPU的时间百分比(通常不会有这个值)。
[*]id (idle): CPU空闲的时间百分比。
[*]wa (IO-wait): CPU等待I/O操纵的时间百分比。
[*]hi (hardware interrupt): CPU处置惩罚硬件中断的时间百分比。
[*]si (software interrupt): CPU处置惩罚软件中断的时间百分比。
[*]st: 被虚拟化环境偷取的时间百分比(通常不会有这个值)。

KiB Mem :3994720 total,   525876 free,   595492 used,2873352 buff/cache
KiB Swap:2097148 total,2096624 free,      524 used.3114400 avail Mem
这两行表示内存的使用情况


[*]第一行表示物理内存,分为total、 free、 used 、 buff/cache
[*]第二行表示虚拟内存,分为total、free、used、avail
   默认单位是KiB,使用按键E可以切换为MiB、GiB、TiB、PiB、EiB
KiB = kibibyte = 1024 bytes
MiB = mebibyte = 1024 KiB = 1,048,576 bytes
GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes
TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes
PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes
EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes
 
   更多干货可见:高级工程师聚集地,助力大家更上一层楼!
 
3.2 使命区

使命区是按照列的情势来表现的,并且有多个字段可以用来查看进程的状态信息。
3.2.1 使命字段先容



[*] %CPU: CPU Usage,自上次屏幕更新以来使命占用的CPU时间份额,表示为总CPU时间的百分比。
[*] %MEM: Memory Usage,进程使用的物理内存百分比
[*] CODE:Code Size,可实行代码占用的物理内存量
[*] COMMAND:Command Name or Command Line,用于表现输入的下令行或者程序名称
[*] PID:Process Id,使命独立的ID,即进程ID
[*] PPID:Parent Process Id,父进程ID
[*] UID:User Id,使命所有者的用户ID
[*] USER:User Name,用户名
[*] RUSER:Real User Name,实际的用户名
[*] TTY:Controlling Tty,控制终端名称
[*] TIME:CPU TIME,该使命CPU总共运行的时间
[*] TIME+:同TIME,其粒度更细
[*] OOMa:Out of Memory Adjustment Factor,内存溢出调解机制,这个字段会被增长到当前内存溢出分数中,来决定什么使命会被杀掉,范围是-1000到+1000。
[*] OOMs:Out of Memory Score,内存溢出分数,这个字段是用来选择当内存耗尽时杀掉的使命,范围是0到+1000。0的意思是绝不杀掉,1000的意思是总是杀掉。
[*] S:Process Status,表示进程状态信息

[*]D: 不可中断休眠
[*]I:空闲
[*]R:运行中
[*]S:休眠
[*]T:被使命控制信号停止
[*]t:在跟踪期间被调试器停止
[*]Z:僵尸

   相关属性有许多,可以使用man top查看,这里先枚举这些。
 
3.2.2 字段管理

我们输入top后,默认只表现一部分属性信息,我们可以自行管理想要的属性信息。
我们输入F或者f,进入字段管理功能,用于选择想要的字段信息
按键功能↑、↓光标上下移动选择空格、d切换s设置为排序依据字段a、w在4种窗口中切换:1.默认,2.使命,3.内存,4.用户Esc键、q退出当前窗口  
4、交互下令详解

top的功能许多,基本可以大概查看进程的各种状态信息,其中还有一些交互式的下令,方便我们更好的查看体系状态。
   在top主界面中,我们输入下面的下令
下令功能h、?帮助信息查看,涵盖所有的快捷键空格、回车按键手动革新界面信息q、ESC按键退出B粗体表现功能d、s改变隔断时间E、e切换内存表现的单位,从KiB到EiBg然后输入1-4其中一个数字,选择哪种窗口(1.默认,2.使命,3.内存,4.用户)H进程、线程表现切换k输入PID信息,杀掉一个使命Z改变配色   上面先容了一些比力常见的交互式下令,还有更多必要你去探索哦!
    https://img-blog.csdnimg.cn/img_convert/4e960a350e6134ad5dc58e7f387bb16c.gif    欢迎关注 公号&星球【嵌入式艺术】,董哥原创!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux性能分析——TOP下令详解