私は現在、大きな mmap ファイルを使用してプロセス間でデータを共有する Apache モジュールに取り組んでいます。これは起動時に作成され、サーバーのシャットダウン時に削除されます (後の段階で保持することを選択できます)。私は Apache APR ライブラリを使用してこれを実装しましたが、少なくとも小さなファイルの場合はうまく機能します。
ただし、メモリマップファイルのサイズが大きくなると(サーバーの実行中にキャッシュするのに十分なRAMがまだあります)、オペレーティングシステム(私の場合はLinux)が大量のファイルを消費しているように見えるため、システムが事実上停止することがありますファイルをディスクと同期します。この同期を制御/削減する方法はありますか?
現時点ではコンテンツをディスクに同期する必要がないので、代わりに共有メモリ セグメントを使用するべきだったので、代わりにそれを試してみます。ただし、メモリマップファイルの同期を制御する方法にはまだ興味があります。