MongoDB で fsync() 操作を実行しましたが、すぐに返されます。何もしていないようです。データが実際にディスクにフラッシュされたかどうかを確認するにはどうすればよいですか?
注: syncdelay を 0 に設定しました。これは、書き込みが 60 秒ごとに自動的に fsync されないことを意味します。
私の実際のコマンドはperlドライバーを使用しています:
$connection->fsync({async=>1});
ありがとう。
fsync
をすぐに戻したくない場合は、async
オプションを削除すると、ブロック操作になります。
ただし、ブロックしたくない場合は、シェルからdb.currentOpを使用して、fsync の現在の状態を照会できます。
Perl からその情報を取得したい場合は、この回答で概説した手法を使用できます。残念ながら、 経由で直接取得する便利な方法はありませんrun_command
。