當前位置:
首頁 > 知識 > Linux操作系統內存淺析

Linux操作系統內存淺析


說到,linux操作系統內存我們並不陌生,應用正常運行時候我們需要關注,應用出core或者內存溢出時候更是我們需要關注,那麼Linux中的內存我們道理了解多少,下面我抽個時間淺析下:


一、內存的組成成員


1、操作系統查看內存使用

我們先執行free -m命令查看內存狀態,會出現如下結果,為了方便說明,稍微加了一些名字作注釋,


如:App_Used、App_Used 。


Total(內存總使用) = Used + free + shared


$free -m

total used free shared buffers cached


Mem: {} {}(App_Used) {} 0 182 {}


-/+ buffers/cache: {}(App_Used) {}


Swap: 2047 0 2047


2、組成圖示


Linux操作系統內存淺析



Shared:多個進程共享的內存總額。用於不同的應用程序共享內存,一般很少會有應用程序去申請,所以使用量都會很少,所以本文就不過多講解。


二、關於buffers和cached


1、buffers 是塊設備讀寫緩存區。

存儲速度不同步的設備或優先順序不同的設備之間傳輸數據的區域。通過緩衝區,可以使進程之間的相互等待變少,從而使從速度慢的設備讀入數據時,速度快的設備的操作進程不發生間斷。


2、cached 緩存存儲器


cached是位於CPU與主內存間的一種容量較小但速度很高的存儲器,因為 CPU的速度遠遠高於主存,為了方便CPU能循環讀取之前使用的數據文件,將文件緩存在cached中,方便再次調用。


cache 的值很大,說明cache住的文件數很多。如果頻繁訪問到的文件都能被cache住,那麼磁碟的讀IO 必會非常小。

三、關於Used


Used 是包括系統和應用總體使用的內存容量。


Used = App_Used + cached + buffers


什麼場景下,我們需要關注什麼樣的參數?


當我們需要關注整體內存的使用量,關注Used數值,可以直觀的看出內容當前系統和應用的整體使用量。


四、關注App_Used數值


App_Used是應用程序所佔用的內存使用量,因為cached、buffers是操作系統來調節的,Used使用越高不能說明當前應用程序就會有問題,所以我們如果要直觀的關注應用程序對內存的使用,就應該關注App_used這個值。


如下情況:容易出現的,系統Used內存使用佔滿了,但是實際應用程序開闢的內存使用量卻不高。



Linux操作系統內存淺析



五、關於cached補充


續上,那麼cached這個是不是我們就不用太關心了呢?當然不是。


cache重要的系統使用是在cpu使用文件時緩存外,另外一個重要的地方就是用於把內存劃分成文件塊進行瓷盤掛載。tmpfs所使用的量,也會計入內存的cached中。


如在一些索引伺服器上,使用這種方式,讓索引數據文件存放在內存中,加快應用的讀取數據速度。


在/etc/mtab下配置來實現內存設備掛載,


tmpfs /index tmpfs rw,size=200G 0 0


所以,我們在關注中應用的伺服器應用內存使用量的時候,需要關注的有不僅有App_Used指標,還有tmpfs的使用量。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 java吧 的精彩文章:

學習java很難嗎?高效學習Java路線圖分享
剛進公司的第一堂培訓——《程序猿的結構化思維》
Java學習系列之不要學習代碼,要學會思考
演算法是內功,程序員別冷落演算法!
萌妹子告訴你php和 java如何選

TAG:java吧 |

您可能感興趣

Linux操作系統篇
PDF操作指南之linux操作系統
Windows的Linux 子系統現已支持「複製/粘貼」操作
Magic Leap One操作系統或叫Lumin
Google決定用gLinux取代Goobuntu Linux操作系統
網時:伺服器如何選擇Linux和Windows操作系統
Google宣布其內部的Linux桌面操作系統將從Ubuntu轉到Debian
致敬Linux系統
快速搭建Linux操作系統和Oracle資料庫
Linux系統內核管理哲學篇之Linux發展所依賴的5大支柱
Google 發布其非 Linux 系操作系統 Fuchsia 說明書
Chrome操作系統終端應用程序暗示其將支持linux
Linux 系統啟動過程
Linux操作系統已擁有自動化的Spectre/Meltdown檢查器
淺談Linux系統MySQL安全配置
Linux工程師學習資料,Linux中的文件系統樹
Windows、macOS和Linux三大操作系統使用體驗比較
Linux系統之Redis擴散病毒繼續分析
基於Ubuntu+python搭建簡易人臉檢測系統
操作系統安全哪家強?Linux超越Windows和macOS