我有一个复杂的Web应用程序运行在Debian / Nginx / PHP5-FPM堆栈上。 该应用程序通常每天有600个在线用户,每天约有5000个独立用户。
该堆栈运行在基于Xen的虚拟机上,具有2个专用内核(Intel Xeon E5420)和2GB内存。
我发现PHP5-FPM使用了大量的CPU,通常是10%-20%,但有时甚至100%会持续一段时间。 平均负载(从正常运行时间命令)是“〜1.5,〜2,〜2.5”,但是我看到更高的值(大约10)。
我想知道如果虚拟机是足够强大的运行这个应用程序。 而且,更重要的是,我想知道是否使用Xen实际上是一个好的select(在服务器上还有两个虚拟机)。
提前致谢!
从你给出的信息来看,你听起来像是在靠近边缘。 一个常见的经验法则是,超过1的平均负载应该是一个问题,如果你达到4或5,那么就有一个问题。 负载来自等待可能是磁盘,networking或CPU的资源的进程的数量。 而如果你看到的CPU使用率最高,如果你的平均水平是15%,你看到负载值超过1,那么你的瓶颈可能是磁盘访问。 VPS的本质是磁盘性能往往会比专用服务器差得多,一个function更强大的VPS可能具有相同的磁盘性能,因此不会有帮助。
我对你的申请一无所知,但是非常宽泛地给出了你所提供的数字,好像你有一个有效的设置。 我build议你考虑扩大规模,将工作分解到两台或更多的服务器上,而不是扩大到更强大的机器。
最重要的是你做更多的testing,所以你肯定知道。
为了回答你的问题XEN很好,有很多大的生产网站使用它。 然而,如果你有一个繁忙的数据库,这通常意味着大量的磁盘活动,那么XEN或virtualisaiton一般可能不是最好的解决scheme。
Xen对于整个应用程序的CPU /内存非常好,对于IO /networking来说不是那么好(除非你使用NPIV之类的直接连接types或任何绕过dom0 io堆栈的东西)
所以你需要做一些分析你的负载尝试使用vmstat / iostat找出是否其CPU / IO负载