Memory
-/+ 緩衝區/記憶體和交換
什麼時候應該開始使用交換?或者
我怎麼知道我的交換正在被使用?考慮到預設的交換性,至少有時(如果不是總是)
60
另外,為什麼要省略緩衝區/記憶體行,不
free
應該考慮嗎?我總是提到 justfree -got
的輸出。我的記憶體統計數據如下,根本沒有看到交換被使用過。緩衝區/記憶體有什麼可做的嗎?
-bash-3.2$ free -mt total used free shared buffers cached Mem: 64458 24419 40039 0 38 212 -/+ buffers/cache: 24167 40290 Swap: 16386 0 16386 Total: 80845 24419 56425
swappiness 值是預設值。
cat /proc/sys/vm/swappiness 60
需要知道這些,因為我遇到過使用所有62Gigs RAM 的情況。
請賜教。
我怎麼知道我的交換正在被使用?
根本沒有見過交換被使用的情況。
嘗試創建記憶體壓力以使 Linux 頁面換出頁面。在我的系統上,swap 也是 0。然後我執行
stress --vm 30
. 以下是關於壓力的幫助:$ stress --help `stress' imposes certain types of compute stress on your system Usage: stress [OPTION [ARG]] ... .... -m, --vm N spawn N workers spinning on malloc()/free() --vm-bytes B malloc B bytes per vm worker (default is 256MB) --vm-stride B touch a byte every B bytes (default is 4096) --vm-hang N sleep N secs before free (default none, 0 is inf) --vm-keep redirty memory instead of freeing and reallocating
30 個實例
strees
導致記憶體壓力和 Linux 啟動分頁頁面,從vmstat 1
. 見so
專欄:man vmstat: Swap si: Amount of memory swapped in from disk (/s). so: Amount of memory swapped to disk (/s).
vmstat 報告:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 98 0 0 0 0 0 3355728 112016 2052000 0 0 0 0 287 335 3 1 96 0 0 30 0 0 358472 112016 2052000 0 0 0 0 1575 1012 7 74 19 0 0 14 33 141588 99032 60252 1578948 268 141764 404 142080 6896 3249 3 93 0 4 0 31 24 302632 98664 17208 1020240 8280 165008 8308 165236 5686 4114 5 76 0 20 0 11 22 494516 98732 4208 615496 3112 191952 11552 192060 5494 5199 2 64 1 33 0
使用的交換變得足夠大:
total used free shared buffers cached Mem: 7228 1411 5816 0 23 171 -/+ buffers/cache: 1217 6011 Swap: 4647 824 3823 Total: 11876 2236 9640