小編給大家分享一下Linux性能監(jiān)控之Memory的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、靜樂網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、成都做商城網(wǎng)站、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為靜樂等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
Linux性能監(jiān)控每一個進程啟動時都會向系統(tǒng)申請?zhí)摂M內(nèi)存(VSZ),內(nèi)核同意或者拒就請求。當(dāng)程序真正用到內(nèi)存時,系統(tǒng)就它映射到物理內(nèi)存。RSS表示程序所占的物理內(nèi)存的大小。用ps命令我們可以看到進程占用的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)核會定期將內(nèi)存中的數(shù)據(jù)同步到硬盤,這個過程叫做Memory Paging。同時內(nèi)核也要負責(zé)回收不用的內(nèi)存,將他們分給其他需要的進程。PFRA算法(Page Frame reclaim algorithm)負責(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進行回收。與之相關(guān)的進程是kswapd。在kswapd中,有2個閥值, pages_hige和pages_low。當(dāng)空閑內(nèi)存頁的數(shù)量低于pages_low的時候,kswapd進程就會掃描內(nèi)存并且每次釋放出32個 free pages,直到free page的數(shù)量到達pages_high。具體kswapd是如何回收內(nèi)存的呢?有如下原則:
1. 如果頁未經(jīng)更改就將該頁放入空閑隊列;
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)存過程中還有兩個重要的方法,一是LMR(Low on memory reclaiming),另一個是OMK(Out of Memory Killer)。當(dāng)分配內(nèi)存失敗的時候LMR將會其作用,失敗的原因是kswapd不能提供足夠的空閑內(nèi)存,這個時候LMR會每次釋放1024個垃圾頁知 道內(nèi)存分配成功。當(dāng)LMR不能快速釋放內(nèi)存的時候,OMK就開始其作用,OMK會采用一個選擇算法來決定殺死某些進程。當(dāng)選定進程時,就會發(fā)送信號 SIGKILL,這就會使內(nèi)存立即被釋放。OMK選擇進程的方法如下:
1. 進程占用大量的內(nèi)存;
2. 進程只會損失少量工作;
3. 進程具有低的靜態(tài)優(yōu)先級;
4. 進程不屬于root用戶。
Linux性能監(jiān)控進程管理中另一個程序pdflush用于將內(nèi)存中的內(nèi)容和文件系統(tǒng)進行同步,比如說,當(dāng)一個文件在內(nèi)存中進行修改,pdflush負責(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%的時候,pdflush就會將這些頁面?zhèn)浞莼赜脖P。這個比率是可以調(diào)節(jié)的,通過參數(shù)vm.dirty_background_ratio。
# sysctl -n vm.dirty_background_ratio
Pdflush同PFRA是獨立運行的,當(dāng)內(nèi)核調(diào)用LMR時,LMR就觸發(fā)pdflush將垃圾頁寫回硬盤
以上是“Linux性能監(jiān)控之Memory的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁題目:Linux性能監(jiān)控之Memory的示例分析
分享網(wǎng)址:http://jinyejixie.com/article0/jjesoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、面包屑導(dǎo)航、電子商務(wù)、手機網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)