シンボリックリンクを使用してディレクトリを別のファイルシステムに再配置するとオーバーヘッドが発生する

シンボリックリンクを使用してディレクトリを別のファイルシステムに再配置するとオーバーヘッドが発生する

頻繁にアクセスする一部のファイルを別のファイルシステムに再配置する必要があります。最も簡単な方法は、ファイルを含むディレクトリを新しいファイルシステムに移動し、以前の場所からシンボリックリンクを作成することです。

つまり。/var/yaydataに引っ越し/mnt/data2/yaydataました。ln -s /mnt/data2/yaydata /var/yaydata

私が知りたいのは、yaydataのファイルを頻繁に開いたり閉じたりした場合、パフォーマンスに大きな影響がありますか?

ベストアンサー1

いいえ本当に。

デバッグでは、タスクを追跡してそれをテストできます。 Linuxを使用すると仮定しますstrace

 mkdir test1
 ln -s test1 test2
 strace -o strace1.log ls -l test1
 strace -o strace2.log ls -l test2

次に、2つのログを比較します。

本質的に同じ順序で動作することがわかります。彼らはこれをlstatシンボリックリンクに従うバージョンと呼びますstat

-Tフラグを追加して速度差をテストできますstrace。シンボリックリンクがある場合はlstat0.000035秒かかり、シンボリックリンクがない場合は0.000031秒かかります。

このようなファイルメタデータも非常に効率的にキャッシュできます。ほとんどのキャッシュは頻繁にアクセスされ、サイズが小さいため、メタデータはかなり高い優先順位と見なされます。

短い答え - いいえ。かなりのオーバーヘッドが発生する可能性はありません。

おすすめ記事