php – MySQL高CPU使用率和持久链接

开发技术 作者: 2024-07-25 19:00:01
我在 mysqld进程上的CPU峰值非常高(大于100%,甚至在一点上看到300%).我的平均负载大约是:.25,.34,.28. 我读了这篇关于这个问题的精彩帖子:MySQL high CPU usage 其中一项主要工作是禁用持久连接.所以我检查了我的php.ini和mysql.allow_persistent = on和mysql.max_persistent = -1 – 这意味着没有限制
我在 mysqld进程上的cpu峰值非常高(大于100%,甚至在一点上看到300%).我的平均负载大约是:.25,.34,.28.

我读了这篇关于这个问题的精彩帖子:MySQL high CPU usage

其中一项主要工作是禁用持久连接.所以我检查了我的PHP.ini和MysqL.allow_persistent = on和MysqL.max_persistent = -1 – 这意味着没有限制.

在改变任何事情之前,这为我提出了一些问题,以确保:

>如果我的MysqLd进程每隔几秒钟超过100%,我的负载平均值不应高于那么?
>什么会禁用持久链接 – 我的脚本会继续按原样运行吗?
>如果我关闭它并重新加载PHP这对我当前的用户意味着什么,因为会有很多活跃的用户.

编辑:

cpu信息:Core2Quad q9400 2.6 Ghz

持久连接本身不会使用任何cpu – 如果没有使用连接,它只是闲置而只消耗一点内存并占用套接字.

负载平均值就是 – 平均值.如果你的进程在每秒10次和0%之间交替变换,你的平均负载为0.5.它们有助于找出长期持久的高cpu,但是由于它们的性质隐藏/消除了尖峰的迹象.

通常不需要与MysqL的持久连接. MysqL具有相对快速的连接协议,使用持久连接节省的时间相当少.缺点是一旦连接持续存在,它就会处于不一致状态.例如如果使用连接的应用程序意外死亡,MysqL将无法看到并开始清理.这意味着应用程序创建的任何服务器端变量,任何锁定,任何事务等等都将保留在应用程序崩溃时所处的状态.

当连接被另一个应用程序重新使用时,您将从水槽中的脏盘子和未冲洗的马桶开始.它很容易导致死锁,因为悬挂的事务/锁定 – 新的应用程序将无法了解它们,旧的应用程序不再放弃那些.

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_50691.html
php mysql cpu 使用 持久 链接