Openbsd

sysctl kern.bufcachepercent 在 1.7GB 以上的 OpenBSD 5.2 中不起作用嗎?

  • February 14, 2016

我在具有 12GB RAM 的系統上執行 OpenBSD/amd64 5.2,並且我想使用大約 6GB 到 8GB 的​​空間來進行文件系統記憶體。

預設情況下,5.2 amd64 自帶sysctl kern.bufcachepercent設置為20(20%);我已經將它增加到 50%,然後增加到 60%,然後瀏覽了很多絕對超過 10GB 的文件,但是,當我進入時top,我看到了以下行:

Memory: Real: 25M/1978M act/tot Free: 9961M Cache: 1670M Swap: 0K/48G

那是 12GB 中的 1.7GB,不到 15%!我什至嘗試kern.maxvnodes從 117091 增加到 400000(並且kern.numvnodes確實表明所有 400k 的 vnode 都很快得到了利用),但我仍然有不到 2GB 的 RAM 用於記憶體。

在 OpenBSD 5.2 amd64 上是否不能使用 6GB 的 RAM 進行磁碟記憶體?它是否限制在 1.7GB 左右?

我做了一些測試,似乎在我的系統上,相當於 100% 的緩衝區記憶體大約是 2.8GB(我嘗試了 75%,我得到了大約 2.1GB 用於記憶體),所以,百分比是超出類似於大約 2.7 或 2.8GB 的​​值(它可能取決於系統/BIOS 等)。

這似乎與緩衝區高速記憶體被限制為32 位 DMA 記憶體有關,而且很可能即使在 100% 的設置下,所述記憶體也是從與其他核心資源共享的池中取出的,因此,百分比將似乎在任何系統上總是顯著低於 4GB。

http://www.openbsd.org/cgi-bin/cvsweb/src/sys/kern/vfs_bio.c

http://marc.info/?l=openbsd-tech&m=130174663714841&w=2

不,記憶體不限於 1.7 GB。看來,您的機器上有很多小文件 - 如果 numvnodes 已滿,則無法為磁碟記憶體使用額外空間。您可以嘗試更多地增加 numvnodes,或者您可以嘗試通過大文件查找/搜尋。

引用自:https://unix.stackexchange.com/questions/61459