1. 程式人生 > 其它 >linux資源管理之記憶體

linux資源管理之記憶體

一、基本概念 舉例: 通過栗子,先了解一下指標型別說明和基本概念 linux 系統 free -m命令可檢視系統記憶體使用情況,linux系統使用記憶體的機制是:當一個程式需要程式時,系統會從總記憶體(total)中劃分出比當使用的真實記憶體更多的記憶體放在緩衝區,待應用耗記憶體量增加時,給應用使用。 下面對命令引數做如下說明: 第一列 Mem 記憶體的使用資訊 Swap 交換空間的使用資訊 第一行 total 系統總的可用實體記憶體大小 used 已被被分配掉的記憶體,但很多都會放在緩衝區,未被使用 free 未被分配的實體記憶體 shared 被共享使用的實體記憶體大小 buff/cache 被 buffer 和 cache 使用的實體記憶體大小。即,系統分配,但未被使用的buffers/cache數量 available 還可以被 應用程式 使用的實體記憶體大小 部分版本系統中有-/+ Buffers/cache維度指標: 第三行:-/+ Buffers/cache used:實際使用的記憶體總量。buffers使用部分+cache使用部分 free:實際剩餘的記憶體總量。未被分配的記憶體+buffers未使用部分+cache未使用部分 第四行:Swap 交換分割槽 buffers和cache的含義貌似還不太懂,下面是網路上給出的定義: buffer : 作為buffer cache的記憶體,是塊裝置的讀寫緩衝區,更靠近儲存裝置,或者直接就是disk的緩衝區。 cache: 作為page cache的記憶體, 檔案系統的cache,是memory的緩衝區 資料統計: total=Mem_used+Mem_free Mem_used=Mem_buffers+Mem_cached+(-/+ buffers/cache)_used Mem_free=(-/+ buffers/cache)_free-Mem_buffers-Mem_cached 二、檢視當前記憶體使用
1、ps命令 Linux下獲取佔用記憶體最多的10個程序 ps aux|head -n1;ps aux|grep -v PID|sort -nr -k4|head -n10 2、free -g/m 三、遇到的問題 1、free 與 available 的區別 free 是真正尚未被使用的實體記憶體數量。 available 是應用程式認為可用記憶體數量,available = free + buffer + cache (注:只是大概的計算方法) 擴充套件: Linux 為了提升讀寫效能,會消耗一部分記憶體資源快取磁碟資料,對於核心來說,buffer 和 cache 其實都屬於已經被使用的記憶體。但當應用程式申請記憶體時,如果 free 記憶體不夠,核心就會回收 buffer 和 cache 的記憶體來滿足應用程式的請求。這就是稍後要說明的 buffer 和 cache。 以上內容借鑑:https://www.cnblogs.com/M18-BlankBox/p/5326484.html