服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-09-14 更新于 2026-09-14 简米科技 3,893 字 9 分钟阅读

怎样在日常中监控 VPS 的 CPU 与内存使用?有哪些方法?

导读监控VPS的CPU和内存,核心就一句话:先学会用top和free两条命令应急,再部署一套netdata或Prometheus + Grafana做长期趋势记录,最后配上告警通知,日常就不用盯着看了,这个思路覆盖了从“临时排查”到“长期运维”的完整链路,下面我按实际使用场景,把每一步拆开讲,临时排查:VPS卡了……

监控VPS的CPU和内存,核心就一句话:先学会用topfree两条命令应急,再部署一套netdataPrometheus + Grafana做长期趋势记录,最后配上告警通知,日常就不用盯着看了。

这个思路覆盖了从“临时排查”到“长期运维”的完整链路,下面我按实际使用场景,把每一步拆开讲。

临时排查:VPS卡了,先看这两条命令

网站打不开、SSH敲命令明显延迟,这时候别慌,登进服务器先看两个数据:CPU有没有被打满,内存是不是不够用了,操作系统自带的标准工具,90%的情况能直接定位问题。

CPU占用高怎么看

登录服务器后,输入top回车,屏幕上半部分就是CPU和内存的实时总览,重点关注%Cpu(s)这一行里的us(用户态)sy(系统态)数值,如果这两项加起来长期超过80%,说明CPU确实在忙,忙的原因是什么?看下面进程列表里的%CPU列,按P键可以按CPU占用率排序,哪个进程在最上面,就是它在吃CPU。

如果CPU占用率不高,但系统很卡,要留意wa(I/O等待)数值,如果wa长期超过30%,多半是磁盘读写卡住了,这时候CPU在等硬盘,换CPU没用,得看磁盘IO和swap使用量。

内存和交换分区检查

看内存不用退出top,直接看KiB MemKiB Swap两行。free -h命令的输出更直观,推荐两个一起用,看内存别只看used列,重点看available(可用内存),这才是程序真正能用的量。

Linux的内存策略是“有多少用多少”,空闲内存被文件缓存占用是正常的,如果available接近0,同时Swapused数值持续增长,说明物理内存真不够了,系统开始用磁盘假装内存,这时候性能会断崖式下跌。

行业共识认为,swap使用率持续超过20%,就该考虑升级内存配置或者排查是否有内存泄漏了。

长期监控:别等卡了再看,让工具替你盯着

临时命令只能看当下瞬间,无法回答“昨晚是不是有人跑了个定时任务吃满了CPU”这类问题,长期监控本质是解决三件事:记录历史数据、设置告警、预测容量

轻量级方案:netdata,适合单台VPS

如果你只有一两台VPS,不想折腾,直接用netdata,安装很简单,官方给了一键脚本,装在Ubuntu或Debian系统上两分钟能跑起来,装完后浏览器访问

怎样在日常中监控 VPS 的 CPU 与内存使用?有哪些方法?

http://你的服务器IP:19999,就能看到实时滚动的CPU、内存、网络、磁盘图表。

netdata的特点是可以看到秒级的数据变化,排查偶发性能问题很好用,它内置了告警规则,比如CPU温度过高或内存不足时会发出通知,支持邮件、Telegram、钉钉等多种渠道,唯一缺点是它在服务器上本身会占用约100MB左右内存,配置特别低(如512MB内存)的VPS不建议装。

重量级方案:Prometheus + Grafana,适合集群和多台机器

机器多了或者想要自定义告警规则,就得用Prometheus采集数据、Grafana做可视化、Alertmanager发告警,这套组合是当前开源监控的事实标准,踩坑案例多,网上资料也全。

这套方案有三块拼图:

  • node_exporter:装在被监控的VPS上,暴露一个HTTP接口提供系统指标。
  • Prometheus服务端:定期去抓取node_exporter的数据,存在自带的时间序列数据库里。
  • Grafana:从Prometheus读取数据画图,支持拖拽式仪表盘,模板很多,导入ID就能用。

配置时需要写一个配置文件,指定要采集哪些目标,首次配置比较复杂,但如果管理超过3台VPS,这套方案比挨个登录netdata看效率高得多。

告警规则:监控的最终目的是触发通知

数据图表存了一大堆,没人看等于白搭,设置告警的准则是:别报太多,报一条就要精准解决问题

CPU和内存告警阈值怎么设

行业常规做法是按优先级区分:

  • 警告级(Warning):CPU使用率持续10分钟超过80%,或内存可用量低于20%
  • 严重级(Critical):CPU使用率持续5分钟超过95%,或内存可用量低于5%,或swap使用率超过50%。

熟练运维会把“持续时间”加上,避免短暂的峰值频繁骚扰,比如某活动瞬时CPU到了90%,但两秒就降下来了,这种情况不该收到告警,借助工具内置的for语法,可以设置当CPU > 80%,持续2分钟才触发

告警渠道优先级

推荐首选Telegram Bot钉钉/企业微信机器人,它们免费且推送速度快,邮件适合做日报存档,不适合告警,因为大多数人不会秒回邮件,如果VPS在国内,考虑Server酱或飞书机器人,配置都挺简单,本质上是往一个Webhook地址发一段JSON请求。

怎样在日常中监控 VPS 的 CPU 与内存使用?有哪些方法?

场景实战:网站变慢时的排查顺序

这里整理一个常见场景的排查步骤,希望你能记住,云服务器厂商的工单系统遇到逼疯客服的问题,也多半绕不开这几步。

假设业务是WordPress站点,用户反馈后台打开很慢,按以下顺序操作:

  1. SSH登录VPS,先跑free -h,看内存是否耗尽、swap是否被大量使用,如果swap的used数值在跳,说明内存是瓶颈。
  2. 再跑top,按P看CPU占用最高的进程,如果PHP-FPM占了多个进程且CPU都高,可能是数据库查询慢或有人刷接口。
  3. 如果CPU和内存都正常,用vmstat 1 5r(运行队列)值。r值持续大于CPU核心数,代表任务在排队,体验会明显卡顿。
  4. 都排查不出问题时,检查dmesg | tail,看有没有OOM(内存溢出)杀进程的记录,这通常意味着某些程序内存不够用,被内核强制终止了。

常用命令速查表

这里汇总我平时用得最多的几条命令,建议截图收藏:

场景 命令 关键关注点
实时总览 top us/sy/wa 三类CPU占比,进程CPU排行
内存明细 free -h available列,swap的used值
CPU核心数 nproc 判断是否有4个及以上核心
磁盘IO瓶颈 iostat -x 1 %util是否接近100%
历史负载趋势 uptime 1分钟/5分钟/15分钟负载均值对比
查OOM日志 dmesg | grep -i kill 看是否有进程被强制终止

常见误区:盯错指标比不看还坑

新手监控VPS最常犯的错,是把空闲内存当成可用内存,Linux的内存管理机制把空闲内存用作文件缓存(buff/cache),这部分内存在程序需要时会被内核自动释放,所以看到used占比90%不用紧张,只要available还够,就不用加内存。

第二个误区是盲目追求CPU使用率低,如果一台VPS部署着数据库,CPU长期100%但查询响应很快,这种情况下不一定是坏事,可能在预处理聚合报表,关键看在服务的响应时间,不是看资源利用率数字本身。

第三个误区,忽略了1分钟负载和15分钟负载的差值

怎样在日常中监控 VPS 的 CPU 与内存使用?有哪些方法?

,负载是一个平均数,如果1分钟负载比15分钟高出一大截,说明系统正在经历瞬时峰值,可能是定时任务所致,反过来,1分钟低而15分钟高,说明系统已经持续高负载了一段时间,更值得警惕。

监控工具选型:结合成本和人效

对于多数个人站长,付费的云监控服务通常比自建更省心,简米云、酷番云都自带免费的“基础监控”,包含CPU、内存、带宽的图表数据,能在控制台里直接看,还能设置报警规则,好处是零部署、无额外资源消耗,缺点是历史数据默认只保留几天,想查更早的数据需要开通付费的云监控服务。

第三方探针服务(如UptimeRobot、StatusCake)则是从外部视角探测网站可用性,能够发现服务器活着但网站打不开的情况,这类服务通常有免费额度,监控频率是1分钟或5分钟,对个人项目来说够用了。

如果是低配VPS,比如512MB内存以下(经常出现在廉价VPS和特价VPS中),建议别装太多监控组件,用系统的cron写一个脚本,每隔5分钟把CPU和内存使用率追加到日志文件,再用logrotate做日志轮转,足够了。

Q&A:关于VPS性能监控的高频疑问

VPS的CPU使用率在哪里看是最准的?

以Linux系统为例,以top命令输出为准,云厂商控制台的监控面板数据采样频率通常是10到60秒一次,曲线会被平滑掉,瞬时尖峰显示不出来。top看到的是当前实时数据,如果希望更合理判断整体压力,参照uptime里的15分钟负载比单看CPU百分比更能反映系统稳定性。

用宝塔面板的监控够用吗?

宝塔面板自带的监控图表能满足基础需求,它本质上是读取系统的/proc虚拟文件系统数据并绘制图形,优点是一眼浏览所有资源,适合新手,但这些数据不够细,缺少进程级历史回溯,新装的软件如果短时间内存飙升,面板上只能看到整体内存曲线有波动,很难定位到具体进程,用htop补足进程级实时观察,会适用大多数排查需求。

免费监控工具能撑住多大规模的业务?

个人博客、小型电商站点用netdata或云厂商自带监控完全够用,底层依赖的/proc接口数据采集本身消耗极小,对VPS性能影响通常小于1%,当规模上升到几十台机器、需要做容量规划或统一告警时,免费方案的维护复杂度会显著增加,此时需要评估投入时间成本是选择商业SaaS监控服务还是自建Prometheus体系更划算。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱