如果想把Linux服务器运维学精通,简单的会部署网站环境,使用WEB面板和一键包,甚至会手工编译环境还是不够的。虽然不需要系统的学习Linux系统的各种操作理论,但是在遇到需要解决的问题然后查阅文档还是必须要做的。在Linux运维过程中,需要用到很多快捷的命令操作,比如移动、复制、下载,包括今天需要分享的服务器监控命令 – top。
虽然在部落中也有介绍过第三方,以及安装在服务器端的监控软件脚本,但是基本的应用需求并不需要那些复杂和功能较全的监控功能,我们可以采用系统自带的top命令,在这篇文章中,我来较为详细的整合和大家一起学习top命令的应用,查看服务器的运行负载情况,如果能应用熟练,也不需要使用第三方工具。
第一、top界面概况
top
登陆SSH之后,我们输入top命令,然后可以看到这样的界面。
我们可以看到当前服务器的运载情况,肯定有朋友跟一样,看着有点晕乎,又没有图形界面,这个到底有什么用呢?不要紧,下面你肯定会明白。
第二、服务器运行时间和用户及最近负载
在第一输入脚本数据中心,我们可以看到服务器系统的时间,系统已经运行的时间,以及当前的用户数,还可以看到最近5、10、15分钟的平均负载。
第三、任务和进程数据
在第二行中我们可以看到当前服务器的任务数量和进程,包括正在运行、休眠、停止的状态进程。
第四、CPU内存状态
继续往下,我们可以看到当前CPU的负载信息。内存、Swap数据。
us: 运行中CPU占用比
sy : 运行内核进程的CPU
ni:运行已调整优先级的用户进程的CPU
wa : 用于等待IO完成的CPU
hi:处理硬件中断的CPU
si : 处理软件中断的CPU
st:被hypervisor占用的CPU
然后内存使用情况,第一行是物理内存,第二行是虚拟内存。同样的,我们可以用free -m来查看内存。
第五、Top命令字段详解
这里就比较关键了,而且我们需要有耐心,一般不是很懂的朋友跟一样,也不懂看得时间,只知道数据在跳动。如果我们看到下面的解释,应该就不难理解。
1、PID 表示进程标示,唯一的ID标号
2、USER 进程用户名
3、PR 代表进程调度的优先级
4、NI 进程的NICE优先级,数据越小代表越优先
5、VITR 进程使用的虚拟内存
6、RES 驻留内存大小,任务占用的非交换物理内存大小
7、S 进程的状态,其中 D标示不中断的可休眠,R 运行状态,S 睡眠状态,T 被跟踪或已终止,Z 僵尸状态
8、%CPU 至上一次到现在的任务占用CPU
9、%MEM 进程使用的物理内存
10、TIME+ 任务占用CPU的时间
11、COMMAND 运行进程使用的命令
这样我们可以简单的了解上面看到的跳动的数据代表什么意思,比如我们如果被攻击,会出现MYSQL和PHP-FPM占用内存较大,我们知道是PHP执行问题导致的,所以我们需要检查下日志,看看是什么导致的。
第六、Top命令中操作详解
我们在top可视化界面中,看到简单的跳动数据还是不够的,最好我们还需要得到精准的数据信息。
1、帮助 – h
输入”h”我们可以看到在top视图中的所有的命令。
2、刷新数据
默认情况下,界面会是3秒钟自动刷新一次,如果我们需要手工刷新,可以回车或者空格键,就会手工刷新。
3、切换交互分组模式 – A
我们可以进程分组显示进程。
4、指定特定用户进程 – u
如果我们需要筛选出当前某个用户的进程数,敲 u ,然后输入用户,回车之后可以看到当前所有用户的进程。
5、结束某个进程 – k
如果我们需要结束某个进程PID,输入”k”,然后输入PID回车就可以结束某个进程。
总结,相对其他第三方监控工具来看,top看着比较简单,但是还是可以判断是哪个PID导致的内存和CPU占用资源,然后进行相应的处理,最好是配合网站的日志记录解决问题。