通过top命令,我们可以全面了解当前CPU、内存、进程等一系列当前服务器状态。
首先,我们直接在Linux服务器上输入top,敲回车后就能动态看到当前服务器运行情况,默认是每隔3S刷新一次,这里我截个图给大家分析,别看数据一大堆,听我分析你就会全明白的。
top命令要一行一行看
首行:系统的整体情况概览
名称 系统运行276天3小时40分钟 系统负载:1分钟/5分钟/15分钟级
top - 19:09:08 up 276 days,3:40, 1 user, load average: 0.00, 0.02, 0.05
系统当前时间 当前登录用户数1人 对于单核CPU 1.0表示满负载
第2行:进程状态
进程总任务数:367个 运行进程1个 366个当前睡眠状态 停止进程0个 僵尸进程0个
Tasks: 367 total, 1 running, 366 sleeping, 0 stopped, 0 zombie
第3行:CPU状态
Cpu占用比: 用户空间 内核空间 用户定义优先级 空闲 等待IO 硬中断 软中断 虚拟机
%Cpu(s): 0.7 us, 0.5 sy, 0.0 ni, 98.7 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
第3-4行: 内存和Swap交换区状态
单位 物理内存 总量 空闲 已使用 内核缓存用量
KiB Mem : 5944564 total, 158904 free, 3020092 used, 2765568 buff/cache
交换区 总量 空闲 已使用 可用内存
KiB Swap: 0 total, 0 free, 0 used. 2192080 avail Mem
还有最后需要了解的进程状态
进程ID 优先级 Nice值 虚拟内存 物理内存 共享内存 CPU 内存 CPU总时间 命令
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1090 root 20 -10 50088 920 584 S 1.3 0.0 4190:25 rshim
11285 root 20 20 1088692 146912 12332 S 1.0 2.5 602:17.59 YDService
......
小Tips:NI 负值表示高优先级,正值表示低优先。
top命令快捷操作
看到这里,分析top内容已经难不倒你了,现在再来学习几个帅气的快捷操作。
● shift+e 切换内存显示模式(可重复按键切换)
● z 切换是否彩色显示(可重复按键切换)
● m 切换内存显示模式(可重复按键切换)
● e 切换底部进程中单位的显示模式(可重复按键切换)
● b 切换高亮选中(可重复按键切换)
● W 把当前配置保存到文件中,下次启动top会使用当前的配置
● h 进入帮助菜单 (进入菜单后,可按ESC或q退出帮助菜单)
● q 退出top命令
除此以外,还可以对动态显示的内容进行排序
● 先按f进入字段选择界面,
● 然后按上下键选择要排序的字段,界面会高亮显示,选中合适的内容
● 确定选中操作后,按下s键,激活这个选择。
● 最后按q键退出排序字段选择界面。
结语
看懂上面具体参数后,结合具体报警分析。登录服务器查了下部署的服务,共有10个Java服务,且每个服务设置的-Xmx -Xms都是1344M,那10个服务刚刚跑起来就已经用掉10G机器内存了。最后我们临时的优化方案是降低把一些流量很小的服务初始化堆内存降低一半,减缓服务器压力。