日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

linux查看內(nèi)核版本命令 linux查看內(nèi)存命令( 二 )


3. 虛擬內(nèi)存
現(xiàn)代x86系統(tǒng),計(jì)算機(jī)能夠使用的內(nèi)存會大于其物理內(nèi)存的上限,依靠的就是虛擬內(nèi)存機(jī)制 。Linux支持虛擬內(nèi)存機(jī)制和實(shí)模式機(jī)制 。
實(shí)模式下,計(jì)算機(jī)會直接申請物理內(nèi)存,虛擬內(nèi)存機(jī)制下,系統(tǒng)會把磁盤當(dāng)成內(nèi)存的擴(kuò)展,已增加可使用的內(nèi)存大小 。并通過映射map的機(jī)制,來保存和物理內(nèi)存的真實(shí)對應(yīng)關(guān)系 。
在磁盤和內(nèi)存之間傳送Page的活動叫做swapping或者頁面調(diào)度(paging),被用作虛擬內(nèi)存的磁盤分區(qū)稱為swap 。
可以通過在線添加swap的方式臨時(shí)緩解內(nèi)存不足的問題,但一般不能直接作在線減少swap的操作,很有可能導(dǎo)致進(jìn)程的crash 。具體swap配置方式見5.1swap相關(guān)配置 。
4. OOM
【linux查看內(nèi)核版本命令 linux查看內(nèi)存命令】1.What is OOM?Out Of Memory Killer 是 Linux 的一種系統(tǒng)保護(hù)機(jī)制,在系統(tǒng)內(nèi)存緊張時(shí),kill掉某些進(jìn)程防止系統(tǒng)卡死 。系統(tǒng)通過打分機(jī)制,來實(shí)施對進(jìn)程的殺死操作 。默認(rèn)機(jī)制是通過掃描所有進(jìn)程的內(nèi)存占用,cpu占用等因素,然后打分??(badness),分?jǐn)?shù)越高,進(jìn)程被kill的優(yōu)先級就越高 。
2.哪些行為會讓系統(tǒng)對進(jìn)程進(jìn)行打分?
進(jìn)程使用fork(2)調(diào)用,創(chuàng)建眾多子進(jìn)程時(shí),會加分(+)進(jìn)程已經(jīng)運(yùn)行了很長時(shí)間,或者和使用了大量的CPU時(shí)間,會減分(-)進(jìn)程的nice值如果比較低,會加分(+)進(jìn)程如果是特權(quán)進(jìn)程(privileged),會減分(-)進(jìn)程如果對硬件設(shè)備進(jìn)行直接訪問,會減分(-)
3.在哪兒可以看到進(jìn)程的打分?/proc/<pid>/oom_score
4.手動調(diào)整分?jǐn)?shù)/proc//oom_adj 該文件可以用于調(diào)整在oom發(fā)生時(shí),哪些進(jìn)程應(yīng)該被kill,范圍-16 — +15,默認(rèn)值為0,??
特殊值-17:表示進(jìn)程永遠(yuǎn)不會被kill 。
5.我怎么知道系統(tǒng)有沒有觸發(fā)過OOM?/var/log/messages 、 /var/log/syslog 系統(tǒng)日志或者 dmesg 系統(tǒng)日志診斷工具等都能夠找到網(wǎng)圖如下:
5. 內(nèi)存相關(guān)配置
5.1 swap相關(guān)配置
通過調(diào)節(jié)系統(tǒng)參數(shù),來告訴計(jì)算機(jī)使用swap分區(qū)的權(quán)重1. 簡介
swappiness范圍0-100,默認(rèn)60
0: 表示禁止使用swap
60: 默認(rèn)
100: 瘋狂使用swap
2. 操作方法
# sysctl vm.swappiness=VALUE
# sysctl vm.swappiness=20
或者
# echo VALUE > /proc/sys/vm/swappiness
# echo 30 > /proc/sys/vm/swappiness通過在線增加swap分區(qū)大小,臨時(shí)控制內(nèi)存泄露,內(nèi)存不夠用等異常 。1. 需要root用戶
2. 創(chuàng)建存儲文件
# dd if=/dev/zero of=/home/swap2G bs=1024 count=2M
3. 安全設(shè)置
# chown root:root /home/swap2G
# chmod 0600 /home/swap2G
4. 創(chuàng)建liunx交換分區(qū)
# mkswap /home/swap2G
5. enable 交換分區(qū)
# swapon /home/swap2G
6. 更新fstab文件【注意: 部分操作系統(tǒng)不需要】
# vim /etc/fstab
/home/swap2G none swap sw 0 0
7. 檢查是否生效
#free -m
8. 卸載swap分區(qū)
# swapoff /home/swap2G
5.2 緩存相關(guān)
sync; echo 3 > /proc/sys/vm/drop_caches
0:不釋放
1:釋放頁緩存
2:釋放 dentries 和 inodes
3:釋放所有緩存
5.3 OOM相關(guān)
vm.panic_on_oom是否在觸發(fā) oom 機(jī)制時(shí)觸發(fā) kernel panic 。0表示關(guān)閉(推薦),1表示打開 。kernel panic是指計(jì)算機(jī)遇到了致命的錯(cuò)誤,并且他不知道該怎么處理時(shí)的一種動作——可以類比windows的藍(lán)屏 。我們當(dāng)然不希望每次計(jì)算機(jī)在oom時(shí)就直接藍(lán)屏 。推薦設(shè)置為0vm.overcommit_kbytes:用于限制進(jìn)程能夠申請的最大內(nèi)存,0表示不設(shè)置,如果設(shè)置其他數(shù)值,比如400,則進(jìn)程能夠申請到的最大內(nèi)存為 swap+400kBytesvm.overcommit_ratio:定義了進(jìn)程可以使用的最大內(nèi)存(百分比模式),默認(rèn)為50 。表示配置50之后,進(jìn)程不允許申請超過 swap + 50% * 物理內(nèi)存總量 以上的內(nèi)存vm.oom_kill_allocating_task (Linux 2.6.24+支持)這在內(nèi)存不足的情況下啟用或禁用殺死OOM觸發(fā)任務(wù) 。0表示禁用(默認(rèn)),1表示啟用 ??梢岳斫鉃閛om機(jī)制的開關(guān),默認(rèn)為禁用——表示要讓oom觸發(fā)器正常執(zhí)行 。其他有興趣的話,可以自行man proc

推薦閱讀