我有一个拥有超过一百万种产品的ecommerece网站。它运行在debian 7上,带有apache2.2,php5.4,mysql 5.5和laravel 4.1。它过去运行顺利,但最近变得非常慢。
我认为这是因为服务器的mysql查询量很大。我使用了各种mysql工具,发现每秒的查询量非常高(1000-2000)。虽然当我记录对网站的请求和查询时,它几乎没有。
此外,我最近没有对代码进行太多更改,因为它曾经运行正常,我不确定查询量是否是问题(不确定当一切正常时它是多少)。
我正在寻找任何想法如何调试或找出错误。页面上的用户数量没有变化。大约有相同数量的请求。我有一些缓存。但是由于我有这么多产品页面,并且大多数用户访问不同的页面,因此缓存在那里几乎没有影响。任何想法如何为那么多产品页面制作更好的缓存?
答案 0 :(得分:1)
您是否启用了“查询缓存”?它可能有帮助,也可能有害。
MySQL可以使用多少RAM(包括它使用的是什么)?让我们看看这些进行各种检查:
[[[][]][[2][]]]
设置SHOW VARIABLES;
SHOW GLOBAL STATUS;
和
long_query_time = 0.5
或mysqldumpslow -s t
汇总慢速日志 - 这些排序依据“对系统的影响”。pt-query-digest
和SHOW CREATE TABLE
。答案 1 :(得分:0)
也许您网站上的插入/更新/删除与选择的比率发生了变化。当您的系统配置为快速数据检索时,这是通常的问题。但在某些时候,您会增加插入/更新/删除的数量以及所有系统性能下降。
当然,只需通过优质内容或其他内容增加网站上的用户即可。因此,您需要比较当前数据库负载和前一时段的负载,而不会出现此类问题。