top|系统性能实时监控

命令参数

  • 无参:实时输出系统信息
  • -b:批次输出系统信息,适用于脚本处理
  • -d 秒数:命令刷新的时间间隔
  • -n 次数:命令刷新的次数,达到次数后自动退出
  • -H:以线程模式运行,输出每个进程的线程信息
  • -i:不显示任何闲置(idle)或僵尸(zombie)进程
  • -u 用户名:只显示指定用户名的进程信息
  • -p 进程ID:只显示指定进程ID的进程信息

命令输出字段解释

top - 17:03:29【1】 up 6 min【2】,  4 users【3】,  load average: 0.05, 0.50, 0.34【4】
Tasks: 215 total【5】,   1 running【6】, 214 sleeping【7】,   0 stopped【8】,   0 zombie【9】
%Cpu(s):  2.6 us【10】, 10.3 sy【11】,  0.0 ni【12】, 87.2 id【13】,  0.0 wa【14】,  0.0 hi【15】,  0.0 si【16】,  0.0 st【17】
MiB Mem :   1927.6 total【18】,675.6 free【19】,644.5 used【20】,607.5 buff/cache【21】
MiB Swap:   3890.0 total【22】,890.0 free【23】,0.0 used【24】,1121.1 avail Mem【25】 

PID【26】 USER【27】 PR【28】 NI【29】 VIRT【30】 RES【31】 SHR【32】 S【33】 %CPU【34】  %MEM【35】 TIME+【36】 COMMAND 【37】                                                                                           
1 root      20   0  100908  11676   8288 S   0.0   0.6   0:05.33 systemd     
  1. 系统时间 ↩︎
  2. 开机时间 ↩︎
  3. 已登录系统用户 ↩︎
  4. 1分钟、5分钟、15分钟负载值 ↩︎
  5. 进程数量 ↩︎
  6. 运行状态的进程数量 ↩︎
  7. 休眠状态的进程数量  ↩︎
  8. 停止状态的进程数量  ↩︎
  9. 僵尸状态的进程数量  ↩︎
  10. 用户空间占用CPU百分比 ↩︎
  11. 内核空间占用CPU百分比 ↩︎
  12. 改变过优先级的进程占用CPU百分比 ↩︎
  13. 空闲CPU百分比 ↩︎
  14. IO等待占用CPU百分比 ↩︎
  15. 硬中断占用CPU百分比 ↩︎
  16. 软中断占用CPU百分比 ↩︎
  17. 虚拟化环境中的 CPU 被其他虚拟机(或宿主机)“窃取”使用的时间,这个值只在虚拟化环境中才会出现 ↩︎
  18. 物理内存总量 ↩︎
  19. 交换区空闲量,物理内存空闲量 ↩︎
  20. 物理内存已使用量 ↩︎
  21. 物理内存换存量 ↩︎
  22. 交换区总量 ↩︎
  23. 交换区空闲量,表示当前系统中实际可供系统使用的内存总量。它考虑了系统中已经被分配但尚未使用的内存、缓存以及内核使用的内存等。这个值通常比"free"显示的值要大,因为它考虑了系统在需要时可以释放的内存。 ↩︎
  24. 交换区已使用量 ↩︎
  25. 交换区可用量,表示系统中当前完全空闲的内存总量。它只考虑了没有被系统占用的内存,不包括已经被分配但尚未使用的内存和缓存等。这个值相对于"avail Mem"来说更加保守,因为它不考虑系统在需要时可以释放的内存。 ↩︎
  26. 进程ID ↩︎
  27. 进程所有者 ↩︎
  28. 进程优先级 ↩︎
  29. nice值,负值表示高优先级,正值表示低优先级 ↩︎
  30. 进程使用的虚拟内存总量,VIRT=SWAP+RES,单位kb ↩︎
  31. 进程中使用的、未被换出的物理内存大小,RES=CODE+DATA,单位kb ↩︎
  32. 共享内存大小,单位kb ↩︎
  33. 进程状态,D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 ↩︎
  34. 最新一次刷新到现在的CPU时间占用百分比 ↩︎
  35. 进程使用的物理内存百分比 ↩︎
  36. 进程使用的CPU时间总计,单位1/100秒 ↩︎
  37. 进程名 ↩︎

扩展知识点

用户空间

用户空间是指用户程序运行的环境,其中包含了用户应用程序的代码和数据。
在用户空间中,用户程序只能访问受限的资源和功能,如自身的内存空间、文件系统、网络接口等。
用户程序无法直接访问底层硬件或执行特权指令,必须通过系统调用(System Call)请求操作系统提供服务。
大多数应用程序都在用户空间运行,例如文本编辑器、浏览器、游戏等。

内核空间

内核空间是操作系统内核运行的环境,其中包含了操作系统的核心功能和服务。
在内核空间中,操作系统拥有完全的控制权,可以访问系统的所有资源和硬件,并执行特权指令。
内核空间包含了操作系统的各种核心模块,如进程管理、内存管理、设备驱动程序、文件系统等。
用户程序无法直接访问内核空间,必须通过系统调用向内核发出请求,由内核代为执行操作。

用户空间和内核空间之间的划分是为了保护系统的稳定性和安全性。通过将用户程序和操作系统内核分隔开来,可以防止用户程序直接访问和操作系统的核心部分,从而避免了用户程序对系统的滥用和破坏。同时,通过系统调用机制,用户程序可以请求操作系统提供各种服务,实现了用户程序与操作系统之间的有效交互。

IO等待

指进程因等待输入/输出操作而暂停执行的时间。在计算机系统中,输入/输出操作可能涉及磁盘读写、网络通信、键盘输入等。
当进程发起一个需要等待输入/输出完成的操作时,它会暂停执行,将 CPU 控制权交给其他就绪状态的进程。这时进程处于 IO 等待状态,直到相应的输入/输出操作完成并返回结果后,进程才会恢复执行。
IO 等待在系统的性能分析和优化中是一个重要指标。过多的 IO 等待可能会导致系统性能下降,因为进程无法有效利用 CPU 资源。常见的 IO 等待场景包括磁盘读写速度较慢、网络传输延迟较高等。通过监控和优化 IO 等待时间,可以提高系统的响应速度和整体性能。

硬中断

硬中断是由计算机硬件生成的信号,用于通知 CPU 发生了某种事件或需要 CPU 进行处理。
典型的硬中断包括定时器中断(用于处理系统时钟)、外部设备中断(例如键盘、鼠标、网卡的中断)、硬盘控制器中断等。
当硬件发出中断信号时,CPU 会立即停止当前执行的指令,保存当前的状态,并跳转到预先定义好的中断处理程序(中断服务程序)来处理中断事件。

软中断

软中断是由软件生成的中断信号,用于请求操作系统执行特定的功能或服务。
典型的软中断是系统调用(System Call),用于请求操作系统提供各种服务,例如文件操作、进程管理、网络通信等。
软中断是用户空间程序向内核空间发出的一种请求,它们通常通过特殊的中断指令(例如int 0x80)来触发。当用户程序发出软中断请求时,CPU 会切换到内核空间,并执行相应的中断处理程序来完成用户请求的操作,然后返回到用户程序继续执行。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!