命令描述
top -d 5 -n 10显示每 5 秒刷新一次且仅刷新 10次top -u root指定用户 root
linux换行按哪个键
top -p 1102指定进程 PID
top -o %MEM以内存使用率排序
top -c 完整命令,与top命令不同的就是command显示的属性更全,例如java运行的是哪个jar
top -b -n 2批量打印2次全部进程pidof 进程名称获取进程ID
top -p `pidof xxx`指定名称的进程,进程只能有一个进程pid
top命令详解
1.常见操作
2.常见命令
3.参数解析
4.CPU使用率过高排查思路:
top命令详解
1.常见操作
1. 输入top+回车键之后按1,也可以看到有各个cpu运行情况
2. 输入top+回车键之后按shift+M,按内存使用大小降序显示
3. 输入top+回车键之后按shift+p,按cpu使用大小降序显示
4. 输入top+回车键之后按shift+n,以pid降序排序显示
5. 输入top+回车键之后按shift+t,由进程使用的时间累计排序显示
6. 输入top+回车键之后按h:显示帮助信息
7. 输入top+回车键之后按e或E,可以切换每个任务或汇总占用内存的大小的单位, 从 KB、MB、GB、TB、PB 到
EB 循环切换.
8. 输入top+回车键之后,按n,输入0表示无限制,输入n表示显示n条
9. 输入top+回车键之后,按u,输入!前缀,输入username取反过滤用户
10. 输入top+回车键之后,输入r回车,输入pid回车,输入优先级-20(区间-20,19,数字越小代表优先级程度越
高)
2.常见命令
3.参数解析
top - 16:19:54 up 1 day,  4:24,  1 user,    load average: 0.00, 0.01, 0.05
top - 系统时间 up 运行时间,      用户数量,  系统最近5、10和15分钟内的平均负载
Tasks: 122 total,  1 running,  121 sleeping,  0 stopped,  0 zombie
系统总共122进程    1个运行进程  121 休眠进程    0个stop进程  0个僵尸进程
%Cpu(s):  5.0 us, 15.0 sy,  0.0 ni, 75.0 id,  0.0 wa,  0.0 hi,  5.0 si,  0.0 st
us, 用户空间的CPU百分比 sy,内核空间占用的CPU百分比;ni,用户进程内改变过优先级的进程占用CPU百分比 id,空闲CPU的百分比 wa,IO wait: 等待输入输出的CPU时间百分比 hi:处理硬件中断的CPU时间  si: 处理软件中断的CPU时间 st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上
hypervisor也是要消耗一部分CPU处理时间的)。
KiB Mem :  995896 total,  554812 free,  143384 used,  297700 buff/cache
total — 物理内存总量  free — 空闲的内存总量使用中的内存总量  block buffer + page cache 所占用的内存大小
KiB Swap:  2097148 total,  2097148 free,        0 used.  664544 avail Mem
total - 交换分区的总量 free - 空闲的交换分区的总量  used - 已使用的交换分区大小 avail Mem:这个值是系统的估算值,表示可用于启动新程序的物理内存大小(不包括 swap 空间)
平均负载并不是代表CPU的使用率。简单来说,平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。
所谓可运行状态和不可中断状态是指: - 可运行状态(R):正在CPU上运行或者正在等待CPU的进程状态,如上; - 不可中断状态(D):不可中断是指一些正在处于内核关键流程的进程,如果盲目打断,会造成不可预知的后果,比如正在写磁盘的进程,盲目被打断,可能会造成读写不一致的问题,因此这里再次强调load average和CPU使用率并没有直接关系,其值可以大于100。
比如,此时1分钟的平均负载为5.6,而我们的操作系统是4个CPU,那么就代表此时系统负载过高,意味着有160%的的超载进程竞争不到CPU;若负载为2.0,则意味着有50%的CPU空闲。1分钟的系统负荷只是暂时现象,问题不大。应该主要观察"15分钟系统负荷",将它作为服务器正常运行的指标。
buff/cache的内容,在Linux 2.4以前,page cache和buffer cache是两个独立的缓存,Linux 2.4开始page cache和buffer cache进行了统一
PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM    TIME+ COMMAND
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。
VIRT=SWAP+RES RES — 进程使用的、未被换出的物理内存大小,单位kb。
RES=CODE+DATA SHR — 共享内存大小,单位kb
S — 进程状态:D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒