远程服务器如何排查CPU和内存不足,查看占用率命令有哪些?

远程服务器 CPU 和内存不足,最快的判断路径是“先看整机、再看单进程”:Linux 登录后跑 top 加 free -h 两条命令,Windows 打开资源监视器,多数情况下五分钟内就能分清是资源真的不够用,还是某个进程把资源吃掉了。很多人习惯一登录就盯着 top 上面那行 CPU 百分比,看到红色数字就紧张,其实那个数字只反映一个瞬间,真正要命的信号往往藏在负载值、可用内存和等待时间这几列里,下面按“先判断、再定位、后监控”的顺序拆开讲,命令都给全,能直接复制。

远程看 CPU 和内存,得先搞清楚“不足”是谁的不足

远程服务器的“不足”有三种完全不同的含义,混在一起判断就会一直找错方向。

CPU、内存占用过高如何排查
加载中
CPU、内存占用过高如何排查
大
大数据启示录
1289--
原视频地址

三个最容易被误读的数字

  • 负载值 load average 不是 CPU 使用率。uptime 输出的三个数分别代表过去 1、5、15 分钟的平均运行队列长度,业内比较通用的经验是:负载值持续超过 CPU 核心数,说明有任务在排队;但如果它高到核心数的两三倍,而 CPU 使用率只有一点,问题多半出在磁盘 IO 或者内存换页上。
  • free 里的 free 列小得可怜属于正常现象,Linux 会把闲置内存拿去做 buff/cache,真正该看的是 available 那一列。
  • %wa 和 %steal 这两列经常被忽略,前者是 CPU 等磁盘的时间占比,后者是虚拟化环境里被宿主机“借走”的时间,云主机卡顿但自己进程 CPU 都不高时,先看这两个值。

行业共识认为,判断一台服务器是否真的资源吃紧,至少要连续观察三到五分钟的数据,单次 top 刷新截图没有参考价值。

远程服务器 CPU 占用过高怎么排查?按这个顺序走

第一步:分清是整机高还是单进程高

登录后先执行:

top -b -n 1 | head -20

看两处:第一行 load average,第三行 %Cpu(s) 里的 us(用户态)、sy(内核态)、wa(IO 等待),然后在 top 交互界面里按大写 P 按 CPU 排序,按 1 展开每个核心。

如果所有核心都接近满载,是业务量本身的问题;如果只有一两个核心高,其余很低,通常是单线程程序,加核也没用。

第二步:抓到具体进程和线程

ps aux --sort=-%cpu | head -10
top -H -p <PID>          # 看这个进程内部的线程
pidstat -u -t -p <PID> 1  # sysstat 包,按线程打点

top -H 输出的线程 ID 是十进制,把它转成十六进制,再去 jstack <PID> | grep -A 30 nid=0x<十六进制> 里找,就能对上一个 Java 线程卡在哪一行,这个组合在排查线上 CPU 飙高时特别好用。

第三步:负载高但 CPU 不忙,往 IO 和内存方向找

vmstat 1 5        # 看 r 队列、si/so 换页、wa
iostat -x 1 3     # 看 %util 和 await
cat /proc/pressure/cpu   # PSI,部分新内核支持

si 和 so 有持续非零值,说明内存已经在换页,CPU 高只是表象,真正的瓶颈在内存。

Linux 服务器内存不足如何查看,free 的第一行基本可以跳过

available 才是能用的量

free -h
cat /proc/meminfo | grep -E "MemTotal|MemAvailable|SwapUsed"

判断内存够不够,只看 available,这个数值是内核估算的、在不触发换页的前提下可以分配出去的内存,已经扣掉了大部分不可回收的缓存,它掉到总内存的一成以下,才算真正紧张。

缓存算不算占用

buff/cache 占用高不是坏事,这是内核把空闲内存拿去做文件缓存,进程需要时会自动回收,真正要警惕的是 used 里不可回收的部分,比如共享内存、tmpfs、以及被 slab 吃掉的量:

slabtop -o | head

dentry 或 inode_cache 异常大,有可能是某次批量文件操作留下的。

OOM killer 日志在哪里找

进程莫名其妙消失,八成是被 OOM killer 干掉了,按发行版不同,日志位置不一样:

dmesg -T | grep -i "out of memory"
journalctl -k | grep -i oom          # systemd 系统
grep -i "killed process" /var/log/messages   # CentOS 系

日志里会写明被杀进程的 PID、占用内存量、以及当时的内存压力等级,拿到这些信息,再回头看是哪个进程的内存曲线在涨,方向就明确了。

swap 被用满说明什么

swap 用满本身不致命,但 si/so 持续非零就意味着频繁换页,延迟会飙升到几十毫秒甚至更高,数据库、缓存这类对延迟敏感的进程,swap 使用量最好压到接近于零,可以通过 vm.swappiness 调低来影响内核的换页倾向。

Windows 远程服务器怎么查看 CPU 和内存

远程桌面连上之后,别只开任务管理器。

任务管理器之外的三条路

  • 资源监视器:Win+R 输入 resmon,能看每个进程的磁盘 IO 和网络占用,任务管理器看不到这些。
  • 性能监视器:perfmon,可以订阅计数器并保存到文件,适合排查“每天上午十点卡一次”这类周期性故障。
  • PowerShell 采样:
Get-Counter '\Processor(_Total)\% Processor Time','\Memory\Available MBytes' -SampleInterval 2 -MaxSamples 5

Windows 的“内存不足”还有一层含义是提交内存超出限制,也就是页面文件不够用,任务管理器性能页里能直接看到“已提交”和“限制”两个值,两者贴得很近时,加大页面文件或者加内存都能缓解。

云服务器上的双重视角

简米云、酷番云这类平台控制台自带的监控,看的是宿主机视角的 CPU 和内存,它和系统内部看到的数据有出入是正常的,因为虚拟化层有开销,两边对不上时,以云监控的长时间曲线为准,以系统内部数据为准判断具体进程。

云服务器 CPU 和内存监控工具有哪些,免费的够不够用

临时排查用命令行就够,长期盯盘就得靠监控系统,常见组合如下:

方案 部署成本 能解决什么 适用场景
云厂商自带监控 零 基础指标、告警、历史曲线 单云、机器数量少
Netdata 低 秒级采集、开箱即用仪表盘 单机深度观察
Prometheus + node_exporter 中 多机聚合、自定义告警规则 多台服务器统一管理
Zabbix 中高 主机、网络设备一体监控 传统运维体系

免费方案覆盖 CPU、内存、磁盘、网络这些基础指标完全够用,业内专家指出,中小规模业务真正欠缺的是告警阈值的设计经验,工具本身并不缺。

告警阈值怎么设才不吵

  • CPU 使用率不要设 80% 就报警,设成“持续 5 分钟超过 85%”才有意义,单次尖峰基本都是正常业务波动。
  • 内存告警盯 available,别盯 used,available 低于总量的 10% 且持续 10 分钟,再触发。
  • 加一条负载告警,阈值用 CPU 核心数的 1.5 倍,能覆盖 CPU 不高但 IO 卡死的场景。
  • 告警要带机器名、指标、当前值、触发时间,只发一句“服务器异常”的告警等于没发。

没有监控系统时的兜底手段

机器上没装任何 agent,也可以先跑一条后台采样命令攒数据:

nohup sh -c 'while true; do date; free -m | head -2; uptime; sleep 60; done' > /tmp/mem.log 2>&1 &

隔天再看 /tmp/mem.log,趋势一目了然,这个方法粗糙,但能应付临时排障。

把这些串起来

远程服务器排查 CPU 和内存,核心就三件事:用 top 加 free -h 判断是整机不足还是单进程问题,用 vmstat 和 OOM 日志判断是 CPU 瓶颈还是内存或 IO 瓶颈,用云监控或 Prometheus 把历史数据存下来,避免每次都要靠“感觉”,命令都记不住没关系,把这几个场景存成笔记,下次直接贴。

关于远程服务器 CPU 和内存排查的 Q&A

远程服务器 CPU 使用率不高,但操作明显卡顿,是什么原因?

先看 %wa 和 %steal,前者高说明磁盘 IO 慢,可以用 iostat -x 1 看具体是哪块盘、await 有多大;后者高说明宿主机资源竞争激烈,这是云主机的常见情况,换个规格或者换可用区往往比优化代码更有效,还有一种可能是内存换页,vmstat 的 si/so 列有持续数值就能确认。

Linux 内存 available 还有富余,进程却被 OOM 杀掉了,为什么?

OOM killer 触发看的是内存分配请求能否被满足,不完全是 available 的数值,常见诱因有三个:容器内 cgroup 内存限制比宿主机小、进程申请了一大块连续内存但碎片化严重导致分配失败、以及 overcommit_memory 参数设置为严格模式,查看 /proc/<PID>/cgroup 里的内存上限,比看 free 更有针对性。

免费监控工具能替代商业监控吗?

对 CPU、内存、磁盘、网络这四类基础指标的采集和告警,免费工具在功能和精度上已经足够,Prometheus 的单机采集能力可以支撑上千个指标点,Netdata 的默认采集间隔是一秒,差距主要出现在日志聚合、链路追踪、跨云统一视图这些扩展场景,这些能力需要额外组件拼装,而不是基础监控本身不可替代。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/%e8%bf%9c%e7%a8%8b%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%a6%82%e4%bd%95%e6%8e%92%e6%9f%a5cpu%e5%92%8c%e5%86%85%e5%ad%98%e4%b8%8d%e8%b6%b3%ef%bc%8c%e6%9f%a5%e7%9c%8b%e5%8d%a0%e7%94%a8%e7%8e%87%e5%91%bd/

赞 (0)
上一篇 2026年10月23日 14:17
下一篇 2026年10月23日 14:19

相关推荐

  • s6怎么开网络连接电脑连接服务器,怎么设置

    三星S6连接电脑服务器,最直接的办法是开启手机USB网络共享,让电脑通过手机的数据网络上网,再通过网络路径访问服务器,如果你手头没有数据线,或者家里有WiFi环境,也可以先让手机连上WiFi,再开无线热点把网络“转发”给电脑,下面把两种方式的具体操作、电脑端设置以及连接服务器的步骤一次讲清楚,s6怎么开usb网……

    2026年8月22日
    2100
  • 我的世界服务器怎么用nat123映射,内网穿透怎么设置?

    我的世界服务器用nat123映射的核心答案:在nat123客户端添加“非网站应用”映射,把本机内网IP和Java版25565/TCP或基岩版19132/UDP映射到一个外网域名,外网玩家用“外网域名:端口”就能加入, 这套方案适合没有公网IP、路由器后台找不到端口映射选项的玩家,我的世界服务器怎么用nat123……

    2026年10月18日
    200
  • 怎么从箱子上看服务器是几u的,服务器机柜尺寸怎么看?

    从箱子上看服务器是几U的,核心方法就两条:一是找箱体印刷的规格参数栏里的“高度”或“U数”,二是直接量包装箱的高度换算,很多刚接触机房设备的朋友,面对眼前几个大小不一的牛皮纸箱,确实容易犯迷糊,服务器不像普通家电,型号和尺寸之间没有直观的对应关系,箱子上那些密密麻麻的英文参数,看不懂很正常,今天这篇内容,就把……

    2026年10月20日
    200
  • 服务器git怎么搭建?Git服务器搭建详细教程

    在服务器上搭建Git版本控制系统是保障代码资产安全、实现团队高效协作的核心基础设施,其核心价值在于构建了私有化的代码托管中心,彻底解决了代码泄露风险与协同冲突痛点,搭建过程本质上是在Linux服务器端部署Git核心组件、创建版本库、配置SSH密钥认证以及管理用户权限的系统性工程,通过标准化的操作流程,可以在半小……

    2026年4月8日
    8200
  • Hostwinds VPS低至$2.75/月是真的吗?Hostwinds 15周年优惠活动详情

    Hostwinds 15周年促销期间,其搭载G口带宽与1TB流量的VPS最低月付仅需$2.75,提供西雅图、达拉斯及阿姆斯特丹三地机房选择,是追求高性价比与稳定连接用户的理想方案,在云计算市场日益内卷的当下,寻找一款既便宜又稳定的VPS服务商并非易事,Hostwinds凭借十五年的运营积淀,此次推出的周年庆特惠……

    2026年7月6日
    14400
  • 5s显示无法接通激活服务器怎么办,是什么原因

    iPhone 5s提示“无法接通激活服务器”时,先检查网络和日期时间,再尝试更换DNS或恢复模式重刷,多数情况下能顺利进入系统,iPhone 5s激活服务器无法连接怎么办?先别急着刷机很多用户拿到老款iPhone 5s,或者还原系统后卡在激活界面,屏幕上出现“无法接通激活服务器”,这个提示并不代表手机硬件坏了……

    2026年8月26日
    1500
  • 广西桑蚕种养物联网云平台怎么用?桑蚕养殖物联网系统多少钱

    广西桑蚕种养物联网云平台通过整合传感器、自动化控制与大数据分析,实现了从蚕室环境精准调控到蚕茧质量全程追溯的数字化闭环,是提升广西桑蚕产业效率与品质的核心基础设施,为什么广西桑蚕产业急需物联网转型?传统桑蚕养殖长期依赖人工经验,面临劳动力老龄化、环境控制粗放等痛点,随着“数字广西”战略的推进,利用物联网技术解决……

    2026年5月28日
    5000
  • cf登录进去连不上服务器怎么办,连接失败原因是什么?

    cf登录进去连接服务器失败,核心解法就一句话:先查官方服务器状态,再清网络缓存和加速器节点,最后重装或修复客户端,按这个顺序排查,九成情况能解决,cf登录进去连接服务器失败,先别急着重装游戏说实话,这个报错在CF玩家里几乎天天有人遇到,你想想,登录界面都进去了,角色列表都刷出来了,结果点进频道的时候来一句“连接……

    2026年10月18日
    200
  • git怎么让代码和服务器保持一致,有哪些方法?

    为什么你改了代码,服务器上一动没动不少人在本地把代码改得热火朝天,推上去之后跑到服务器上一看,还是老版本,多数情况下不是操作失误,而是你压根没理解git的工作方式,git只负责记录版本和同步历史,本身不会自动把服务器上的工作区变成你想要的样子,想让代码和服务器一致,本质上是在远程仓库、本地仓库和服务器三个节点之……

    2026年10月2日
    100
  • 3ds模拟器动森服务器怎么搭建,联机教程是什么?

    3ds模拟器动森服务器怎么弄?核心答案:用Citra或Lime3DS这类3DS模拟器,把虚拟MAC地址填成可用的十六进制格式,进游戏拿到手机后,在网络选项里填对第三方服务器的地址和端口,就能恢复动森联机功能,这个方案不依赖官方服务器,是目前2026年还能正常联机的主要路子,3ds模拟器动森联机教程:官方下线后……

    2026年10月20日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注