Linux 服务器 监控命令
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?