服务器怎么看程序占CPU内存,Linux查看进程占用命令?

服务器上查看程序占用的CPU和内存,Linux优先掌握top、ps、free三个命令,Windows用任务管理器或PowerShell即可;先看整机指标,再按CPU或内存排序定位到具体进程。

服务器上怎么看程序占的CPU和内存:先整机后单进程

很多运维和开发第一次接触服务器时,习惯直接敲top,眼睛盯着%CPU和%MEM看,这样做没错,但容易忽略一个大前提:整机资源还没看,就急着给某个进程下结论,正确顺序是先看整机压力,再从排行里找异常进程。

【Linux运维·第8课】ps/top/kill进程管理|排查CPU内存高占用
加载中
【Linux运维·第8课】ps/top/kill进程管理|排查CPU内存高占用

第一步用uptime和free -h看整机压力

uptime命令会输出当前时间、运行时长、登录用户数,以及三个load average值,这三个值分别代表1分钟、5分钟、15分钟的平均负载,平均负载指队列中正在运行和等待CPU的进程数量,不是CPU使用率,单核服务器上负载持续高于1,说明有进程在排队等CPU;多核服务器要结合核数判断,8核机器负载为6并不算严重。

free -h输出中要重点看available列,used高不代表没内存可用,因为Linux会大量使用内存做文件和目录缓存,available才是更接近“现在还能给新程序分配多少内存”的指标。

这里就涉及一个很常见的混淆点:服务器负载高和cpu占用高区别,CPU占用高表示某个或某些核心正在满负荷执行指令;负载高表示等待CPU的进程多,可能是CPU忙不过来,也可能是进程卡在磁盘IO上根本没占用多少CPU,排查时不能只盯CPU使用率。

指标 含义 高代表什么
CPU使用率 核心正在执行指令的时间占比 计算密集或大量系统调用
load average 运行中+等待CPU的进程数 CPU排队或IO等待
available内存 可分配给新进程的内存量 内存是否真正紧张

用top或htop看进程占用排序

top是绝大多数Linux服务器自带工具,默认每3秒刷新一次,进入top后,按P可以把进程按CPU使用率降序排序,按M按内存使用率降序排序,按c显示完整启动命令行,按1展开每个物理核心,重点关注%CPU、%MEM、RES和TIME+四列,htop交互更友好,支持鼠标点击列头排序,但部分精简服务器需要额外安装。

linux查看进程cpu占用排行:top和ps命令实战

服务器怎么看程序占CPU内存,Linux查看进程占用命令?

top交互命令下的排行

登录服务器后直接运行:

top

然后按P键,进程列表会按CPU占用从高到低排列,多核机器上%CPU可以超过100%,表示进程同时占用了多个核心,比如显示240%代表大约占满2.4个核,按M键则切换为内存排序,看到哪些进程吃内存最多,按q退出。

想要看完整启动命令,可以运行:

top -c

这样发生问题时,能直接看到是哪个脚本、哪个Java服务还是哪个数据库进程在消耗资源。

ps命令一次性输出排行

top适合实时看,ps适合一次性快照或写脚本采集,默认很多服务器一定带ps,哪怕没有top,常用命令如下:

ps aux --sort=-%cpu | head -n 20
ps aux --sort=-%mem | head -n 20

第一条按CPU降序取前20行,第二条按内存降序取前20行,aux表示显示所有用户进程,–sort=-%cpu中的负号表示降序,如果命令被截断,可以加-ww查看完整命令。

工具 适用场景 优点 缺点
top 实时互动排查 按键排序灵活,信息全 默认展示列有限
ps 一次性快照、脚本采集 命令简单,可管道处理 非实时
htop 可视化实时监控 界面友好,支持鼠标 需要额外安装

服务器内存占用高怎么排查:从整机内存结构入手

先看free -h的available和buff/cache

很多人看到free -h里used比例很高就紧张,其实多数情况下是Linux把空闲内存拿去做缓存了,buff/cache是内核缓存文件数据用的,程序需要内存时会自动回收一部分,不会立刻触发OOM,只有当available很小、swap使用持续增大时,才说明内存真正紧张。

行业共识认为,内存高占用要先看buff/cache是否占大头,再定位单进程,排查命令:

free -h
cat /proc/meminfo | grep -E 'MemTotal|MemFree|MemAvailable|Buffers|Cached|Shmem'

定位高内存进程

确认内存确实紧张后,排序找进程:

ps aux --sort=-%mem | head -n 25

注意RSS列是实际物理内存,包含共享库部分,多个进程共享的库会被重复计入RSS,所以单个进程RSS高不一定独占那么多物理内存,容器环境下建议直接用:

服务器怎么看程序占CPU内存,Linux查看进程占用命令?

docker stats --no-stream

这样看到的是容器级别的内存占用,更像真实使用情况,对于Java程序,RSS比-Xmx大属于正常现象,因为堆外内存、元空间和线程栈都不在Xmx范围内,只有内存持续增长且不回落,才结合GC日志判断是否泄漏。

服务器cpu占用100%怎么定位:从进程到线程

定位进程后进一步看线程

先通过top按P键找到CPU占用最高的进程,记录PID,接着查看该进程内部是哪个线程在消耗CPU:

top -H -p PID

在top界面继续按P键,就能看到线程级CPU排行,对于Java应用,把线程TID转成十六进制,再用jstack PID分析栈信息,非Java程序可以用:

strace -p PID

观察程序在反复执行什么系统调用,如果是空转计算,会看到大量普通指令无阻塞;如果是IO问题,会看到read/write调用耗时较长。

CPU占用100%不要只看user态

top中us表示用户态CPU,sy表示内核态CPU,wa表示IO等待,如果wa很高,说明程序在等磁盘IO,CPU并没有真正忙碌,单进程把单核打满时,多核服务器的整体使用率可能只显示较小区间,按1键展开多核视图,才能看到哪个核已经被堵住。

Windows服务器查看进程内存和CPU的常用方式

Windows服务器查看进程内存:任务管理器与PowerShell

Windows服务器操作比Linux直观,打开任务管理器,切换到“详细信息”页,右键点击列标题,勾选CPU和内存列,再点击对应列头即可排序,CPU显示的是使用率百分比,内存显示的是工作集。

命令行方式便于批量采集:

Get-Process | Sort-Object CPU -Descending | Select-Object -First 20 Name,CPU,WS
Get-Process | Sort-Object WS -Descending | Select-Object -First 20 Name,CPU,WS

WS即Working Set,表示进程当前占用的物理内存量,也可以用性能计数器持续监控:

Get-Counter 'Process()% Processor Time'

没有top命令怎么查看内存和CPU占用

没有top命令怎么查看内存和CPU占用:proc文件系统兜底

标准Linux一定有/proc虚拟文件系统,ps被精简掉的可能性极低,但某些容器镜像可能连ps都没有,此时可以直接读/proc:

服务器怎么看程序占CPU内存,Linux查看进程占用命令?

cat /proc/meminfo
cat /proc/stat

/proc/meminfo显示整机内存分布,重点看MemTotal、MemFree、MemAvailable、Buffers、Cached。/proc/stat显示CPU总时间,包括user、nice、system、idle、iowait等,手动算两次差值能得到粗略使用率,但更适合脚本化。

如果只需要看某个进程的CPU和内存,可以读:

cat /proc/PID/status
cat /proc/PID/stat

status文件中VmRSS对应该进程物理内存,stat文件中的第14、15个字段是用户态和内核态CPU时间,容器内部没有任何工具时,宿主机运行docker stats --no-stream是最快的方式。

宝塔面板怎么看程序占用资源

国内很多简米云、酷番云服务器会安装宝塔面板维护站点,宝塔面板登录后在首页或“监控”模块能看到服务器实时CPU和内存使用曲线,但面板图形只能看到整机趋势,看不到具体哪个PHP进程或MySQL查询占资源,精确定位仍需要在面板自带的“终端”里运行top、ps命令,面板适合日常观察趋势,命令行适合故障当场的精准定位。

排查服务器程序CPU和内存占用,核心就是先看整机,再按CPU或内存排序定位进程。 Linux优先用top和ps,Windows优先用任务管理器和PowerShell,精简环境用/proc和docker stats,不用记住所有参数,先掌握按P、按M和ps aux --sort=-%cpu,就能解决大部分日常问题。

服务器上怎么看程序占的cpu和内存最简单的方法是什么?

登录Linux运行top,按P看CPU排行,按M看内存排行;Windows打开任务管理器详细信息页,点击CPU或内存列头排序,两条命令足够覆盖多数场景。

服务器内存占用高怎么排查才不漏掉异常进程?

先看free -h确认available是否真正紧张,再看ps aux –sort=-%mem前20个进程,如果buff/cache占大头可以先排除,容器环境用docker stats,同时查看/proc/meminfo中的Shmem和swap使用趋势。

服务器cpu占用100%怎么定位,和负载高有什么区别?

CPU占用100%表示某些核心正处于满负荷;负载高表示等待CPU的进程多,也可能是磁盘IO导致进程堆积,先用top -H -p PID找到占用高的线程,再结合jstack或strace分析具体代码路径。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/678404.html

赞 (0)
向往a7主机出现服务器过期怎么办,服务器过期怎么恢复使用?
上一篇 2026年9月23日 04:24
服务器宽带1G到底多少钱,带宽租赁价格如何计算?
下一篇 2026年9月23日 04:26

相关推荐

  • 数据库读写压力大该升级物理机配置吗,怎么办

    数据库读写压力大,先别急着升物理机配置,多数情况下根因在架构设计、索引策略或SQL写法,而非硬件算力不足,盲目升配只会抬高成本却治标不治本,升配置前,先问自己一个问题:瓶颈到底出在哪很多团队遇到数据库慢、读写压力大,第一反应是给服务器加CPU、加内存,但行业内有个共识:**相当一部分数据库性能问题,根源不在硬件……

    程序编程 2026年11月6日
    100
  • 企业搭建官网用什么服务器合适,企业官网服务器怎么选

    企业搭建官网,选择服务器最稳妥的方案是采用持牌自营机房的云服务器或物理服务器,兼具性能、合规与成本优势,选服务器前先看懂这几个硬指标很多企业主在搭建官网时,会直接在搜索引擎搜“便宜服务器”或“高防主机”,但忽略了几个关键维度,服务器选型直接影响网站打开速度、数据安全以及后续的备案环节,如果服务商没有正规资质,轻……

    2026年8月1日
    600
  • AIoT双引擎优势是什么?AIoT技术发展趋势

    AIoT(人工智能物联网)的核心优势在于通过“连接”与“智能”的双轮驱动,将传统硬件升级为具备自主决策能力的智能终端,从而在降本增效、体验升级和数据变现三个维度实现质的飞跃,很多人对AIoT的理解还停留在“手机远程控制家电”的层面,这其实只看到了冰山一角,真正的AIoT是边缘计算与云端智能的深度耦合,它不只是让……

    2026年6月17日
    3600
  • 剑三5G客户端为何没有服务器,剑三5G客户端进不去怎么办?

    剑三5g客户端怎么没有服务器?先看这几点就懂了剑三5g客户端显示没有服务器,核心原因是移动端微端默认不加载完整服务器列表,需要手动开启“全部服务器”或切换代理分区,少数情况则是v4与v5版本混装导致选区异常,很多玩家刚下载完客户端进去一看列表空白,就以为服务器没开,实际上是入口藏得太深了,本文按排查顺序帮你理清……

    2026年9月17日
    500
  • AI智能拍照具体是什么,手机AI拍照功能怎么用?

    AI智能拍照是计算摄影与深度神经网络深度融合的产物,旨在通过算法突破光学硬件的物理限制,实现图像质量的自动化与智能化提升,它让手机或相机具备了“看懂”场景并“修好”照片的能力,将复杂的摄影参数调整转化为用户无感知的瞬间处理,这一技术体系不仅改变了影像的生成方式,更重新定义了移动影像的质量标准,使得普通用户无需掌……

    2026年2月21日
    19600
  • 网络dns网络服务器不可用怎么解决

    当网络提示“DNS服务器不可用”时,最直接有效的办法是手动将电脑或路由器的DNS地址改为公共DNS服务器,这能解决绝大多数由DNS解析失败导致的断网问题,电脑DNS服务器不可用怎么解决?先改网络设置大多数情况下,DNS服务器不可用是本地设备或运营商DNS服务器临时故障引起的,手动修改网络连接中的DNS地址,相当……

    2026年8月24日
    1300
  • DayZ单机版服务器连接失败怎么办,无法连接服务器怎么解决?

    DayZ单机版服务器连接失败,绝大多数情况不是游戏本体损坏,而是本地网络、防火墙、Steam离线状态或服务器配置参数没有对齐,按“先本地后网络、先服务端后客户端”的顺序排查,通常十分钟内就能定位问题,DayZ单机版服务器连接失败怎么办?先分清单机与局域网场景很多玩家口中的“DayZ单机版”,其实并不是一个官方独……

    2026年10月15日
    200
  • CF游戏与服务器断开连接怎么办,CF老是掉线怎么解决

    玩CF与服务器断开连接,先别急着重装游戏:多数情况下问题出在本地网络链路或客户端连接状态,按“确认服务器是否维护、测本地丢包、修客户端连接”三步走,十几分钟就能定位大半, 下面这套流程按故障源头分层,从最常见的家庭宽带到网吧环境都覆盖,遇到问题照着做即可,CF与服务器断开连接怎么解决:先分清“全服掉”还是“只有……

    程序编程 2026年10月31日
    300
  • Mac如何远程连接简米云服务器?,Win10远程连接步骤

    Mac用户想要像在Windows 10上那样远程连接阿里云服务器,最直接的办法是使用微软官方出品的Microsoft Remote Desktop(远程桌面)客户端,在Mac上安装后填入服务器的公网IP和账号密码即可一键连接,整个操作流程比传统SSH更符合Windows使用习惯,很多Mac新手第一次接触阿里云……

    2026年10月16日
    100
  • AI智能音响哪个好,2026年高性价比品牌怎么选

    选择AI智能音箱的核心结论在于生态系统的匹配度、音质表现以及智能交互能力的综合平衡,不存在绝对完美的单一产品,只有最适合特定用户场景的设备,对于已经构建或计划构建全屋智能的用户,首选应考虑与家中现有设备品牌生态高度兼容的音箱;对于追求高保真音质的音乐发烧友,应优先考虑具备专业声学调校和硬件堆料的旗舰型号;而对于……

    2026年2月26日
    18400

发表回复

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