PHP / Apache2 / MySQL的服务器configuration每天25万次点击?

任何人都可以推荐一个configuration,或者更好的指向一个完整的案例研究这个网页设置?

基本上我们有一个PHP网站每天获得大约10万次点击。 当试图在VPS上提供这个负载时,由于命中CPU容量,它已经在等待连接超时等。 我想指定一些能够使其每天大约25万次点击的内容。

目前服务器是:

  • 单核1Ghz可突发VPS(来自2.6Ghz双核Xeon)
  • 2GB的可破解内存(再次,我觉得易碎非常模糊)
  • 每个php进程32MB,运行expression式引擎(据我所知)或类似的重量
  • 相当图像密集的graphics页面
  • 偶尔在一些页面上的幕后工作,如xmlrpc到第三方服务器
  • 简单的Apache与modphp(所以像图像静态文件也需要完整的PHP进程 – 这是不能改变现在)

到目前为止,CPU似乎是主要瓶颈,一些apache进程在请求期间使用了大约30%的CPU。 一些其他的apache进程似乎只有1%的CPU更好; 我假设这些是对静态文件的请求。

所以。 我们希望摆脱虚拟专用服务器上的某种专用或虚拟的专用盒子,而且不会突发(可测量,有保证)性能。 它必须能够处理currnetstream量,并且至less在将来会翻倍。

任何build议或研究,你可以指向我?

有没有什么工具可以给你一个估计的服务器规格的参数,如每个Apache进程的内存,dynamic请求的百分比,PHP代码是沉重的CMS的东西或轻量级的Hello World的东西,等等?

我怀疑这个问题是否有任何有用的案例研究,因为性能总是会根据应用程序的复杂性而变化很大 – 唯一接近适合的方法是测量和推断。

你不提操作系统,但我会设置一系列的性能监视器捕获线程,CPU负载,内存统计,磁盘和networking数据等,也确保你捕捉你正在处理的点击数。 由此你应该能够根据实际看到的负载来确定所有这些组件的最小,平均和最大资源使用情况 – 一旦你有这些数据(mhz / 10k用户,mem / 10k用户等),你应该能够快速推断你需要的性能。 即使处于您预期的高峰负载时,也要确保计划增加20%左右的净空。

我知道这是很多电子表格的工作,但它是唯一的方式,你会感到自信 – 那里总是有'扔问题的硬件吨'的方法,这也可以工作,但成本:)

祝你好运,稍后再回来一些数据,如果你需要帮助理解它。

只要在代理模式下在apache前添加nginx,并将其设置为服务器真正的静态数据,而不需要接触apache。 你会立即加快速度。

然后,我会切换apache2到像4-16孩子preforked模式。

后台工作像外部连接真的很痛,我会重写代码,使这些asynchronous。

最后,您可能会在主节点(即服务器持有所有VPS)上超出带宽。 如果他们的主节点上有1Gbit的连接,就问你的托pipe公司,如果只有100Mbit的话 – 你可能要更换托pipe。