Linux服务器性能监控常用工具:htop、iotop、netstat等使用指南
服务器出问题的时候,第一件事是搞清楚资源用在哪了。CPU满了、内存不够、磁盘IO卡死、带宽被占满,不同的症状对应不同的排查工具。Linux系统自带了一批轻量级的监控命令,不用装任何客户端就能用。
一、CPU和内存:top和htop
top是Linux自带的进程查看器,实时显示CPU和内存使用情况。按P按CPU使用率排序,按M按内存使用率排序,按1查看每个CPU核心的负载。如果发现某个进程持续占用超过80%的CPU,可能就是有问题的程序或者被挖矿了。
htop是top的增强版,色彩更丰富,可以用上下键滚动进程列表,按F6排序。最实用的是它能用彩色进度条直观展示CPU和内存占用比例,一眼就能看出资源瓶颈。安装命令:CentOS用yum install htop,Ubuntu用apt install htop。
二、磁盘IO:iostat和iotop
有时候CPU和内存都没问题,但服务器就是慢——那八成是磁盘IO瓶颈。iostat -x 1每秒刷新一次,看%util列,超过80%说明磁盘已经忙不过来了。await列显示IO请求的平均等待时间,超过几十毫秒就需要注意。
iotop更直观,像htop一样列出每个进程的读写速度。装好后执行iotop -o只显示正在IO的进程。Web服务器日志写入量大、数据库频繁刷盘都会造成高IO,用iotop能精确找到是哪个进程在"吃"磁盘。
三、网络连接:netstat和ss
netstat -tlnp列出所有正在监听的TCP端口和对应的进程名。-t只显示TCP,-l只显示监听状态的,-n显示IP而不是域名,-p显示进程PID和名称。如果有端口被占用导致服务起不来,这条命令是最快的排查方式。
ss是netstat的现代替代品,执行速度更快。用法类似:ss -tlnp。排查网络连接数是否超限时,ss -s能汇总显示各种状态的连接数量。ss state established | wc -l可以统计当前建立的连接数,超过服务器上限就需要考虑扩容或者优化应用。
四、磁盘空间和文件系统
df -h查看各分区磁盘使用率,-h参数以GB/MB单位显示。当使用率超过90%时,日志文件、Docker镜像、备份文件是最大的空间占用大户。用du -sh /* | sort -rh | head -10找到根目录下占用最大的10个目录,层层深入定位大文件。
除了磁盘空间,还要关注inode耗尽的问题。df -i查看inode使用率。如果inode用满了但磁盘还有空间,说明小文件太多了,通常是缓存文件或者邮件队列造成的。
五、全系统概览:dstat和glances
dstat在一行里同时显示CPU、磁盘、网络、内存的信息,适合快速看全局。执行dstat -cdngy即可看到CPU、磁盘、网络、内存、系统负载的综合数据。在排查性能问题时先用dstat扫一眼,哪里异常再深入查对应的工具。
glances是功能最全的终端监控工具,除了基本资源监控,还能显示Docker容器状态和传感器温度。安装后用glances启动,按1切换CPU核心视图,按d切换磁盘IO视图,按n切换网络视图。简单说,一台服务器装个glances,大部分日常监控需求都够了。




提供云计算服务