web-dev-qa-db-ja.com

Linuxでの一時ファイルストレージの/ tmpと/ dev / shm?

何百ものすばやく連続する小さな一時ファイルを作成し、すぐに読み戻してからリンクを解除する必要があるスクリプトがあります。

私のテストでは、中程度の負荷がかかっていても、Linuxの/tmp(ディスクへ)または/dev/shm(ファイルシステムレベルの共有メモリ)にファイルを配置しても、パフォーマンスの違いはほとんどありません。私はこれをファイルシステムキャッシュに帰します。

許可されたディスクは最終的にファイルシステムアクションでヒットしますが、複数の小さな書き込み/読み取り一時ファイルで、ディスクでバックアップされたディレクトリよりも/dev/shmを推奨する(しない)のはなぜですか?キャッシュされたVFS上の共有メモリディレクトリでパフォーマンスが大幅に向上することに気づきましたか?

24
Jé Queue

/dev/shmは非常に特別な目的を目的としており、任意のプログラムによってファイルが配置されることを目的としていません。

対照的に、/tmpこれのために正確に作成されています です。私のシステムでは、/tmptmpfsでもありますが、/var/tmp設計 大きなファイルを配置するためのものであり、長く留まる可能性があります。

13
glglgl

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

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

2
ᆼᆺᆼ