目錄
? ? ? ??前言:
1、查看系統內存的占用情況
2、找出占用內存高的進程
3、解決方法
4、補充:如果物理內存使用完了,會發生的情況
前言:
? ? ? ?如果一臺服務器內存使用率持續處于一個高峰值,服務器可能會出現響應慢問題。例如ssh操作卡頓,用戶訪問失敗、連接超時等問題。因此,第一時間進行排查故障是至關重要的。下面是排查思路。
1、查看系統內存的占用情況
free -m 命令進行查看
2、找出占用內存高的進程
使用top命令查看,或者是使用htop命令更加直觀。
3、解決方法
情景 | 解決思路 |
應用程序訪問小或者沒有,但是依然占用過高的內存 | 需要去檢查代碼。主要是檢查有沒有代碼是調用內存,但是沒有釋放。 |
應用程序訪問量正常,是一個正常訪問內的內存大小使用 | 需要增加硬件配置。 |
4、補充:如果物理內存使用完了,會發生的情況
情景 | 系統會發生的情況 |
系統關閉swap分區,但是物理內存使用完了 | 系統觸發oom,會殺掉在運行的一個或者多個進程,來釋放內存。這樣會帶來一些不好的影響。可在系統日志中找到一些oom觸發的信息,日志會有記錄。 |
系統啟用了swap分區。然后物理內存使用滿了 | 系統物理內存不足時,系統會把物理內存中一些不經常的程序存放到swap分區,當這些不經常使用的程序再次使用時,會從swap分區恢復到內存中使用。swap本身借助了硬盤來實現的,相對于內存的性能,要差很多,一旦系統將物理內存中數據交換到swap分區中使用,將會導致系統性能的下降。 |
建議:關閉swap分區提高系統性能。