7

出于部署原因,对我来说使用符号链接稍微容易一些,但这些符号链接适用于我的所有网站核心文件和配置,每天将被访问 10 万次。

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

4

2 回答 2

22

我创建了一个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 轮cating 到/dev/null1000 次。(结果以秒为单位。)

直接访问文件:

$ 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如果要更改版本,只需重新链接到另一个版本化目录。
于 2012-09-26T12:32:03.637 回答
2

测量过这种性能下降吗?我怀疑与通过网络获取页面所花费的时间相比,它可以忽略不计。

于 2012-09-26T12:12:39.533 回答