我现在有一个四核心的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议!
有几件事情你可以做,并检查给你更多的信息在这个问题上,反过来处理它更好:
sar或更像一个完整的包如Nagios / Zabbix。 这将有助于您缩小事业的范围,以及后来看看您的解决scheme是否有效(或不是)。 理想情况下,您希望在实际需要之前积极扩展。 MaxClients以限制用户数量,并希望减less服务器负载。 这可能会使您的网站至less部分可用和可用。 希望这有助于一些,祝你好运!
我很抱歉,但我诚实的回答是这样的:如果你甚至不知道如何检查你的数据库是否被索引,那么你远远超出了你的联盟,你唯一的select就是聘请一个专业人士,因为你的项目的范围。 不是一群廉价的代码奴隶,而是像你这样的网站有很多经验的人。
我们可以给你提供很多技巧,但是正确地调整这样的网站是需要经验的工作,在ServerFault上有几个问题是无法完成的。
您需要使用“MySQL工作台”login到MySQL服务器。 一旦以“root”身份(从本地主机login,除非您编辑了允许远程login的权限),那么您应该能够看到索引。 那么,如果你没有他们,这只是一个创造他们的问题,它应该与你的应用程序,我认为一个很好的速度差异。 要帮助创build索引,您需要查看EXPLAIN命令的说明。
根据您的现金stream量,一个非常快速(和脏)的修复可能会要求您的托pipe公司将您升级到SAS / SCSI服务器,这也将使您进入企业服务器类别。 大的SATA驱动器是缓慢的,你的服务器可能是伟大的CPU,但糟糕的IO。
祝贺注册数字顺便说一句。 你的问题是一个很好的问题。