展開上の理由から、シンボリック リンクを使用する方が少し簡単ですが、これらは、1 日に何万回もアクセスされるすべての Web サイトのコア ファイルと構成用です。
すべてにシンボリックリンクを使用するよりも (わずかにパフォーマンスが低下しますか?)、ドキュメントをサーバー上の正しい位置に移動する方が賢明でしょうか?
testfile.txt
1000 行のファイルをblablabla
作成し、ローカル シンボリック リンク ( testfile.link.txt
) を作成しました。
$ ls -n
total 12
lrwxrwxrwx 1 1000 1000 12 2012-09-26 14:09 testfile.link.txt -> testfile.txt
-rw-r--r-- 1 1000 1000 10000 2012-09-26 14:08 testfile.txt
(-n
スイッチは、私の極秘のユーザー名を非表示にするためだけに存在します。:))
そして、両方のファイルに対して10 回のcat
ing を1000 回実行しました。/dev/null
(結果は秒単位です。)
ファイルに直接アクセスする:
$ for j in `seq 1 10`; do ( time -p ( for i in `seq 1 1000`; do cat testfile.txt >/dev/null; done ) ) 2>&1 | grep 'real'; done
real 2.32
real 2.33
real 2.33
real 2.33
real 2.33
real 2.32
real 2.32
real 2.33
real 2.32
real 2.33
シンボリックリンク経由でアクセス:
$ for j in `seq 1 10`; do ( time -p ( for i in `seq 1 1000`; do cat testfile.link.txt >/dev/null; done ) ) 2>&1 | grep 'real'; done
real 2.30
real 2.31
real 2.36
real 2.32
real 2.32
real 2.31
real 2.31
real 2.31
real 2.32
real 2.32
(かなり古いインストールの)Ubuntuで測定:
$ uname -srvm
Linux 2.6.32-43-generic #97-Ubuntu SMP Wed Sep 5 16:43:09 UTC 2012 i686
もちろん、これは単純な例ですが、これに基づいて、シンボリックリンクを使用した場合のパフォーマンスの低下はあまり期待できません。
個人的には、シンボリックリンクを使用する方がより実用的だと思います。
my_web_files.v1
バージョン管理とロールバックを簡単に使用することもできます。バージョンを変更したい場合は、別のバージョンのディレクトリに再リンクしてください。my_web_files.v2
my_web_files
このパフォーマンスの低下を測定しましたか? ネットワーク経由でページをフェッチするのにかかる時間と比較すると、非常に無視できると思います。