比方说,有十几个应用程序必须使用像XenServer这样的开源技术托管在单个戴尔服务器上。有些应用程序是资源密集型的,而另一些则不是。
如果服务器有32 of的RAM,那么虚拟机的体系结构应该是什么?为每个应用程序创建一个单独的VM是一个很好的架构决策吗?
如果有人能提供关于这种优化的详细信息,那就太好了。
技术栈是PHP,几乎到处都是MySQL。
发布于 2014-04-19 17:17:51
如果您几乎在任何地方都有相同的技术堆栈,那么每个应用程序拥有一个虚拟机听起来会带来太多的开销。您不仅可以运行额外的内核,还可以运行MySQL、Apache/nginx和PHP。相反,我的建议是为MySQL服务器拥有单独的虚拟机。如果您的应用程序数据库很重,您可以将大部分RAM用于此。
对于apache/nginx & PHP,我将为不同版本/配置的PHP提供单独的VM,因此,如果您有一些遗留应用程序甚至需要PHP 5.3<=或PHP4,则可以为它们提供单独的VM。如果您的所有应用程序都可以在相同的PHP版本和配置上运行,那么我只需要使用apache/nginx对它们进行虚拟化。如果您设置了多个VM(例如,针对不同的PHP配置或版本),那么维护服务器就更容易了。
请记住,如果您设置了多个apache/web,那么每个不同的VM都需要一个单独的公共IP才能从外部访问它。要克服这个问题(如果您想要走单独的VM路由),您必须在一个VM或一个单独的VM上设置一个httpd代理。这通常是nginx,然后您只能在这个VM上需要一个公共IP,然后将所有请求代理到内部网络上的其他VM。
https://serverfault.com/questions/590119
复制相似问题