我有一个网站,每秒有超过500个MySQL查询--每小时有2M+查询.在线用户模拟任何150+。
服务器总是负载很高。
构建在PHP/MySQL中的网站
我已经优化了apache、mysql配置。
我的专用服务器配置:
处理器8: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz Ram : 12 GB SCSI硬盘
我想问,Memcached是否是解决这个问题的最佳解决方案,还是必须将MySQL服务器与web服务器分开。
诚挚的问候,
发布于 2011-04-26 00:36:15
我不确定你是否说过“问题”--当你说每秒有500个MySQL查询时,说“服务器是高负载的”是非常隐含的。但是,只有当负载减慢了系统的速度或导致其他问题时,这才是一个问题。
我们确实需要更多关于您的性能的具体信息,以提供特定的建议(例如,MySQL和Apache的内存使用量是多少?CPU怎么样?);如果您不知道耗尽了什么资源,就很难确定需要改进的地方。
但是,根据您提供的信息,我确实有一个猜测;每秒为150个同时用户提供的500个查询听起来非常高;每个用户每秒有3.3次查询?如果是这样的话,memcached可能是一个非常好的选择,可以从数据库进程中获得负载(如果查询中有足够的重复),还可以尝试让代码生成更少的数据库流量。
发布于 2011-04-26 00:36:20
您的第一步应该是将apache/php服务器从包含MySQL实例的硬件中移开,从而分离LAMP堆栈组件。然后,您将减少内存和磁盘的争用,因为应用程序的RAM空间和IO将访问与数据库不同的资源。
如果仍然无法管理负载,那么接下来将在水平配置中添加额外的Linux/PHP服务器。
我建议安装Ganglia监视程序,以查看服务器的瓶颈所在。当您添加更多的服务器时,这将极大地帮助您进行容量规划和扩展应用程序。
http://ganglia.sourceforge.net
https://serverfault.com/questions/263326
复制相似问题