轻量云服务器资源监控指南:Linux下常用命令实战

2026-05-06 14:32:24

买了一台轻量云服务器跑业务,最怕的就是资源突然跑满而自己完全没察觉。轻量云本身资源相对有限,少则11G,多则48G,一旦CPU或内存被某个进程吃光,网站的响应速度就直接掉下去了。本文不讲空话,直接把查看CPU、内存、磁盘、网络、IO负载的命令和输出解读摆在桌面上。CPU是轻量云服务器最敏感的资源。一个进程跑满单核,整台机器的负载就会明显上升。


top是最通用的CPU监控工具,进入top界面后可以看到CPU使用率的百分比、内存占用、进程列表等。


top

重点关注这行数据:%Cpu(s)后面的us(用户态占用)、sy(内核态占用)、id(空闲)。如果id长期低于20%,说明CPU接近满载。按`P`键可按CPU使用率排序,直接定位占用最高的进程。


轻量云服务器资源监控指南:Linux下常用命令实战


如果系统没有htop,先安装:


# Ubuntu/Debian

apt install htop -y

# CentOS

yum install htop -y

htop

htop以彩色条状图展示每个CPU核心的使用率,并且可以直接用箭头选择进程、按F9杀进程,比top更方便。


查看CPU负载平均值


uptime

输出中最后三列分别是1分钟、5分钟、15分钟的平均负载(load average)。对于轻量云服务器(1核),load average超过1.0说明有进程在排队;对于2核机型,超过2.0才算过载。配合top一起看能判断是真负载高还是短暂波动。


查看CPU详细信息


lscpu

可以确认轻量云的CPU型号、核心数、线程数。部分轻量云的CPU是共享线程的,看到“Thread(s) per core: 2”表示开启了超线程。


轻量云的内存通常只有1-4GB,内存一旦不够,系统就会开始用swap(磁盘虚拟内存),性能会大幅下降。


free命令


free -h

输出中的available才是真正可用的内存。很多新手看到used很高就担心,但Linux会把空闲内存用作缓存(buff/cache),这部分在需要时可以立即释放。重点关注available列,如果长期低于总内存的10%,说明需要升级配置或者排查内存泄漏。


查看内存占用最高的进程


ps aux --sort=-%mem | head -10

按内存使用率倒序排列,取出前10行。一眼就能看到哪个进程吃掉了最多内存。


检查swap使用情况


swapon --show

如果swap使用率持续升高,说明内存已经不够用了。轻量云服务器可以创建swap文件临时缓解,但根本解决方法是增加内存或优化程序。


轻量云的磁盘空间一般20-80GB,日志文件、数据库文件、软件包缓存会不知不觉占满分区。


查看磁盘使用率


df -h

关注Use%列,超过80%就应该开始清理,超过90%会有服务写入失败的风险。特别留意`/dev/vda1``/dev/sda1`这些系统盘分区。


查看大文件目录


du -sh /* 2>/dev/null | sort -hr | head -10

这条命令会统计根目录下每个文件夹的大小,找出占用空间最大的前10个。常见的占用大户是`/var/log`(日志)、`/www`(网站数据)、`/home`


查看磁盘I/O负载


轻量云服务器的磁盘I/O性能通常比普通云服务器低,大量读写时会卡顿。


iostat -x 1 3

如果没有iostat,安装sysstat包:


apt install sysstat -y  # 或 yum install sysstat -y

重点关注`%util`列,如果持续超过80%,说明磁盘已经很忙了。`await`列是平均I/O等待时间,超过20ms就属于高延迟。


实时监控I/O进程


iotop

类似top,但只显示磁盘读写活动。按`o`键只显示正在读写的进程。如果看到`mysqld``java`持续高I/O,就要检查对应应用的问题。


轻量云服务器的带宽通常有限(3Mbps5Mbps10Mbps居多),带宽跑满的时候网站加载会非常慢。


查看实时网络流量


nload

需要安装:`apt install nload -y`。会显示进站(Incoming)和出站(Outgoing)流量,以Mbps为单位。如果接近服务器购买时的带宽上限(例如5Mbps对应约0.6MB/s),就是带宽瓶颈了。


查看端口监听和连接数


ss -tlnp

列出所有监听的TCP端口以及对应的进程。可以用来检查NginxMySQLRedis等服务是否正常监听。


查看当前TCP连接数:


ss -s

如果TCP连接数突然暴涨,可能是遭受攻击或者程序没有及时释放连接。


查看每个IP的连接数


netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10

统计连接本服务器的远程IP及其连接数。如果某个IP的连接数异常高(上千),可以考虑用防火墙封禁它。


如果不想手动输入多条命令,可以用`dstat`一次看CPU、内存、磁盘、网络的综合情况。


dstat -c -m -d -n 2

安装方法:`apt install dstat -y`。每隔2秒刷新一次,按Ctrl+C退出。


把常用资源采集写入脚本并配合crontab执行,就可以记录历史负载数据,方便回溯排查问题。


#!/bin/

LOG_FILE="/var/log/server_status.log"

echo "=== $(date) ===" >> $LOG_FILE

echo "CPU负载: $(uptime | awk -F 'load average:' '{print $2}')" >> $LOG_FILE

echo "内存使用: $(free -h | awk 'NR==2{print $3"/"$2}')" >> $LOG_FILE

echo "磁盘使用: $(df -h / | awk 'NR==2{print $5}')" >> $LOG_FILE

echo "" >> $LOG_FILE

保存为`/usr/local/bin/check_resources.sh`,添加执行权限。然后在crontab中添加每小时执行一次:


0 * * * * /usr/local/bin/check_resources.sh

这样系统会每小时记录一次资源快照,出问题时可以回看历史数据,确认是从哪个时间点开始异常的。


查看轻量云服务器资源占用不需要复杂的第三方监控软件,Linux自带的命令组合完全够用。日常排查时遵循这个顺序:先用`top``htop`CPU和内存概况,再用`free -h`确认内存可用量,接着用`df -h`检查磁盘空间,最后用`nload``dstat`确认网络带宽是否达到上限。遇到I/O卡顿时用`iostat -x`追查原因。




本文地址:https://www.htstack.com/news/117805.shtml

特别声明:本网站部分文章内容由 AI 技术辅助生成,旨在为您提供基础信息参考。请注意,AI 生成内容可能存在时效性偏差或与本公司实际政策不完全一致的情况,本文章所展示的产品介绍、服务流程、价格及优惠信息,均不构成最终服务承诺,实时准确信息请咨询在线客服。




请选择发起聊天的方式: