gpt4 book ai didi

php - 帮助了解 MySQL 进程列表描述/含义

转载 作者:行者123 更新时间:2023-11-29 09:13:50 27 4
gpt4 key购买 nike

谁能告诉我下面的信息是什么意思或说了什么?我对 MySQL 不太熟悉。此信息来 self 的托管提供商。我对命令和时间注释的含义或正在告诉他们的内容特别感兴趣。

查看当前的 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 个月甚至更长时间内保持不变。

他们从其中拖出一些信息后向我提供了一些信息,但我的问题是:

  1. 这是否过度使用资源?
  2. 为什么两年后它突然成为一个问题?
  3. 即使在过去 2.5 天禁用该页面后,MySQL 上的资源使用率仍然保持不变或上升,那么问题是否真的与我的页面或其他内容有关?
  4. 进程列表告诉我什么?
  5. 我可以采取什么措施来解决这个问题?

以下是他们提供的一些信息:

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 |

请确保您的帐户单次并发 mysql 连接数不超过 2-3 个,并继续优化连接池的连接字符串;还要确保所有连接在使用后都正确终止,并且没有连接处于“空闲打开”状态。

我检查了过去 7 天的资源使用情况,这就是 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

最佳答案

好的,回答您的问题:

  1. 我认为,这是否是“过度”资源使用取决于您与托管公司的协议(protocol)。我会回顾一下。但老实说,如果我的主机认为 1% 的 CPU 使用率过高,我会寻找另一台主机。与 4 个 sleep 连接相同。当然,我更习惯于专用托管(我想说,我使用的机器上的 MySQL 的 CPU 使用率过高,远远超过 200%,而过多的空闲连接可能会达到数百个)。但即便如此,您使用的一台便宜机器的成本还不到 1%,所以。假设一台 1000 美元的 i7 机器上的最大 CPU 使用率为 400% 或 800%(取决于超线程)。

  2. 对于为什么它可能突然改变,唯一想到的就是检查正确的索引。也许您的数据一直在缓慢增长?也有可能它没有突然改变,但您的托管公司刚刚注意到“嘿,该服务器重载,让我们调查一下”。

  3. 嗯,显然,如果关闭页面没有改变负载,那么它就不会导致负载。但我确信您已经知道这一点。

  4. 进程列表告诉您有 4 个 sleep (空闲)连接,以及它们空闲了多长时间。

  5. 要减少空闲连接数,请更改 PHP/Apache 配置。我相信 mysql_pconnect 为每个 Apache 进程保留一个连接。或者,切换到 mysql_connect

唯一真正的编程答案是检查你的索引,对你的查询进行EXPLAIN,等等,正常的MySQL优化工作。我怀疑,真正的答案是找到一个当您使用 20 美分/月的计算能力时不会提示的主机。

关于php - 帮助了解 MySQL 进程列表描述/含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4760959/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com