我有一个网站,超过:每秒500 MySQL查询 – 每小时2M +查询。 在线用户simultany 150+。
服务器总是高负载。
build立在PHP / MySQL中的网站
我已经优化了Apache,MySQL的configuration。
我的专用服务器configuration:
处理器8:Intel(R)Core(TM)i7 CPU 860 @ 2.80GHz Ram:12 GB SCSI硬盘
我想问问Memcached是否是这个问题的最佳解决scheme,或者我必须将MySQL服务器与Web服务器分开。
最好的祝福,
我不确定你是否说过一个“问题” – 当你说每秒有500个MySQL查询时,说“服务器是高负载”是非常隐含的。 但是这只是一个问题,如果负载减慢系统或导致一些其他问题。
我们真的需要更多具体的信息来说明你的性能是如何提供特定的build议的(例如,MySQL与Apache的内存使用量有多less?CPU的情况如何? 如果您不知道哪些资源会耗尽,那么很难确定需要改进的地方。
不过,我根据你提供的信息猜测, 每秒500个查询,只有150个同步用户听起来非常高; 3.3每用户每秒查询? 如果是这样的话,memcached可能是一个非常好的select,从数据库进程中获取负载(如果查询中有足够的重复),以及只是试图让代码生成less一点的数据库stream量。
您的第一步应该是通过将apache / php服务器移出MySQL实例的硬件来分离LAMP堆栈组件。 因此,对于内存和磁盘来说,争用将更less,因为应用程序的RAM空间和IO将与数据库的资源不同。
如果您仍然无法pipe理负载,则可以接下来以水平configuration添加其他Linux / PHP服务器。
我build议安装Ganglia监控程序来看看你的服务器瓶颈。 随着您添加更多的服务器,这将极大地帮助您进行容量规划和扩展您的应用程序。