ディスクに書き込むときにRAMにキャッシュされたコンテンツ - Linux

ディスクに書き込むときにRAMにキャッシュされたコンテンツ - Linux

私はLinuxディストリビューションを使い始めて以来、この問題に直面してきました。cp1つ以上の大容量コンテンツ(大容量テキストファイル、tar.gzアーカイブ、ISOイメージファイル、ビデオなど)をグラフィックにコピー/移動するか、In memory(メモリ)を使用しますfree -m

しばらくすると、ファイルマネージャ(例:イルカまたはPCManFM)またはcpコピーが完了したことを示しますが、コピーするまでデータは実際にディスクに書き込まれません。sync

私はこれがハードウェアの問題だとは思わない。

  • さまざまなブランドの内部および外部ハードドライブとUSBフラッシュドライブを確認しましたが、どちらも同じ結果を得ました。

  • 一つでもないHDD APM質問。私は常にハードドライブの電源管理を無効にします。

  • 問題はddとcatと同じです(例:dd if=live.iso of=/dev/sdb

  • ディストリビューションに関する問題ではありません。 Debianを確認してみましたが、Fedoraの帽子、Ubuntu、緩いパンツ、等。

  • 私は他のUnixファミリーのオペレーティングシステムとクロスチェックしませんでした。誰にも同じ問題があるか、FreeBSDオープンBSD教えてください。

問題は何ですか?どうすれば解決できますか?

答え1

設計上、カーネルは、キャッシュバッファリング中にファイル操作が正常に完了したことをユーザー空間ユーティリティに通知します。

書き込みキャッシュを無効にするオプションを使用するには、/etc/hdparm.confを編集してみてくださいwrite_cache = off。ただし、これはパフォーマンスが低下するため、sync書き込みバッファがディスクにフラッシュされるようにしたい場合は通常好まれます。

答え2

私が言ったように(明らかなパフォーマンス上の理由で)カーネルは次のものを使用しています。ページキャッシュ。したがって、これは問題ではなく機能です。バラよりhttp://linuxatemyram.com/もっと学ぶ。

利用可能な(推奨されていない)いくつかのオプションmount(ページキャッシュの使用を無効または減らす)があり、umountデバイス(USBキーなど)を取り外したり取り外す前にこのオプションが必要です。その後、カーネルはアンロードする前にすべてのデータをフラッシュします。

また、1つを作ることができますsync

関連情報