Linux系統效能之記憶體(memory)

2021-07-03 20:01:34 字數 1660 閱讀 3854

在安裝linux系統的時候,通常會選擇這麼個分割槽,這個交換分割槽(swap space)是用來幹啥的呢?

交換分割槽就是使用硬碟的一部分作為記憶體ram的擴充套件。核心會將當前不使用記憶體資料寫到硬碟的這部分,騰出記憶體的這部分空間用以其他的使用。當需要使用這部分資料的時候,重新再讀回到記憶體。讀寫硬碟比起使用真正的記憶體要慢地多,所以程式執行不是很快。

swap分割槽作為乙個虛擬的記憶體,其儲存方式和記憶體一致,採用頁式儲存的方式,在x86的機器上每乙個頁的大小為4kb。當核心將記憶體的資料寫入時,其寫入資料到頁內。核心同時向swap裝置和檔案系統寫記憶體資料。記憶體分頁是記憶體交換的乙個操作,記憶體分頁就是同步記憶體資料到硬碟以正常的時間間隔。一段時間過後,應用程式必定會增長到消耗完記憶體,所以核心每隔一段時間需要掃瞄記憶體,進行記憶體分頁,然後重新宣告未使用的頁面分配給其他的應用程式。這裡使用的演算法叫做pfra(the page frame reclaim algorithm )演算法。其主要是用來釋放記憶體的,此演算法以頁為單位選擇記憶體中的那些頁面需要被釋放。有兩種方式實現pfra,其中乙個是核心程序kswapd,另乙個是「low on memory reclaiming」函式。

kswapd程序,監控核心的兩個引數pages_high和pages_low。如果空閒內存在pages_low以下,那麼kswapd程序開始掃瞄並釋放32個頁面。這個過程會一直持續。直到空閒記憶體的在pages_high之上。

pdflush程序是用來同步任何和檔案系統相關的頁。也就是說當乙個檔案在記憶體中被修改的話,pdflush程序會將修改寫回到硬碟。

然後我們來看vmstat的結果:

# vmstat 1

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

0 0 104300 16800 95328 72200 0 0 5 26 7 14 4 1 95 0

0 0 104300 16800 95328 72200 0 0 0 24 1021 64 1 1 98 0

0 0 104300 16800 95328 72200 0 0 0 0 1009 59 1 1 98 0

swpd:當前交換分割槽的使用總量,單位是kb。因為空閒記憶體達到其閾值,資料寫到swap裝置中。

free:   當前可用的物理記憶體大小。

buff:    快取區記憶體的大小。

so:       寫入swap分割槽的資料大小。

si:        從swap分割槽寫回ram的資料大小。

bo:      寫入檔案系統或者swap裝置的記憶體頁面數。

bi:       從檔案系統或者swap裝置寫回記憶體的頁面數。

關於swap的總結:

1、減少系統主要頁面錯誤,由於系統是利用記憶體快取磁碟cache,故而能夠獲得更好地響應時間。

2、空閒記憶體數量很少是乙個很不錯的訊號,快取去被有效地利用,除了持久地寫入swap裝置和硬碟。

3、如果乙個系統報告任何頻繁的swap裝置操作,這就意味著此系統記憶體不夠用了。

Linux 系統效能

要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,ps命令就是最基本程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態 程序是否結束 程序有沒有殭屍 哪些程序占用了過多的資源等等.總之大部分資訊都是可以通過執行該命令得到。ps是顯示瞬間程序的狀態,並不動態連續...

Linux系統效能問題定位 記憶體洩露

問題描述 500使用者併發執行半小時後效能急劇下降。tps 每秒處理事務數 曲線圖如下 執行前半小時,tps約640 半小時後,tps急劇下降 在20 100範圍內波動 圖 1 平均響應時間曲線圖如下 執行前半小時,平均響應時間約1秒 半小時後,響應時間急劇上公升 在4 20秒範圍內波動 圖 2 備...

Linux系統效能優化

由於各種的i o負載情形各異,linux系統中檔案系統的預設配置一般來說都比較中庸,強調普遍適用性。然而在特定應用下,這種配置往往在i o效能方面不能達到最優。因此,如果應用對i o效能要求較高,除了採用效能更高的硬體 如磁碟 hba卡 cpu mem等 外,我們還可以通過對檔案系統進行效能調優,來...