php – MySQL高CPU使用率和持久链接
|
我在 mysqld进程上的CPU峰值非常高(大于100%,甚至在一点上看到300%).我的平均负载大约是:.25,.34,.28. 我读了这篇关于这个问题的精彩帖子:MySQL high CPU usage 其中一项主要工作是禁用持久连接.所以我检查了我的php.ini和mysql.allow_persistent = on和mysql.max_persistent = -1 – 这意味着没有限制. 在改变任何事情之前,这为我提出了一些问题,以确保: >如果我的mysqld进程每隔几秒钟超过100%,我的负载平均值不应高于那么? 编辑: CPU信息:Core2Quad q9400 2.6 Ghz 持久连接本身不会使用任何CPU – 如果没有使用连接,它只是闲置而只消耗一点内存并占用套接字.负载平均值就是 – 平均值.如果你的进程在每秒10次和0%之间交替变换,你的平均负载为0.5.它们有助于找出长期持久的高CPU,但是由于它们的性质隐藏/消除了尖峰的迹象. 通常不需要与mysql的持久连接. MySQL具有相对快速的连接协议,使用持久连接节省的时间相当少.缺点是一旦连接持续存在,它就会处于不一致状态.例如如果使用连接的应用程序意外死亡,MySQL将无法看到并开始清理.这意味着应用程序创建的任何服务器端变量,任何锁定,任何事务等等都将保留在应用程序崩溃时所处的状态. 当连接被另一个应用程序重新使用时,您将从水槽中的脏盘子和未冲洗的马桶开始.它很容易导致死锁,因为悬挂的事务/锁定 – 新的应用程序将无法了解它们,旧的应用程序不再放弃那些. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
