服务器怎么看程序占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

相关推荐

  • 简米云服务器2核8g性能如何,性价比高吗?

    阿里云服务器2核8g是中小网站、轻量级应用和开发测试场景的甜点配置,多数情况下够用且性价比高,但承载高并发业务会吃力,这个配置卡在入门与进阶之间,选对了是省钱,选错了是浪费钱,下面直接拆解这个配置的真实表现、适用边界和选购策略,阿里云2核8g够用吗:先看你的业务画像判断这个配置够不够用,不能只看参数,要看它实际……

    2026年8月26日
    400
  • B/S模式在服务器上怎么运行,BS架构工作原理是什么?

    BS模式(Browser/Server,浏览器/服务器模式)在服务器上的运行逻辑,简单说就是“服务器干活,浏览器展示”,所有业务逻辑、数据存储、计算处理都集中在服务器端完成,用户通过浏览器发送请求,服务器处理后把结果返回给浏览器渲染成页面,整个过程对客户端硬件几乎没有要求,BS模式是什么意思?它和CS架构有什么……

    程序编程 2026年10月22日
    100
  • Ubuntu服务器登录密码忘了怎么办?,怎么重置root密码

    ubuntu服务器密码忘了,最稳妥的办法是通过GRUB引导菜单进入recovery模式重置密码,整个过程不需要重装系统,数据也不会丢,ubuntu服务器忘记root密码,首选GRUB recovery模式大多数Ubuntu服务器默认安装了GRUB引导程序,这是进入系统前的一段菜单界面,你只需要在开机时打断正常启……

    2026年10月20日
    000
  • AIoT有哪些应用?AIoT主要应用领域有哪些

    AIoT(人工智能物联网)的核心价值在于实现了“万物互联”到“万物智联”的跨越,通过人工智能赋予物联网设备独立思考与决策的能力,当前,AIoT应用已深度渗透至智慧家居、工业制造、智慧城市及智慧医疗四大核心领域,正在重塑各行各业的生产方式与生活形态,智慧家居:从单点智能向全屋智能演进智慧家居是AIoT技术最贴近消……

    2026年3月18日
    11100
  • ReCloud新加坡VPS能解锁流媒体吗?新加坡VPS推荐

    ReCloud新上线的新加坡VPS凭借82.115.xx.xx段内网IP、50TB大流量及1Gbps带宽,以月付239元起的亲民价格,成为追求流媒体全解锁与高性价比用户的优选方案,在云服务器市场日益内卷的当下,寻找一款既能稳定解锁Netflix、Disney+等海外流媒体,又具备充足带宽和流量储备的VPS,往往……

    2026年6月26日
    2000
  • 西子奥的斯GeN2服务器到底怎么用,电梯调试故障怎么解决?

    把西子奥的斯GeN2服务器插上控制柜主板的服务口,开机进入主菜单,就能用方向键和确认键完成故障读取、参数调整、井道自学习等操作, 这台手持设备是电梯维保和调试的核心工具,下面按实际操作顺序拆解它的用法,想用好GeN2服务器,先找对控制柜上的服务接口GeN2系列属于无机房电梯,控制柜通常安装在顶层或靠近井道的位置……

    2026年10月7日
    100
  • ajax前端如何向后端传送数据库数据?ajax前后端数据交互实例

    AJAX前端向后端传送数据并非直接连接数据库,而是通过HTTP请求将数据发送给后端服务器接口,由后端负责验证、处理并操作数据库,前端仅负责数据的异步传输与页面局部刷新,很多初学者容易陷入一个误区,认为前端代码可以直接“写入”数据库,这种想法在安全上极其危险,且在技术架构上也是完全错误的,现代Web开发遵循前后端……

    2026年6月4日
    4300
  • 如何通过ASP.NET准确获取HTML表单File控件的本地文件路径?

    在ASP.NET中,当用户通过HTML表单的 <input type=”file”> 元素上传文件时,开发者无法直接、也不应该尝试获取客户端文件在用户本地机器上的完整物理路径(如 C:\Users\John\Pictures\image.jpg),这是出于安全沙箱模型的严格限制,浏览器不会向服务器暴……

    2026年2月6日
    11830
  • RAKsmart促销款低至$0.99/月值得买吗,RAKsmart服务器评测

    RAKsmart促销款低至$0.99/月,适合预算有限的个人开发者、测试环境搭建及轻量级应用部署,但需明确其配置限制与网络特性,在云计算市场内卷日益激烈的2026年,寻找高性价比的服务器资源已成为许多技术从业者的首要任务,RAKsmart作为老牌服务商,其推出的超低门槛促销方案确实吸引了大量关注,对于刚起步的独……

    程序编程 2026年6月29日
    2000
  • 如何构建智能客服?智能客服系统搭建流程

    构建智能客服的核心在于将自然语言处理技术与企业具体业务场景深度耦合,通过“人机协同”模式实现从被动应答到主动服务的转型,从而显著降低人力成本并提升用户满意度,很多企业在搭建智能客服系统时,容易陷入“为了智能化而智能化”的误区,导致机器人答非所问,反而增加了用户的挫败感,真正的智能客服不是简单的关键词匹配机器,而……

    2026年5月25日
    5000

发表回复

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