符号链接 – 性能打击?

出于部署的原因,使用符号链接稍微容易一些,但是这些将用于我所有网站的核心文件和configuration,每天可以访问数千次。

我是否更明智地将文档移动到服务器上的正确位置(稍微更有问题的部署),而不是对所有内容使用符号链接(轻微的性能下降?)

Solutions Collecting From Web of "符号链接 – 性能打击?"

我创建了一个带有1000行blablabla的文件testfile.txt ,并为其创建了一个本地符号链接( 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次/dev/null 1000次。 (结果以秒为单位)

直接访问文件:

 $ 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.v1my_web_files.v2 ),并且在符号链接中使用“官方”名称(例如my_web_files.v2 ),则还可以轻松使用版本控制和回滚到“现场”版本。 如果你想改变版本,只需重新链接到另一个版本化的目录。

你有没有衡量这种表现降级? 我怀疑这与通过网络获取页面所花费的时间相比是微不足道的。