本文轉自調整虛擬記憶體,支持原創、尊重原創,分享知識!個人發現有些翻譯不當的地方,稍微做了下修改、調整。如果英文足夠NB,建議閱讀英文。 虛擬記憶體通常被進程、文件系統緩存以及內核消耗。虛擬記憶體的使用由很多因素決定,受以下參數影響: swappiness 參數值可為 0-100,控制系統 swap 的使...
本文轉自調整虛擬記憶體,支持原創、尊重原創,分享知識!個人發現有些翻譯不當的地方,稍微做了下修改、調整。如果英文足夠NB,建議閱讀英文。
虛擬記憶體通常被進程、文件系統緩存以及內核消耗。虛擬記憶體的使用由很多因素決定,受以下參數影響:
swappiness
- 參數值可為 0-100,控制系統 swap 的使用程度。高數值可優先系統性能,在進程不活躍時主動將其轉換出物理記憶體。低數值可優先互動性並儘量避免將進程轉換處物理記憶體,並降低反應延遲。預設值為
60
。 -
Warning
Since RHEL 6.4, settingswappiness=0
more aggressively avoids swapping out, which increases the risk of OOM killing under strong memory and I/O pressure. A lowswappiness
value is recommended for database workloads. For example, for Oracle databases, Red Hat recommends aswappiness
value of10
. min_free_kbytes
- 保證系統間可用的最小 KB 數。這個值可用來計算每個低記憶體區的高水位線,然後為其大小按比例分配保留的可用頁。
-
可破壞您系統的極限值
設定這個參數時請小心,因為該值過低和過高都有問題。min_free_kbytes
太低可防止系統重新利用記憶體。這可導致系統掛起並讓 OOM 殺死多個進程。 但將這個參數值設定太高(占系統總記憶體的 5-10%)會讓您的系統很快會記憶體不足。Linux 的設計是使用所有可用 RAM 緩存文件系統數據。設定高min_free_kbytes
值的結果是在該系統中花費太多時間重新利用記憶體。 dirty_ratio
- 規定百分比值。當臟數據組成達到系統記憶體總數的這個百分比值後開始寫下臟數據(pdflush)。預設值為
20
。 dirty_background_ratio
- 規定百分比值。當臟數據組成達到系統記憶體總數的這個百分比值後開始在後端寫下臟數據(pdflush)。預設值為
10
。 drop_caches
- 將這個值設定為
1
、2
或者3
讓內核放棄各種頁緩存和 slab 緩存的各種組合。- 1
- 系統無效並釋放所有頁緩衝記憶體。
- 2
- 系統釋放所有未使用的 slab 緩衝記憶體。
- 3
- 系統釋放所有頁緩衝和 slab 緩衝記憶體。
sync
命令。 -
重要
不建議在產品環境中使用drop_caches
釋放記憶體。
swappiness
臨時設定為 50
,請運行:# echo 50 > /proc/sys/vm/swappiness要永久設定這個值,則需要使用
sysctl
命令。有關詳情請參考《部署指南》,網址為http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/。