如何configuration服务器来处理大stream量?

现在我有1000个并发用户在线。 但是我的网站很慢。 我可以有8000个并发用户,但服务器无法处理stream量,而我正在失去访问者。

我的服务器是VPS服务器:

专用CPU 7.2GHz

RAM 4512MB

内存使用量低于可用资源。 (现在632 MB)我该怎么办? 我应该configurationApache服务器? 如果是的话,怎么样? 怎么样caching,也许memcached?

这是一个虚拟的服务器,由节点构成,每个节点代表600Mhz的CPU和376MB的RAM。

我正在运行一个网站,它使用PHP和MySQL构build。

基准,基准,基准。 这是唯一的解决scheme。 有一百万件事情可以使一个网站变慢。 这是我会做的:

  • 使用Firebug加载Firefox。 检查networking面板的主要请求的加载时间。 如果“连接”时间很长,可能会出现networking或带宽问题,或者Apache无法同时处理这么多的请求。 如果有很长的“等待”或“转移”时间,那么你的PHP脚本可能是罪魁祸首。 他们花了很长时间来呈现网页。
  • 在处理PHP时,第一个犯罪嫌疑人通常是你的(My)SQL服务器。 如果您使用中央SQL库,那么对您的查询进行基准testing就不会太难。 只需跟踪您的页面需要多less查询,以及这些查询需要多长时间。 将其与总页面渲染时间进行比较。 如果你有一个旧的应用程序,使用普通的mysql(i)_函数到处都是,然后跳下两个bullit。
  • 如果问题出在MySQL上,那么第一个嫌疑人通常是合适的索引。 对所有查询运行EXPLAIN并查看是否使用了索引。 定义适当的索引。 重新基准。 I / O也是MySQL减速的一个常见原因(使用更大的查询caching,减less查询(应用程序caching),调整您的MySQL设置或者仅拆分web服务器和SQL服务器。
  • 如果问题是PHP本身,请加载xdebug并通过分析器运行您的页面(确保仅用于您的请求,否则您可能会轻易地终止您的服务器)。 在KCacheGrind中加载转储,并找出应用程序花费的时间。 重构。

这正是我要做的。 每一步都非常依赖于你在前一步中得到的结果。 没有通用的build议,我们可以给你。 只需进行基准testing,基准testing,基准testing并相应地重构代码和服务器设置。

我的网站开始走到性能受到一点影响的地步。 我把memcached放在了一些比较“复杂”的页面上,比我想像的要好得多。 我有一些页面需要花费0.5秒才能parsing,另外一页花费了3秒钟的时间来分析(我知道,对我来说是耻辱)。 我花了不到一个小时的时间把memcached放在这些关键的地方,现在所有的东西都在不到0.01秒的时间内parsing出来。 另外,我也注意到我的平均负载也下降了,因为没有太多的mysql查询来处理。 我不能推荐更多的memcached 🙂