出于部署原因,对我来说使用符号链接稍微容易一些,但这些符号链接适用于我的所有网站核心文件和配置,每天将被访问 10 万次。
我是否更明智地将文档移动到服务器上的正确位置(稍微有问题的部署),而不是对所有内容都使用符号链接(轻微的性能下降?)
我创建了一个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 到/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.v1
, ),并在指向“实时”版本my_web_files.v2
的符号链接中使用“官方”名称(例如 ),您还可以轻松地使用版本控制和回滚。my_web_files
如果要更改版本,只需重新链接到另一个版本化目录。你测量过这种性能下降吗?我怀疑与通过网络获取页面所花费的时间相比,它可以忽略不计。