查看方式:
1、sysctl -a
2、cat /proc/sys/vm/overcommit_memory
成都創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)按需定制制作,是成都網(wǎng)站制作公司,為成都陽(yáng)臺(tái)護(hù)欄提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開(kāi)發(fā)等。成都網(wǎng)站制作熱線:13518219792
一、overcommit_memory
內(nèi)核源碼中的介紹:
This value contains a flag that enables memory overcommitment.
When this flag is 0, the kernel attempts to estimate(估算) the amount
of free memory left when userspace requests more memory.
When this flag is 1, the kernel pretends there is always enough
memory until it actually runs out.
When this flag is 2, the kernel uses a "never overcommit"
policy that attempts to prevent any overcommit of memory.
This feature can be very useful because there are a lot of
programs that malloc() huge amounts of memory "just-in-case"
and don't use much of it.
The default value is 0.
文件指定了內(nèi)核針對(duì)內(nèi)存分配的策略,其值可以是0、1、2
0: (默認(rèn))表示內(nèi)核將檢查是否有足夠的可用內(nèi)存供應(yīng)用進(jìn)程使用;如果有足夠的可用內(nèi)存,內(nèi)存申請(qǐng)?jiān)试S;否則,內(nèi)存申請(qǐng)失敗,并把錯(cuò)誤返回給應(yīng)用進(jìn)程。0 即是啟發(fā)式的overcommitting handle,會(huì)盡量減少swap的使用,root可以分配比一般用戶略多的內(nèi)存
1: 表示內(nèi)核允許分配所有的物理內(nèi)存,而不管當(dāng)前的內(nèi)存狀態(tài)如何,允許超過(guò)CommitLimit,直至內(nèi)存用完為止。在數(shù)據(jù)庫(kù)服務(wù)器上不建議設(shè)置為1,從而盡量避免使用swap.
2: 表示不允許超過(guò)CommitLimit值
二、vm.overcommit_ratio
默認(rèn)值為:50 (即50%)
這個(gè)參數(shù)值只有在vm.overcommit_memory=2的情況下,這個(gè)參數(shù)才會(huì)生效。
執(zhí)行g(shù)rep -i commit /proc/meminfo
看到CommitLimit和Committed_As參數(shù)。
CommitLimit是一個(gè)內(nèi)存分配上限,CommitLimit = 物理內(nèi)存 * overcommit_ratio(默認(rèn)50,即50%) + swap大小
Committed_As是已經(jīng)分配的內(nèi)存大小。
一般情況:
情況①
overcomot_memory = 0,vm.overcommit_ratio = 50 -----> max_num malloc size = 7.137890GB
情況②
overcomot_memory = 2 ,vm.overcommit_ratio = 50 -----> max_num malloc size = 3.958923GB
情況③
overcomot_memory = 2 ,vm.overcommit_ratio = 99 -----> max_nummalloc size = 6.722099 GB
三、vm.min_free_kbytes
cat /proc/sys/vm/min_free_kbytes centos6.4默認(rèn)66M
67584
該文件表示強(qiáng)制Linux VM最低保留多少空閑內(nèi)存(Kbytes)。
當(dāng)可用內(nèi)存低于這個(gè)參數(shù)時(shí),系統(tǒng)開(kāi)始回收cache內(nèi)存,以釋放內(nèi)存,直到可用內(nèi)存大于這個(gè)值。
vm.vfs_cache_pressure
該項(xiàng)表示內(nèi)核回收用于directory和inode cache內(nèi)存的傾向:
缺省值100表示內(nèi)核將根據(jù)pagecache和swapcache,把directory和inode cache保持在一個(gè)合理的百分比
降低該值低于100,將導(dǎo)致內(nèi)核傾向于保留directory和inode cache
增加該值超過(guò)100,將導(dǎo)致內(nèi)核傾向于回收directory和inode cache。
vm.dirty_background_ratio默認(rèn)為10
所有全局系統(tǒng)進(jìn)程的臟頁(yè)數(shù)量達(dá)到系統(tǒng)總內(nèi)存的多大比例后,就會(huì)觸發(fā)pdflush/flush/kdmflush等后臺(tái)回寫進(jìn)程運(yùn)行。
將vm.dirty_background_ratio設(shè)置為5-10,將vm.dirty_ratio設(shè)置為它的兩倍左右,以確保能持續(xù)將臟數(shù)據(jù)刷新到磁盤,避免瞬間I/O寫,產(chǎn)生嚴(yán)重等待(和MySQL中的innodb_max_dirty_pages_pct類似)
vm.dirty_ratio默認(rèn)為20
單個(gè)進(jìn)程的臟頁(yè)數(shù)量達(dá)到系統(tǒng)總內(nèi)存的多大比例后,就會(huì)觸發(fā)pdflush/flush/kdmflush等后臺(tái)回寫進(jìn)程運(yùn)行。
vm.panic_on_oom 默認(rèn)為0開(kāi)啟 為1時(shí)表示關(guān)閉此功能
等于0時(shí),表示當(dāng)內(nèi)存耗盡時(shí),內(nèi)核會(huì)觸發(fā)OOM~~~~ killer殺掉最耗內(nèi)存的進(jìn)程。
當(dāng)OOM Killer被啟動(dòng)時(shí),通過(guò)觀察進(jìn)程自動(dòng)計(jì)算得出各當(dāng)前進(jìn)程的得分 /proc/<PID>/oom_score,分值越高越容易被kill掉。
而且計(jì)算分值時(shí)主要參照 /proc/<PID>/oom_adj , oom_adj 取值范圍從-17到15,當(dāng)?shù)扔?17時(shí)表示在任何時(shí)候此進(jìn)程都不會(huì)被 oom killer kill掉(適用于mysql)。
/proc/[pid]/oom_adj ,該pid進(jìn)程被oom killer殺掉的權(quán)重,介于 [-17,15]之間,越高的權(quán)重,意味著更可能被oom killer選中,-17表示禁止被kill掉。
/proc/[pid]/oom_score,當(dāng)前該pid進(jìn)程的被kill的分?jǐn)?shù),越高的分?jǐn)?shù)意味著越可能被kill,這個(gè)數(shù)值是根據(jù)oom_adj運(yùn)算后的結(jié)果,是oom_killer的主要參考。
sysctl 下有2個(gè)可配置選項(xiàng):
vm.panic_on_oom = 0 #內(nèi)存不夠時(shí)內(nèi)核是否直接panic
vm.oom_kill_allocating_task = 1 #oom-killer是否選擇當(dāng)前正在申請(qǐng)內(nèi)存的進(jìn)程進(jìn)行kill
網(wǎng)頁(yè)標(biāo)題:Linux內(nèi)核--vm內(nèi)存相關(guān)參數(shù)
轉(zhuǎn)載源于:http://chinadenli.net/article32/gphipc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、全網(wǎng)營(yíng)銷推廣、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)