有人能告诉我下面的信息意味着什么或说什么?我并不熟悉MySQL。此信息来自我的托管服务提供商。我特别感兴趣的是命令和时间评论意味着什么或告诉他们。
查看当前的mysql进程列表,我们注意到以下与您的帐户相关的线程:
| Id | User | Host | db | Command | Time | State | Info |
| 4655267 | xyz | localhost | xyz | Sleep | 111 |
| 4655961 | xyz | localhost | xyz | Sleep | 8 |
| 4654241 | xyz | localhost | xyz | Sleep | 126 |
| 4655961 | xyz | localhost | xyz | Sleep | 38 |
以下是有关情况的更详细信息:
我最近遇到了与我的共享托管服务提供商有关MySQL使用情况的情况。参考页面已经启动并运行了将近两年,直到两天前他们声称它正在利用过多的资源并将负载放在服务器上,使其不稳定。我们的网站流量和统计数据在过去9个月中保持不变,可能更长。
他们在将它们拖出来之后向我提供了一些信息,但我的问题是:
以下是他们提供的一些信息:
CPU: 0.06 %
Memory: 0.17 %
Mysql: 1.2 %
Top Process %CPU 3.0 /usr/php4/bin/php / specific file name
Top Process %CPU 1.5 /usr/php4/bin/php / specific file name
您帐户的问题是MySQL使用率很高。其他帐户的平均使用率是MySQL的0.2%,而您的帐户消耗超过1%。
查看当前的mysql进程列表,我们注意到以下与您的帐户相关的线程:
+ Id | User | Host | db | Command | Time | State | Info |
| 4655267 | xyz | localhost | xyz | Sleep | 111 |
| 4655961 | xyz | localhost | xyz | Sleep | 8 |
| 4654241 | xyz | localhost | xyz | Sleep | 126 |
| 4655961 | xyz | localhost | xyz | Sleep | 38 |
请确保您的帐户一次同时拥有不超过2-3个mysql连接,并继续优化连接字符串以建立连接池;还确保所有连接在使用后正确终止,并且没有任何连接保留为“空闲打开”。
我已经检查了过去七天的资源使用情况,这就是它对MySQL的说法。奇怪的是,由于页面不再有效并且最近2.5天没有使用,因此使用率上升或保持不变。
1/21/11 : Number of MySQL procs (average) - 1.19
1/20/11 : Number of MySQL procs (average) - 1.24
1/19/11 : Number of MySQL procs (average) - 1.20
1/18/11 : Number of MySQL procs (average) - 1.18
1/17/11 : Number of MySQL procs (average) - 1.13
1/16/11 : Number of MySQL procs (average) - 1.08
1/15/11 : Number of MySQL procs (average) - 1.09
答案 0 :(得分:2)
好的,回答你的问题:
我认为这是否是“过度”资源使用取决于您与托管公司的协议。我会回顾一下。但老实说,如果我的主机认为1%的CPU使用率过高,我会找到另一台主机。与4个睡眠连接相同。当然,我更习惯于专用托管(我说在我使用的机器上,MySQL的CPU使用率超过200%,而且过多的空闲连接将更像是几百个)。但即便如此,你使用的廉价机器只占不到1%,所以。考虑$ 1k i7机器上的最大CPU使用率是400或800%(取决于超线程)。
为什么它可能突然改变,唯一想到的是检查正确的指数。也许您的数据一直在缓慢增长?它也可能没有突然改变,但你的托管公司只是注意到“嘿,这台服务器超负荷,让我们看看它。”
很明显,如果关闭页面没有改变负载,那么它不会导致负载。但我相信你已经知道了。
进程列表告诉您有4个休眠(空闲)连接以及它们闲置多长时间。
要减少空闲连接数,请更改PHP / Apache配置。我相信mysql_pconnect
每个Apache进程都有一个连接。或者,切换到mysql_connect
。
唯一真正的编程答案是检查索引,对查询执行EXPLAIN
等等,这是正常的MySQL优化内容。我怀疑,真正的答案是找到一个在使用20¢/ mo的计算能力时不会抱怨的主机。
答案 1 :(得分:0)
您可以获得更好的信息mysql processlist
如果您使用的是mysql客户端或者说phpmyadmin,您实际上可以看到确定查询时间的过程,并查看哪些查询需要很长时间才能执行。