加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2020-05-26 02:14:33 所属栏目:PHP 来源:互联网
导读:我在 mysqld进程上的CPU峰值非常高(大于100%,甚至在一点上看到300%).我的平均负载大约是:.25,.34,.28. 我读了这篇关于这个问题的精彩帖子:MySQL high CPU usage 其中一项主要工作是禁用持久连接.所以我检查了我的php.ini和mysql.allow_persistent = on和m

我在 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将无法看到并开始清理.这意味着应用程序创建的任何服务器端变量,任何锁定,任何事务等等都将保留在应用程序崩溃时所处的状态.

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

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读