试图扩大我的专用服务器的高stream量

我现在有一个四核心的Xeon,8GB内存,只有2个1TB的SATA驱动器。 我想弄清楚如何扩展我的应用程序来尽可能地处理尽可能多的负载和stream量。 我有一个行业网站,目前每天约有30,000的注册,每天6万的UV,以及600-1,000,000次的综合浏览量。 速度太慢了,我不得不closures服务器,现在我正在亏钱和stream量。

我相当确定的一部分是PHP代码和MySQL查询(从印度雇用他们)。 我可以做些什么来优化和确保服务器处理尽可能多的stream量,而不会造成瓶颈。 因为我期望每天都有更多的注册。 这是一个非常密集的数据库站点,因为它是某个特定领域的“networking”站点,您必须login,因此所有事情都围绕MySQL进行。

PS。 CentOS 5 64bit,PHP5,MySQL5。 我知道数据库是MyISAM,我很确定他们没有太好的索引表。

感谢您的build议!

有几件事情你可以做,并检查给你更多的信息在这个问题上,反过来处理它更好:

  • 你必须找出究竟是什么让你的服务器“慢”。 它是最大的CPU,内存不足,使用交换空间,是IO限制,等等…? 其中每个解决scheme都有不同的解决scheme,因此在尝试解决问题之前,您需要知道问题所在。 当真正的问题只是一个糟糕的Apacheconfiguration时花费时间来修复数据库将是一个巨大的浪费时间和资源。
  • 某种forms的监测将是有用的。 这可能是简单的像sar或更像一个完整的包如Nagios / Zabbix。 这将有助于您缩小事业的范围,以及后来看看您的解决scheme是否有效(或不是)。 理想情况下,您希望在实际需要之前积极扩展。
  • 确保您正在运行PHP操作码caching(APC,eAccelerator等)。
  • 尝试打开或closuresMySQL查询caching。 一个阅读大量的应用程序可能会受益,而写入重量可能会受益。 监视查询caching统计信息会让你知道它是帮助还是伤害事情。
  • 尝试减lessApache中的MaxClients以限制用户数量,并希望减less服务器负载。 这可能会使您的网站至less部分可用和可用。
  • 你有没有对MySQLconfiguration做任何修改? 它通常使用的默认configuration不是针对“数据库重”的网站,您可以通过调整一些值来看到显着的收益。 在这里和networking上search编辑configuration的各种资源。
  • 检查MySQL正在使用多less内存。 如果你的应用程序确实写得很重,那么根据你的数据库大小,如果不是更多的话,我希望/至less要使用1GB。 如果只使用几个100MB,或使用6-7GB,则可能存在configuration问题。
  • 在MySQL表上创build索引是很容易的……难的部分是弄清楚你需要什么索引以及它们会有什么好处。 这是一个有经验的专业人员可以迅速付清的地方(假设问题确实在数据库层)。
  • 如果您需要快速恢复您的网站运行,扩展到多台机器可能是一个不错的select。 把数据库放在一台机器上,Apache放在另一台机器上。 这也将很快告诉你,如果一台或机器达到高负载,你的瓶颈是什么。 可以将Apache服务器扩展到负载均衡器后面的多台机器,并且可以根据需要将数据库集群或扩展到更大的机器。 从长远来看,正确地分析和优化您的应用程序和硬件可能会更便宜,但有时候您只需要在昨天就能正常工作。 这也是一个专业人士可以节省您很多时间和头痛,快速启动和运行。
  • 当(或者如果)你回到网上,某种forms的监控和基准testing是很好的。 知道你的限制和你的当前/平均参数将允许你在服务器崩溃之前进行扩展。

希望这有助于一些,祝你好运!

我很抱歉,但我诚实的回答是这样的:如果你甚至不知道如何检查你的数据库是否被索引,那么你远远超出了你的联盟,你唯一的select就是聘请一个专业人士,因为你的项目的范围。 不是一群廉价的代码奴隶,而是像你这样的网站有很多经验的人。

我们可以给你提供很多技巧,但是正确地调整这样的网站是需要经验的工作,在ServerFault上有几个问题是无法完成的。

您需要使用“MySQL工作台”login到MySQL服务器。 一旦以“root”身份(从本地主机login,除非您编辑了允许远程login的权限),那么您应该能够看到索引。 那么,如果你没有他们,这只是一个创造他们的问题,它应该与你的应用程序,我认为一个很好的速度差异。 要帮助创build索引,您需要查看EXPLAIN命令的说明。

根据您的现金stream量,一个非常快速(和脏)的修复可能会要求您的托pipe公司将您升级到SAS / SCSI服务器,这也将使您进入企业服务器类别。 大的SATA驱动器是缓慢的,你的服务器可能是伟大的CPU,但糟糕的IO。

祝贺注册数字顺便说一句。 你的问题是一个很好的问题。