sysctl kern.bufcachepercentは1.7GB以上のOpenBSD 5.2では動作しませんか?

sysctl kern.bufcachepercentは1.7GB以上のOpenBSD 5.2では動作しませんか?

私は12GBのRAMを搭載したシステムでOpenBSD / amd64 5.2を実行していますが、ファイルシステムのキャッシュには約6GBから8GBのメモリを使用したいと思います。

デフォルトでは、5.2 amd64には(20%)sysctl kern.bufcachepercent設定がありますが、2050%に増やして60%に増やして、確かに全体のサイズが10GBを超えるファイルをたくさん見ましたが、と入力するとtop次の行に達しました。

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

12GBのうち1.7GBで15%もダメです!kern.maxvnodes117091から400000に増やそうとしましたが(kern.numvnodes400,000個の仮想ノードがすべて迅速に利用されることがわかりました)、まだキャッシュ用のRAMが2GB未満でした。

OpenBSD 5.2 amd64では、ディスクキャッシュに6GBのRAMを使用できませんか?約1.7GBに制限されていますか?

答え1

いいえ、キャッシュは1.7GB程度に制限されません。コンピュータに小さなファイルがたくさんあるようです。 numvnodesがいっぱいになると、ディスクキャッシュに使用できる追加のスペースはありません。 numvnodesを増やしたり、大容量ファイルで検索/検索を試したりできます。

答え2

私はいくつかのテストをしましたが、私のシステムで100%のバッファキャッシュに対応するのは約2.8GBのようです(75%を試してみて、キャッシュの約2.1GBを得ました)。したがって、超過率は約2.7または2.8です。 GB(システム/BIOSなどによって異なる場合があります)

これは、バッファキャッシュが制限されていることに関連しているようです。32ビットDMAメモリそして、ほとんどの場合、100%の設定でも他のカーネルリソースと共有されているプールからメモリを取得するため、割合はすべてのシステムで常に4 GBよりはるかに低くなります。

http://www.openbsd.org/cgi-bin/cvsweb/src/sys/kern/vfs_bio.c
http://marc.info/?l=openbsd-tech&m=130174663714841&w=2

答え3

OpenBSD 5.6または5.7以降、OpenBSDの「バッファキャッシュ」(別名OSディスク/ファイルシステムRAMキャッシュなど)は、いいえ32ビット/〜3 GBの制限はもうありません。詳細については、このML投稿とスレッドを参照してください。

http://marc.info/?l=openbsd-misc&m=145542727812528&w=2

http://marc.info/?t=145538710500002&r=1&w=2

そのため、2013年1月に他のポスターでこれを提案した後、状況が変わりました。これは実際に制限が解除される約6ヶ月前でした。

私はnumvnodes設定がここで議論されたトピックにまだ影響を与えると思います。まだ実際には調査していませんが、バッファキャッシュについてこれを強調したかったのです(これはインターネット全体の数少ないページの1つだからです)。 OpenBSD機能について説明します)

関連情報