1 top
top类似于windows下面的资源管理器。不仅能够从服务器整体上展示服务器的大致情况,还可以看到具体进程耗费资源的情况。 展示内存、cpu、交换分区等信息
如上图:
- 第一行主要描述系统整体信息,同uptime的结果
- 第二行描述进程,总进程数以及各个状态的进程数分布
- 第三行cpu 状态信息
- 第四行内存使用概况
- 第五行交换分区使用概况
下面的一堆就是各个进程的监控了。截图中没有给出。
可以看出,top命令是一个强大生猛的服务器监控利器。它比较全面,可以在排查初期使用top命令迅速缩小
查找范围。但对一些内存的展示单位比较小,看起来不舒服,所以个人更倾向使用下面单个独立的命令。2 uptime
应该是本人几年前第一个接触到服务器监控命令,很简单也很直观。
着重说下load average,这个三个负载数分别是过去的1/5/15分钟内的平均负载数。
下面就说下这个负载数具体代表什么意义了? 这个负载主要指的是处于 runnable 或者 uninterruptable
状态下的进程数。runnable 状态就是进展正在或者等待使用cpu资源,而uninterruptable(不间断)状态
就是进程正在请求一些IO,如等待请求磁盘。
从负载的定义可以看出,负载的高低对于不同机器并不是绝对的,如果负载是1,那么对于单核的机器来说
说明,机器一直在处理进程,但在一个四核的机器上,说明4/3的cpu资源都在处于空闲状态。
因此,对于4核机器来说,只有当负载长时间远大于4的时候,我们认为机器资源存在短板。
可能是cpu或者磁盘等。因此,可以看出uptime是个粗范围的衡量。
当服务器卡顿的时候,第一反应使用uptime来确认服务器的负载是否过高。
另外,切记 uptime 的前提是要清楚机器的核数。
3 free
当使用uptime确认负载过高后,可以使用free命名来确认内存是否正常。free -m命令是以MB为单位来显示
的。实际上,作为一个命令使用起来是简单的,前提是要理解linux下的机制,你看起来就行1+1=2那么简单,
否则你看到的就是一堆%@¥¥&%¥@火星文。所以,free命名是用来监控内存的,因此前提要了解 Linux下的内存机制,这里限于篇幅与主题不进行深入讨论。这里需要注意的是,看还有多少内存可以使用并不是看第一行的free,而是看第二行的free。所以对于
这台机器实际上还有6381M可以使用。到底什么时候内存是不足呢?一般交换分区的使用是一个重要的信号,但这并不是说,交换分区一旦被使用
了就是内存不足了,而是通过观察发现,内存被几乎用光,而且长时间使用交换空间,外加服务器运行迟缓 这个时候基本可以判断是内存不足了。关于交换分区的讨论可能又是一个比较深入的话题,这里不再展开。4 iostat
iostat 命名可以监控IO 设备的运行状况。
如: iostat -dxh 3 5
其中 -d 表示展示磁盘信息 x 显示一些扩展信息 h 统一以kb为单位展示
【参考&&扩展阅读】
进程状态说明:
https://blog.csdn.net/tianlesoftware/article/details/6457487
https://www.cnblogs.com/chenpingzhao/p/5161844.html