服务器速度:共享一个script.php或使用多个相同的script.php副本

服务器速度:共享一个script.php或使用多个相同的script.php副本

假设:

  1. 我有同一 Apache 服务器上的域。

  2. 每个域名都位于服务器 public_html 文档文件夹下的文件夹中,因此可以通过调用“www.somedomain.com”或调用“www.serverdomain.com/somedomain_folder”来访问

  3. 每个域名都有一个网站需要特定的 script.php(每个域名相同)。

从编码角度来看,显然最好使用唯一的 script.php,因此当我使用新功能/错误修复等更新它时,我需要在服务器上仅更新一个文件,它就可以适用于所有域。

但从服务器的角度来看呢? 如果我使用一个唯一的脚本,所有域都会同时访问它,与每个域调用自己的脚本的情况相比,服务器的运行速度会更慢吗?

答案1

如果我使用一个唯一的脚本,所有域都会同时访问它,与每个域调用自己的脚本的情况相比,服务器的运行速度会更慢吗?

我认为事实恰恰相反。它不应该更慢。 问题是, ”运行共享会使速度更快吗“关于这一点——理论上,是的。但实际差异可能难以察觉。

重点是——如果有仅一个脚本对于所有用户来说(共享库的概念),它不仅更容易维护,正如前面指出的那样,而且内置缓存机制应该更高效(至少从我对这个主题的理解来看)。一个文件读取,在内存中缓存的简单方法。多个相同的文件(不是sym-/hardlinked,不同的索引节点)——这更成问题。或者我低估了Linux功能?如果我错了,请纠正我 - 我对其内部原理的了解并不那么深刻,但我认为这会导致独立的寻道/缓冲。

另一点-使用操作码缓存。我不确定它在不同的实现中是什么样子,但在大多数情况下,使用多个相同的脚本会导致不必要的缓存条目。但是,共享脚本存在一个潜在问题 - 当缓存变得过于激进时(例如在不同用户之间缓存外部配置文件)。我最近遇到了这种行为XCache 和硬链接。但是,只要配置正确并且实现无错误,就不会出现问题。

所以我的结论

如果可行,我会使用共享安装都为方便表现。但是,在某些情况下,性能差异可以忽略不计,因此很可能“什么更适合你的情况“。

答案2

我认为最好把这个脚本放在你的服务器中PHP 包含路径并在您所有的网站上使用它。

我不认为为每个域保留副本会提高速度。如果您在使用通用脚本时确实注意到速度变慢,请尝试各种php/apache 缓存模块来加快一点速度。

是的,正如您所说,您可以在一个地方进行更新,所有网站都将使用更新后的 php 脚本。这种便利性胜过许多其他替代方案。

答案3

根据我的经验,使用通用模块的共享目录不会降低您的服务器速度,否则您将拥有所有域的所有 PHP 库的唯一副本。

相关内容