問題現象
使用Linux執行個體時,出現如下現象。
系統運行卡頓、服務響應時間長度較長、應用效能下降等問題。
通過ECS控制台查看執行個體記憶體使用量率監控時,發現記憶體使用量率過高(參考值:當前記憶體使用量率> 80%,可認為記憶體使用量率過高)。
收到記憶體使用量率超過設定閾值的警示資訊。
可能原因
引起記憶體使用量率過高的常見原因如下:
異常的進程或服務佔用大量記憶體,導致記憶體使用量率過高。
業務程式的業務流量過大,執行個體的實體記憶體不足以支撐業務開展所需的記憶體用量。
排查步驟
使用top查看執行個體記憶體使用量率情況
您可以參考以下步驟,解決記憶體使用量率過高的問題。
遠端連線ECS執行個體。具體操作,請參見通過SSH的方式串連執行個體(Linux)。
尋找當前執行個體中佔用記憶體過高的進程。
執行如下命令,從進程維度查看CPU、記憶體等資源的使用方式。
top說明您可輸入小寫字母q退出top命令。
按下
M鍵以按照進程的記憶體使用量率進行排序,回顯資訊樣本如下,表明進程號為13183的進程佔用最多的記憶體。
系統摘要資訊及進程指標監控欄位說明如下:
處理記憶體使用量率高的問題
記憶體佔用較多問題的原因及解決方案如下。
問題現象 | 原因 | 解決方案 |
單個使用者程式或進程長時間佔用大量記憶體 | 異常程式,進程佔用過多記憶體。 |
|
正常使用者程式或進程長時間佔用大量記憶體資源。導致記憶體使用量率較高。 | 該程式為正常業務程式或進程,運行時佔用過多記憶體資源。 | 如果執行個體出現記憶體資源瓶頸,您可以結合實際情況選擇相應的處理策略。
|
單個程式或進程偶發過高記憶體佔用,但期間較短,且發生頻率較低。 | 程式或進程中存在瞬時流量或定時任務,導致短時間內消耗大量記憶體。 |
|
沒有單個程式或進程佔用大量記憶體資源,但整體記憶體使用量率較高 | 當前執行個體的服務正常運行所需記憶體資源大於執行個體的記憶體規格。 | 如果執行個體出現記憶體資源瓶頸,您可以選擇升級執行個體規格。相關操作,請參見修改執行個體規格。 |
相關文檔
關於Windows系統記憶體使用量率高的問題排查及解決方案,請參見Windows系統記憶體使用量率較高問題的排查及解決方案。
如果需要提前採集記憶體指標以便分析異常,您可以使用atop工具。相關內容,請參見使用atop工具監控Linux系統指標。