web-dev-qa-db-ja.com

tmpfsボリュームのnoatimeはパフォーマンスを向上させますか?

Nginxマイクロキャッシングに/run/shm/myfolderを使用しており、ngx_pagespeedファイルもそこに保持しています。 relatimeからnoatimeに移動すると、速度が上がるのではないかと思います。 HDD用ですが、tmpfsでは何が変わりますか?

tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=9929500k)
4
cenk

実際のディスクでnoatimeまたはrelatimeを使用する理由は、読み取りがないとディスクへの書き込みも含まれるためです。この追加の書き込みにより、システムの速度が低下し、ディスクがスピンアップする可能性があります。そうしないと、はるかに長い間スピンダウンしたままになり、フラッシュメディアが摩耗する可能性があります。

しかし、tmpfsを使用すると、データをディスクに書き込む必要がなくなります。データはスワップに書き込まれる場合がありますが、他のデータのためにRAM)を解放する必要がある場合に限ります。これは、tmpfsの頻繁な更新は、どちらの場合も効果があるため、頻繁な読み取りよりもコストがかからないことを意味します。データがメモリに保持されていること。

さらに、tmpfsはファイルの内容をスワップアウトするだけです。メタデータ(タイムスタンプを含む)は単にRAMに残ります。したがって、実際には、メモリ内のタイムスタンプを更新するかどうかについて話しているだけです。これは、最初にそれをトリガーする実際の読み取り操作と比較して非常に安価です。

これらの理由により、tmpfsでnoatimerelatimeを使用するか、どちらも使用しない場合で、測定可能なパフォーマンスの違いが生じる可能性はほとんどありません。

6
kasperd

理論的には、@ kasperdが言ったことに同意します。しかし、非常に忙しいtmpfsのバッキングmuninデータで変更を試すことにしました。これにより、muninの合計処理時間が8%短縮されました。

このfsには300,000以上のファイルがあり、それぞれが5分ごとにアクセスされ、得られるパフォーマンスのすべてのビットが役立つため、8%はかなり重要でした。

0
Joe