我们目前在虚拟主机上托管了大约 10 个不同的网站。每个网站都由自己的虚拟机和自己的 apache 托管。一些网站连接到共享数据库 (MySQL),一些网站使用不同的本地托管数据库(同样是 MySQL)。
由于现在有相当多的独立虚拟机,我们分配给虚拟机的资源开始不足。显然有些网站比其他网站更繁忙。
我一直在考虑将几个网站合并到单个主机上,以将虚拟机总数减少到 4 个。
这样做的结果是减少每个网站所需的开销,但当然也会降低稳定性;如果 Apache/MySQL/PHP 由于某种原因出现故障(或需要重新启动),那么整个网站集群就会瘫痪,而不仅仅是一个网站。
我的问题是:一个网站在什么情况下才值得拥有自己的专用虚拟机?
答案1
答案很明显:在网站自己的虚拟机上运行该网站更为有利。
这一点完全取决于您的环境,但对于低到中等流量的站点,我总是仅围绕技术问题进行分离,例如,当我有矛盾的技术要求或需要分离比使用虚拟主机所能实现的更多内容时。
答案2
最终,这将归结为性能监控和分析,以查看哪些网站产生的负载最大。“繁忙”的网站可能不会导致性能下降,具体取决于它正在做什么。
您需要更具体地定义问题并提出具体问题。
您是否有任何直接归因于特定站点的资源争用问题(CPU、存储、内存、网络)?
某些站点的利用率是否一贯低于其他站点 / 资源密集度是否低于其他站点(即,它们是否“总是”消耗很少的资源?)
您的“繁忙”/资源密集型站点是否“总是”繁忙/资源消耗量高或者是否一直存在高峰时段?
您能否将资源密集程度较低的站点与利用率较高的站点合并,同时仍保持该主机上所有站点的良好总体性能?这需要在任何更改之后进行更多性能测量。
一旦您对站点的单个性能和资源利用率进行了分析,您就可以更好地确定是否要合并或隔离单个虚拟机。
这也是一个持续监控您网站随时间的性能、存档以前的性能日志等的情况,以便您可以确定是否需要稍后进行改进。
不幸的是,没有理想的公式来计算将站点隔离到它自己的虚拟机的最佳时间,因为我们都有不同的需求、限制等,这些都会影响托管决策。