最近,我们将rails网站的应用服务器从mongrel改为客运使用REE和Rails 2.3.8。生产设置有6台机器,分别指向一个mysql服务器和一个memcache服务器。在每台机器有5个mongrel实例之前。现在我们有45个乘客实例,因为在每台机器上的RAM是16 is和2,4核心cpu。一旦我们在生产中部署了这名乘客。网站变得如此缓慢。所有的请求都开始排队。最后我们不得不退回去。
现在我们怀疑原因应该是Mysql服务器的负载增加了。和以前一样,这里只有30个mysql连接,现在我们有275个连接。mysql服务器的设置类似于我们的网站机器。bUt所有的吐露都被抛到了极限。buffer_pool_size只有8MB,尽管我们有16 mb的内存。并发线程数为8。
与mysql同时增加的连接是否会导致mysql的响应比我们只有30个连接时慢呢?如果是这样的话,我们如何使mysql在275同时连接的情况下表现得更好。
任何建议都非常感谢。
更新:
有关mysql服务器的更多信息:
RAM :16 RAM:两个处理器,每个处理器有4个核心
表是具有默认信任的innoDB。
谢谢
发布于 2011-03-28 13:06:38
我需要以下信息。
您可能需要考虑的工具:
InnoTop (http://code.google.com/p/innotop/) myisam_defrag (https://github.com/Oneiroi/myisam_破片) mysqltuner (http://mysqltuner.pl/mysqltuner.pl)
有些发送数据的时间超过700秒,请您对这些数据进行解释。
EXPLAIN SELECT `reviews`.* FROM `reviews` WHERE (`reviews`.user_id IN (78707,123639,30671,31638)) AND (reviews.deleted_at IS NULL OR reviews.deleted_at > '2011-03-25 06:00:07')临时表==坏了!请对以下内容进行解释。
State: Copying to tmp table
Info: SELECT `reviews`.* FROM `reviews` inner join users on users.id = reviews.user_id WHERE (reviews.user_id is not null and reviews.karma>0 and datediff(curdate(),reviews.created_at)<=30) AND (reviews.deleted_at IS NULL OR reviews.deleted_at > '2011-03-25 06:12:11') ORDER BY reviews.karma desc, reviews.unhelpful_count asc, users.reviews_count desc,reviews.created_at desc LIMIT 3https://serverfault.com/questions/252701
复制相似问题