前言
记得之前买的服务器,有些卡,但又不知道哪里卡,内存不够?cpu性能不够? 遗憾之前对于top不太熟悉,直接将内存/cpu都提升了,当然也多花了些钱,但如何通过top发现你系统的性能如何,或者哪些进程占用比较高,是一个trouble-shooting的必备能力, 所以这节学习分享关于top的命令,为后面关于内存/cpu异常情况下,不至于摸不着头脑
最基本的命令top
一个回车下去,显示下图的内容
分为两部分,上面的头部总体情况,下面列表各个进程的占用情况,先从上面来说
总体情况
-
top - 23:15:44 up 288 days, 10:07, 1 user, load average: 1.53, 1.89, 1.85- 服务器运行288天,共一个用户在线,
- load average:系统1,5,15分钟cpu的负载率%
-
Tasks: 159 total, 1 running, 115 sleeping, 0 stopped, 0 zombie- Tasks:任务数量共159个
- Running:有一个进程正在执行
- Sleeping:115个在偷懒睡眠
- stopped: 0个停止
- zombie: 0个僵尸进程(zombie新学单词僵尸)
-
%Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.2 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 stCpu运行时间占比情况,- us:用户进程占用cpu时间百分比
- sy:内核占用cpu时间百分比
- id:空闲的Cpu事件百分比(id 竟然达到了99 没用起来呀)
- wa:等待I/O的CPu时间百分比
- hi:CPU硬中断时间百分比
- st:CPU软中断时间百分比
如果想要看每核cpu使用情况 按
1
-
KiB Mem : 3875380 total, 198736 free, 1015104 used, 2661540 buff/cache内存使用情况- total:总共多少kb
- free:空闲多少
- used:使用多少
- buff/cache:缓存的
-
KiB Swap: 0 total, 0 free, 0 used. 2759080 avail Mem交换空间(貌似没啥用)- 和上面内存一样的字段意思,偷个懒不写了
各个进程的占用情况
image.png
- PID: 进程号
- USER:所属用户
- PR:进程优先级别,越小越优先被执行
- NI:
- VIRT:占用虚拟内存大小
- RES:占用物理内存大小
- SHR:使用功能内存大小
- S:进程状态,S休眠,R运行,Z僵尸,
- CPU:占用CPU使用率
- MEM:占用内存百分比
- Time:占用cpu总时间
还有对于top之后的一些操作快捷键,最常用的是
- 按内存排序
shift+m - 按cpu排序
shift+p - 按占用cpu时间排序
shift+t
扩展
还有一个比较好使或者好玩的操作
m切换mem的不同显示情况t切换cpu的不同显示情况- 还可以
m+p都按一次 top -c显示完整程序命令top -p $pid显示指定进程信息
今天的分享到此结束,我是哈哈怪,每天笑哈哈
以下致谢/参考学习来源:
参考
本文使用 markdown.com.cn 排版