在网络托管环境中共享单个 IP 地址如何影响性能?

在网络托管环境中共享单个 IP 地址如何影响性能?

在共享网络托管中,有时数百个虚拟主机在单个 IP 地址上的同一个网络服务器上运行。

共享 IP 地址(而不是共享其他资源)会对性能产生哪些具体影响?

答案1

这影响性能的唯一方式是服务器上的总请求数会更高,以及在 vhost 文件中查找与 url 匹配的请求数会更高。

要确定单个 IP 上有多少虚拟主机在运行,您不能执行反向 DNS,而是执行 IP 查找。您也可以在线执行此操作:http://www.yougetsignal.com/tools/web-sites-on-web-server/

答案2

Apache 使用哈希表非常有效地处理虚拟主机。文档中说:

在初始化期间,会为每个 IP 地址生成一个列表并将其插入到哈希表中。如果在 NameVirtualHost 指令中使用了 IP 地址,则列表包含给定 IP 地址的所有基于名称的虚拟主机。如果该地址没有定义虚拟主机,则 NameVirtualHost 指令将被忽略并记录错误。对于基于 IP 的虚拟主机,哈希表中的列表为空。

由于哈希函数速度快,请求期间对 IP 地址进行哈希处理的开销极小,几乎不存在。此外,该表针对最后一个八位字节不同的 IP 地址进行了优化。

我见过具有超过 1000 个虚拟主机的 Apache 服务器,其性能并不明显比具有 10 个虚拟主机的 Apache 服务器差。

相关内容