自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于Linux性能監(jiān)控之Memory篇

系統(tǒng) Linux
之前我們已經(jīng)提到了關(guān)于Linux性能監(jiān)控集中情況,下面就讓我們在了解一下關(guān)于Linux性能監(jiān)控的情況

我們首先了解虛擬內(nèi)存和物理內(nèi)存:虛擬內(nèi)存就是采用硬盤來對物理內(nèi)存進(jìn)行擴(kuò)展,將暫時(shí)不用的內(nèi)存頁寫到硬盤上而騰出更多的物理內(nèi)存讓有需要的進(jìn)程來用。當(dāng)這些內(nèi)存頁需pi要用的時(shí)候在從 硬盤讀回內(nèi)存。這一切對于用戶來說是透明的。通常在Linux系統(tǒng)說,虛擬內(nèi)存就是swap分區(qū)。在X86系統(tǒng)上虛擬內(nèi)存被分為大小為4K的頁。

Memory篇

Linux性能監(jiān)控每一個(gè)進(jìn)程啟動(dòng)時(shí)都會(huì)向系統(tǒng)申請?zhí)摂M內(nèi)存(VSZ),內(nèi)核同意或者拒就請求。當(dāng)程序真正用到內(nèi)存時(shí),系統(tǒng)就它映射到物理內(nèi)存。RSS表示程序所占的物理內(nèi)存的大小。用ps命令我們可以看到進(jìn)程占用的VSZ和RSS。

# ps –aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

daemon 2177 0.0 0.2 3352 648 ? Ss 23:03 0:00 /usr/sbin/atd

dbus 2196 0.0 0.5 13180 1320 ? Ssl 23:03 0:00 dbus-daemon-1 --sys

root 2210 0.0 0.4 2740 1044 ? Ss 23:03 0:00 cups-config-daemon

root 2221 0.3 1.5 6108 4036 ? Ss 23:03 0:02 hald

root 2231 0.0 0.1 2464 408 tty1 Ss+ 23:03 0:00 /sbin/mingetty tty1

 內(nèi)核會(huì)定期將內(nèi)存中的數(shù)據(jù)同步到硬盤,這個(gè)過程叫做Memory Paging。同時(shí)內(nèi)核也要負(fù)責(zé)回收不用的內(nèi)存,將他們分給其他需要的進(jìn)程。PFRA算法(Page Frame reclaim algorithm)負(fù)責(zé)回收空閑的內(nèi)存。算法根據(jù)內(nèi)存頁的類型來決定要釋放的內(nèi)存頁。有下列4種類型:

1. Unreclaimable – 鎖定的,內(nèi)核保留的頁面;

2. Swappable – 匿名的內(nèi)存頁;

3. Syncable – 通過硬盤文件備份的內(nèi)存頁;

4. Discardable – 靜態(tài)頁和被丟棄的頁。

除了***種(Unreclaimable)之外其余的都可以被PFRA進(jìn)行回收。與之相關(guān)的進(jìn)程是kswapd。在kswapd中,有2個(gè)閥值, pages_hige和pages_low。當(dāng)空閑內(nèi)存頁的數(shù)量低于pages_low的時(shí)候,kswapd進(jìn)程就會(huì)掃描內(nèi)存并且每次釋放出32個(gè) free pages,直到free page的數(shù)量到達(dá)pages_high。具體kswapd是如何回收內(nèi)存的呢?有如下原則:

1. 如果頁未經(jīng)更改就將該頁放入空閑隊(duì)列;

2. 如果頁已經(jīng)更改并且是可備份回文件系統(tǒng)的,就理解將內(nèi)存頁的內(nèi)容寫回磁盤;

3. 如果頁已經(jīng)更改但是沒有任何磁盤上的備份,就將其寫入swap分區(qū)。

# ps -ef | grep kswapd

root 30 1 0 23:01 ? 00:00:00 [kswapd0]

Linux性能監(jiān)控在回收內(nèi)存過程中還有兩個(gè)重要的方法,一是LMR(Low on memory reclaiming),另一個(gè)是OMK(Out of Memory Killer)。當(dāng)分配內(nèi)存失敗的時(shí)候LMR將會(huì)其作用,失敗的原因是kswapd不能提供足夠的空閑內(nèi)存,這個(gè)時(shí)候LMR會(huì)每次釋放1024個(gè)垃圾頁知 道內(nèi)存分配成功。當(dāng)LMR不能快速釋放內(nèi)存的時(shí)候,OMK就開始其作用,OMK會(huì)采用一個(gè)選擇算法來決定殺死某些進(jìn)程。當(dāng)選定進(jìn)程時(shí),就會(huì)發(fā)送信號 SIGKILL,這就會(huì)使內(nèi)存立即被釋放。OMK選擇進(jìn)程的方法如下:

1. 進(jìn)程占用大量的內(nèi)存;

2. 進(jìn)程只會(huì)損失少量工作;

3. 進(jìn)程具有低的靜態(tài)優(yōu)先級;

4. 進(jìn)程不屬于root用戶。

Linux性能監(jiān)控進(jìn)程管理中另一個(gè)程序pdflush用于將內(nèi)存中的內(nèi)容和文件系統(tǒng)進(jìn)行同步,比如說,當(dāng)一個(gè)文件在內(nèi)存中進(jìn)行修改,pdflush負(fù)責(zé)將它寫回硬盤。

# ps -ef | grep pdflush

root 28 3 0 23:01 ? 00:00:00 [pdflush]

root 29 3 0 23:01 ? 00:00:00 [pdflush]

每當(dāng)內(nèi)存中的垃圾頁(dirty page)超過10%的時(shí)候,pdflush就會(huì)將這些頁面?zhèn)浞莼赜脖P。這個(gè)比率是可以調(diào)節(jié)的,通過參數(shù)vm.dirty_background_ratio。

# sysctl -n vm.dirty_background_ratio

Pdflush同PFRA是獨(dú)立運(yùn)行的,當(dāng)內(nèi)核調(diào)用LMR時(shí),LMR就觸發(fā)pdflush將垃圾頁寫回硬盤

責(zé)任編輯:chenqingxiang
相關(guān)推薦

2010-05-26 18:31:51

Linux性能監(jiān)控

2011-11-08 21:47:37

Linux 監(jiān)控 IO

2010-05-26 18:40:54

Linux性能監(jiān)控

2010-05-26 18:08:30

Linux性能監(jiān)控

2010-12-24 13:25:44

Linux性能監(jiān)控CPU

2010-05-26 17:39:38

Linux性能監(jiān)控

2010-06-25 09:47:29

Linux系統(tǒng)監(jiān)控

2023-11-28 08:43:48

2010-06-07 13:53:06

Linux 內(nèi)存監(jiān)控

2019-03-18 11:15:07

Linux性能網(wǎng)絡(luò)

2020-02-27 13:23:30

LinuxGlances監(jiān)控工具

2013-07-01 17:35:30

2010-12-22 13:14:52

Linux性能監(jiān)測

2010-12-22 13:09:23

Linux性能監(jiān)測CPU

2010-12-22 13:19:43

Linux性能監(jiān)測網(wǎng)絡(luò)

2015-09-16 15:48:55

Android性能優(yōu)化電量

2015-09-16 14:37:50

Android性能優(yōu)化運(yùn)算

2015-09-16 13:54:30

Android性能優(yōu)化渲染

2021-09-13 05:00:09

監(jiān)控Trends 性能

2021-09-11 21:02:24

監(jiān)控Sentry Web性能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號