ここで言及されているように、mongodb には、単一の mongod インスタンスを持つ 32 ビット マシンでのデータサイズが 2 GB に制限されています。しかし、32ビットマシンには理論上4GBのアドレス可能なスペースがあり、mongodは仮想メモリの使用に2GBの代わりにこの4GBを使用できるのだろうか. では、なぜ答えが 4GB ではなく 2GB なのですか?
2 に答える
4Gb のアドレス可能なスペースは、ユーザー アプリケーションによって開かれたメモリ マップト ファイルに使用できるメモリ スペースと同じではありません。アドレス可能なスペースの一部は、O/S カーネルと、ビデオ カードなどのメモリ マップ デバイス用に予約されています。
たとえば、32 ビット Windows では、ユーザー モード (およびメモリ マップト ファイル) が ~2Gb RAM に制限され、合計システム RAM が ~3.5Gb に制限されます。
詳細については、次を参照してください。
最新のデスクトップおよびサーバー環境の大部分は、ほぼ 10 年前に 64 ビットへの移行を開始しているため ( Wikipedia の 64 ビット オペレーティング システムのタイムラインを参照)、これは展開に実際に影響する制限ではありません。
データが限られている開発環境では、32 ビットの MongoDB のみを使用する必要があります。
32 ビットの MongoDB プロセスは、約 2 GB のデータに制限されています。これは、それについて心配する必要がないことに慣れている多くの人々にとって驚きです. これは、MongoDB ストレージ エンジンがパフォーマンスのためにメモリ マップト ファイルを使用するためです。
32 ビットで 2GB 以上をサポートしないことで、コードをよりシンプルでクリーンに保つことができました。これにより、バグの数が大幅に減少し、1.0 製品のリリースに必要な時間が短縮されます。