Linux作業系統記憶體淺析
說到,linux作業系統記憶體我們並不陌生,應用正常執行時候我們需要關注,應用出core或者記憶體溢位時候更是我們需要關注,那麼Linux中的記憶體我們道理了解多少,下面我抽個時間淺析下:
一、記憶體的組成成員
1、作業系統檢視記憶體使用
我們先執行free -m命令檢視記憶體狀態,會出現如下結果,為了方便說明,稍微加了一些名字作註釋,
如:App_Used、App_Used 。
Total(記憶體總使用) = Used + free + shared
$free -m
total used free shared buffers cached
Mem: 258355 190110(App_Used) 68245 0 182 176601
-/+ buffers/cache: 13326(App_Used) 245029
Swap: 2047 0 2047
2、組成圖示
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記憶體使用佔滿了,但是實際應用程式開闢的記憶體使用量卻不高。
五、關於cached補充
續上,那麼cached這個是不是我們就不用太關心了呢?當然不是。
cache重要的系統使用是在cpu使用檔案時快取外,另外一個重要的地方就是用於把記憶體劃分成檔案塊進行瓷盤掛載。tmpfs所使用的量,也會計入記憶體的cached中。
如在一些索引伺服器上,使用這種方式,讓索引資料檔案存放在記憶體中,加快應用的讀取資料速度。
在/etc/mtab下配置來實現記憶體裝置掛載,
tmpfs /index tmpfs rw,size=200G 0 0
所以,我們在關注中應用的伺服器應用記憶體使用量的時候,需要關注的有不僅有App_Used指標,還有tmpfs的使用量。
[歡迎大家繼續關注我在imooc的文章 ,]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3016/viewspace-2798030/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 作業系統-記憶體管理作業系統記憶體
- 作業系統——記憶體管理作業系統記憶體
- 淺析Linux Kernel[5.11.0]記憶體管理(一)Linux記憶體
- 【作業系統】記憶體管理概述作業系統記憶體
- linux查詢作業系統資訊(CPU、記憶體、硬碟)Linux作業系統記憶體硬碟
- 作業系統-記憶體、檔案管理作業系統記憶體
- MySQL記憶體管理,記憶體分配器和作業系統MySql記憶體作業系統
- 作業系統——記憶體管理學習筆記作業系統記憶體筆記
- 【Java】 記憶體分配全面淺析Java記憶體
- 計算機作業系統——虛擬記憶體與實體記憶體計算機作業系統記憶體
- 淺析java記憶體管理機制Java記憶體
- Java中字串記憶體位置淺析Java字串記憶體
- Netty 中的記憶體分配淺析Netty記憶體
- Linux系統——架構淺析Linux架構
- 作業系統的記憶體管理你知道嗎作業系統記憶體
- 華納雲:Linux作業系統的記憶體管理方法是什麼Linux作業系統記憶體
- Linux記憶體子系統——Locking Pages(記憶體鎖定)Linux記憶體
- 作業系統(八) -- 記憶體的分段與分頁作業系統記憶體
- 作業系統——記憶體連續分配管理方式作業系統記憶體
- Linux:深入淺出 Linux 共享記憶體Linux記憶體
- Linux系統呼叫機制淺析Linux
- 作業系統HugePage配置導致記憶體驟降探究作業系統記憶體
- 記憶體瘋狂換頁!CPU怒批作業系統記憶體作業系統
- 作業系統思考 第六章 記憶體管理作業系統記憶體
- 淺析虛擬機器記憶體管理模型虛擬機記憶體模型
- 如何檢視linux系統中空閒記憶體/實體記憶體使用/剩餘記憶體Linux記憶體
- 讀懂作業系統之虛擬記憶體頁表(五)作業系統記憶體
- Netty 中的記憶體分配淺析-資料容器Netty記憶體
- 【linux】Linux作業系統Linux作業系統
- Linux作業系統總體介紹!Linux作業系統
- 淺談Linux作業系統的Swap交換區Linux作業系統
- Linux 作業系統Linux作業系統
- Linux作業系統Linux作業系統
- 作業系統:x86下記憶體分頁機制 (1)作業系統記憶體
- 《作業系統真象還原》核心記憶體分佈與載入作業系統記憶體
- Java程式設計技術之淺析JVM記憶體Java程式設計JVM記憶體
- 淺析香港伺服器記憶體過高的原因伺服器記憶體
- ucore作業系統學習筆記(二) ucore lab2實體記憶體管理分析作業系統筆記記憶體