2012-03-16 13 views
19

私は何百もの素早い継承を行い、小さな一時ファイルを作成し、すぐに読み込み直してリンクを解除する必要のあるスクリプトを用意しています。/tmpとLinuxの一時ファイル保管のための/ dev/shm?

私のテストでは、上記のファイルを/tmp(ディスク)に入れたり、Linux上で軽度の負荷の下でも/dev/shm(ファイルシステムレベルの共有メモリ)に入れてもパフォーマンスの差はほとんどありません。私はこれをファイルシステムのキャッシュに帰します。ディスクを付与

結局 fileystemアクションと打撃を受けるだろうが、複数の小さなライト - リード一時ファイルに、なぜあなたは、ディスク・バックアップディレクトリ上/dev/shmをお勧めします(ない)でしょうか?キャッシュされたVFS上の共有メモリディレクトリでパフォーマンスが大幅に向上したことに気付きましたか?

答えて

13

/dev/shmは、非常に特殊な目的のためのものであり、任意のプログラムがファイルを置くことを意図したものではありません。対照的に、/tmpexactly made for thisである。これに対して、/tmpexactly made for thisである。/tmpexactly made for thisである。私のシステムでは、/tmpもと対照的に、であり、大きなファイルを置くと潜在的に長くなります。

+1

+1 '/ dev/shm'は汎用的な' tmpfs 'であり、Linuxの実装の詳細であり、何らかの保証はできません(利用可能な領域は通常、非常に制限されています)。 '/ tmp'と'/var/tmp'を使いましょう。また、使用法やファイルシステムによっては、ファイルを作成してリンクを解除すると、キャッシュにしか置かれず、ディスクに決してぶつかることはありません。 – ephemient

+0

@ephemient - ファイルを作成してすぐにリンクを解除しても、最終的にディスクにヒットするでしょうか? – Xailor

+1

@glglgl - 管理サービスシナリオで展開しているシステムでは、/ tmpは 'tmpfs'ではなくプライマリsda1ディスクによってバックアップされます。それ以外の場合は、標準に準拠することに同意しますが、それは現時点での展開環境です。 – Xailor

3

これは本質的に同じです(スワップファイルを持っている場合、shmは暗黙的にディスクにバックアップされています)。

/tmpは、ハードディスクがスワップファイルよりも大きい可能性が高いとみなし、よりいっそういっぱいになるという利点があります。また、より広くサポートされています。

関連する問題