全部產品
Search
文件中心

:Linux執行個體記憶體使用量率較高問題的排查與處理

更新時間:Jun 11, 2025

問題現象

使用Linux執行個體時,出現如下現象。

  • 系統運行卡頓、服務響應時間長度較長、應用效能下降等問題。

  • 通過ECS控制台查看執行個體記憶體使用量率監控時,發現記憶體使用量率過高(參考值:當前記憶體使用量率> 80%,可認為記憶體使用量率過高)。

  • 收到記憶體使用量率超過設定閾值的警示資訊。

可能原因

引起記憶體使用量率過高的常見原因如下:

  • 異常的進程或服務佔用大量記憶體,導致記憶體使用量率過高。

  • 業務程式的業務流量過大,執行個體的實體記憶體不足以支撐業務開展所需的記憶體用量。

排查步驟

使用top查看執行個體記憶體使用量率情況

您可以參考以下步驟,解決記憶體使用量率過高的問題。

  1. 遠端連線ECS執行個體。具體操作,請參見通過SSH的方式串連執行個體(Linux)

  2. 尋找當前執行個體中佔用記憶體過高的進程。

    執行如下命令,從進程維度查看CPU、記憶體等資源的使用方式。

    top
    說明

    您可輸入小寫字母q退出top命令。

    按下M鍵以按照進程的記憶體使用量率進行排序,回顯資訊樣本如下,表明進程號為13183的進程佔用最多的記憶體。

    image

    系統摘要資訊及進程指標監控欄位說明如下:

    系統摘要資訊及進程指標監控欄位說明

    系統摘要資訊欄位說明

    參數(行)

    說明

    top

    主機名稱、資訊採樣日期和時間點。

    • 目前時間

    • up:系統啟動時間

    • user:當前登入使用者數

    • load average:系統負載,即任務隊列的平均長度。三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。

    Tasks

    各種狀態的進程的統計資訊。

    • total:所有任務個數。

    • running:運行中進程個數。

    • sleeping:休眠中進程個數。

    • stopped:停止進程個數。

    • zombie:殭屍進程個數。

    %Cpu(s)

    cpu使用率情況。

    • us:使用者空間占CPU的百分比

    • sy:核心空間占CPU的百分比

    • ni:使用者進程空間改變過優先順序

    • id:空閑CPU佔用率

    • wa:等待輸入輸出的CPU時間百分比

    • hi:硬中斷佔用百分比

    • si:非強制中斷佔用百分比

    • st:steal time

    MiB Mem

    記憶體使用量量統計。

    • total:實體記憶體總量。

    • free:空閑記憶體量

    • used:使用的記憶體量

    • buff/cache:用作核心緩衝的記憶體量。

    MiB Swap

    交換分區使用量統計。

    • total:交換區記憶體總量。

    • free:空閑交換區總量。

    • used:使用的交換區總量。

    • avail Mem:緩衝的交換區總量。

    進程列表指標資訊欄位說明

    參數(列)

    說明

    PID

    進程的ID

    USER

    進程所屬使用者

    PR

    進程的優先順序別,越小越優先被執行

    NI

    進程優先值

    VIRT

    進程佔用的虛擬記憶體

    RES

    進程佔用的實體記憶體

    SHR

    進程使用的共用記憶體

    S

    進程的狀態。

    • R:運行狀態。

    • S:休眠狀態。

    • Z:僵死狀態。

    • D:不可中斷的睡眠狀態

    • T:跟蹤/停止狀態

    %CPU

    進程佔用CPU的使用率

    %MEM

    進程使用的實體記憶體和總記憶體的百分比

    TIME+

    該進程啟動後佔用的總的CPU時間,即佔用CPU使用時間的累加值。

    COMMAND

    進程啟動命令名稱

處理記憶體使用量率高的問題

記憶體佔用較多問題的原因及解決方案如下。

問題現象

原因

解決方案

單個使用者程式或進程長時間佔用大量記憶體

異常程式,進程佔用過多記憶體。

  • 通過在top工具定位到佔用記憶體資源較多的程式的PID,並通過如下方式結束進程。

    警告

    在您結束進程前,請務必確保您瞭解該進程的相關資訊,避免因誤操作導致您的業務中斷。

    • 通過sudo kill -15 <PID>來結束該進程。

    • 在top命令互動模式下結束進程,具體操作,請參見通過PID結束對應進程

  • 如果懷疑進程為惡意程式,您可以對其進行查殺,相關操作,請參見病毒查殺

正常使用者程式或進程長時間佔用大量記憶體資源。導致記憶體使用量率較高。

該程式為正常業務程式或進程,運行時佔用過多記憶體資源。

如果執行個體出現記憶體資源瓶頸,您可以結合實際情況選擇相應的處理策略。

單個程式或進程偶發過高記憶體佔用,但期間較短,且發生頻率較低。

程式或進程中存在瞬時流量或定時任務,導致短時間內消耗大量記憶體。

沒有單個程式或進程佔用大量記憶體資源,但整體記憶體使用量率較高

當前執行個體的服務正常運行所需記憶體資源大於執行個體的記憶體規格。

如果執行個體出現記憶體資源瓶頸,您可以選擇升級執行個體規格相關操作,請參見修改執行個體規格

相關文檔