网站栏目结构设计,做软件下载网站,十大广告设计公司,免费网站建设itcask1 top中的字段说明
top是一个实时系统监视工具#xff0c;可以动态展现出 CPU 使用率、内存使用情况、进程状态等信息#xff0c;注意这些显示的文本不能直接使用 追加到文件中。
[rootvv~]# top -bn 1 | head
top - 20:08:28 up 138 days, 10:29, 4 users, load av…1 top中的字段说明
top是一个实时系统监视工具可以动态展现出 CPU 使用率、内存使用情况、进程状态等信息注意这些显示的文本不能直接使用 追加到文件中。
[rootvv~]# top -bn 1 | head
top - 20:08:28 up 138 days, 10:29, 4 users, load average: 0.07, 0.05, 0.05
Tasks: 110 total, 1 running, 109 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.2 us, 0.0 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1798504 total, 97356 free, 500408 used, 1200740 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 1117880 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND1 root 20 0 199480 3436 1844 S 0.0 0.2 30:34.35 systemd2 root 20 0 0 0 0 S 0.0 0.0 0:00.13 kthreadd4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H%Cpu(s): 3.2 us, 0.0 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stus用户空间占用的CPU时间百分比表示运行用户进程的时间。 sy内核空间占用的CPU时间百分比表示运行内核进程的时间。 ni优先级已调整nice进程占用的CPU时间百分比。 id空闲CPU时间百分比表示CPU没有忙于处理任何任务的时间。 wa等待I/O操作的CPU时间百分比表示CPU等待输入/输出完成的时间。 hi硬中断占用的CPU时间百分比表示处理硬件中断的时间。 中断允许硬件设备或软件程序在处理器的当前任务中打断执行以便立即处理某些紧急事件或请求 硬中断是由硬件设备如网卡、硬盘等发起的中断信号通常用于处理设备的紧急请求优先级较高 si软中断占用的CPU时间百分比表示处理软件中断的时间。 软中断则是由软件或操作系统发起的中断用于处理非紧急的任务如网络协议处理或定时器事件优先级相对较低 st被其他虚拟机窃取的CPU时间百分比表示虚拟化环境下被分配给其他虚拟机的CPU时间。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 4050 root 20 0 7393848 946260 7016 S 11.6 47.9 2:02.83 java PID进程的 ID例如 1234 和 5678。 USER进程的所有者例如 root 和 user1。 PR进程的优先级通常是 20。PR 值的范围通常是从 -20 到 19。优先级的数值越小表示进程的优先级越高越容易被调度器分配给 CPU 静态优先级静态优先级是 Linux 内核用于普通进程调度的优先级由进程在启动时设定的 nice 值以及其他因素决定且在进程生命周期内通常保持不变。低静态优先级的进程 会在 CPU 时间分配中被 延迟执行可能会因为其他高优先级进程的执行而受到影响 静态优先级的范围通常是从 100 到 139并由进程的 nice 值 影响。 nice 值为 0 的进程有一个标准的优先级通常为 120 nice 值较小如 -20 会给进程提供较高的静态优先级即更高的数字优先级。 nice 值较大如 19 会导致较低的静态优先级。 实时优先级是操作系统分配的 最高优先级不受 nice 值的影响 NI进程的 nice 值。可以用于影响进程的 PR 优先级 nice 值与调度优先级的关系 nice 值越小进程优先级越高系统调度时更倾向于分配更多的 CPU 时间给该进程nice 值越大进程优先级越低调度器会让其他进程更优先执行该进程会被“让步” nice 值与 PR优先级的关系 nice 值直接影响 PR进程的调度优先级但 PR 还会受到进程的其他因素如静态优先级、实时优先级等的影响 VIRT进程的虚拟内存大小。单位默认是KB RES进程使用的物理内存大小。 SHR进程共享的内存大小。 进程使用的共享内存的大小。共享内存是多个进程之间共享的内存区域允许多个进程访问相同的内存地址空间以实现高效的数据共享。这种方法比其他IPC机制如管道、消息队列等要高效得多因为避免了数据复制的开销 S进程状态S 表示正在休眠。R 表示进程正在运行 常见状态解释R运行中正在运行或就绪等待运行S可中断睡眠等待某个事件D不可中断睡眠通常与 I/O 操作相关T停止由于信号通常是暂停Z僵尸已经终止但父进程尚未收集状态I空闲内核空闲进程W分页等待进程在等待交换或内存分页X死亡进程已经消失前台进程终端控制 %CPU进程占用的 CPU 百分比。 %MEM进程占用的物理内存的百分比。 TIME该进程的累计 CPU 时间。 COMMAND进程名称。
1.top命令可以看到CPU使用率超过100% 在 top 命令中CPU 使用率可以超过 100%在多核或多线程系统中。每个 CPU 核心的使用率可以单独计算因此总使用率是所有核心的使用率之和。例如若有 4 个核心理论上最大值可以达到 400%。如果某个进程充分利用了多个核心CPU 使用率就可能显示为超过 100% 2 top命令用法
top是交互式查看可以再输入其他字母进行交互。
top选项说明-b非交互模式-n只输出1次结果-H查看线程信息-p指定进程PID如 top -p 1234
top交互按键说明f自定义显示的列k终止一个进程需要输入 PID 和信号r重新设置一个进程的优先级需要输入 PID 再输入 优先级P按CPU占用排序M按内存占用排序z进入颜色模式shift 左右选择x标记当前列q退出 topu显示特定用户的进程
高亮查看如下图 3 topawk查看僵尸进程数量
思路截取第二行的倒数第二列
注意awk只能处理非交互式的文本信息 [rootcentos7 ~]# top
top - 13:30:24 up 10 min, 3 users, load average: 0.30, 0.12, 0.07
Tasks: 220 total, 1 running, 219 sleeping, 0 stopped, 0 zombie方法1
[rootcentos7 ~]# top -bn1 | awk NR2 | awk {print $(NF-1)}
0
方法2
[rootcentos7 ~]# top -bn1 | awk NR2 | awk {print $(NF-1),$(NF)}
0 zombie
方法3
[rootcentos7 ~]# top -bn1 | awk NR2{print $(NF-1),$(NF)}
0 zombie4 htop 图形化操作
htop需要手动安装yum -y install htop这时可以通过鼠标点击终端来切换需要查看的指标 5 系统负载高了如何排查
排查原因CPU高 uptime 查看负载情况top查看用户/系统CPU高 IO高 top命令的第三行wa表示IO状态iotop查看 最后结束对应进程
IO命令说明-bn通top-o只查看正在读写的进程
5.1 vmstat 命令介绍
系统监视工具查看swap统计信息以及系统的整体状态。vmstat 还可以关于进程、内存、分页、块 I/O、陷阱和 CPU 活动的详细信息
vmstat 5 3显示虚拟内存统计信息每 5 秒报告一次共报告 3 次vmstat -d查看磁盘信息vmstat -p /dev/sda打印sda磁盘信息vmstat -s显示各种事件的总计vmstat -t在输出中包含时间戳
vmstat输出列说明r运行队列中等待 CPU 的进程数量b等待 I/O 的进程数量swpd已使用的虚拟内存swap的大小单位是 KBfree空闲内存的大小单位是 KBbuff用作缓冲区的内存量单位是 KBcache用作缓存的内存量单位是 KBsi从磁盘交换到内存的交换数据量单位是 KB/s如果 si 值较高说明系统可能存在内存压力频繁进行磁盘交换so从内存交换到磁盘的交换数据量单位是 KB/s如果 so 值较高可能表示内存不足bi每秒从块设备磁盘读取的数据量单位是 KB/sbo每秒写入到块设备磁盘的数据量单位是 KB/sin每秒中断的次数通常与硬件如磁盘或网络接口或其他外部事件有关cs每秒上下文切换的次数如果此值很高可能表明系统负载较重us用户空间用户进程占用的 CPU 时间百分比表示应用程序的计算负载sy内核空间系统进程占用的 CPU 时间百分比表示内核或系统进程的负载idCPU 空闲时间百分比waCPU 等待 I/O 完成的时间百分比st被虚拟化环境占用的 CPU 时间百分比如被 hypervisor 占用
每2秒刷新一次查看
[rootqwe~]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 0 159096 159024 940948 0 0 4 8 1 1 1 1 99 0 00 0 0 160564 159024 940892 0 0 0 0 1051 1633 1 1 99 0 00 0 0 156708 159024 941220 0 0 0 0 2927 2673 1 2 97 0 0tps每秒 I/O 操作次数kB_read/s每秒读取的 KB 数kB_wrtn/s每秒写入的 KB 数kB_read 和 kB_wrtn总读取和写入的 KB 数
5.2 iostat命令介绍
[rootqwe~]# iostat
Linux 3.10.0-1160.108.1.el7.x86_64 (qwe) 11/12/2024 _x86_64_ (2 CPU)avg-cpu: %user %nice %system %iowait %steal %idle0.59 0.00 0.63 0.04 0.00 98.74Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
vda 2.59 7.54 14.87 120804422 2383517655.3 情况1CPU高、Load高
通过top命令查找占用CPU最高的进程PID通过top -Hp PID查找占用CPU最高的线程TID;对于java程序使用jstack打印线程堆栈信息可联系业务进行排查定位通过printf %x tid打印出最消耗CPU线程的十六进制在堆栈信息中查看该线程的堆栈信息
5.4 情况2CPU低、Load高
7.54 14.87 120804422 238351765## 5.3 情况1CPU高、Load高- 通过top命令查找占用CPU最高的进程PID
- 通过top -Hp PID查找占用CPU最高的线程TID;
- 对于java程序使用jstack打印线程堆栈信息可联系业务进行排查定位
- 通过printf %x tid打印出最消耗CPU线程的十六进制
- 在堆栈信息中查看该线程的堆栈信息## 5.4 情况2CPU低、Load高- 通过top命令查看CPU等待IO时间即%wa