上一篇: 下一篇:

我承认我在DZ上有RPWT

2009年06月22日  |  4:13 下午分类:Develop  |  标签:  |  

操作cdb_sessions表,发现大量的locked,直接后果就是mysql无法响应WEB的请求,WEB无法响应浏览器端的请求。

ScreenShot00019

ScreenShot00020

太壮观:

+-------+------+-----------+--------+---------+------+--------+------------------------------------------------------------------------------------------------------+
| Id    | User | Host      | db     | Command | Time | State  | Info                                                                                                 |
+-------+------+-----------+--------+---------+------+--------+------------------------------------------------------------------------------------------------------+
| 84082 | root | localhost | discuz | Query   |   54 | update | INSERT INTO  cdb_sessions (sid, ip1, ip2, ip3, ip4, uid, username, groupid, styleid, invisible, acti |
| 84083 | root | localhost | discuz | Query   |   54 | Locked | DELETE FROM  cdb_sessions WHERE sid='Z71z19' OR lastactivity<(1245657270-900) OR ('0'<>'0' AND uid=' |
| 84084 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84086 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84085 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84087 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84088 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84089 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84090 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84091 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84092 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84093 | root | localhost | discuz | Query   |   54 | Locked | DELETE FROM  cdb_sessions WHERE sid='wsX92s' OR lastactivity<(1245657270-900) OR ('0'<>'0' AND uid=' |
| 84095 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84096 | root | localhost | discuz | Query   |   54 | Locked | DELETE FROM  cdb_sessions WHERE sid='Ra5ZqL' OR lastactivity<(1245657270-900) OR ('0'<>'0' AND uid=' |
| 84094 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |
| 84097 | root | localhost | discuz | Query   |   54 | Locked | SELECT sid, uid AS sessionuid, groupid, groupid='6' AS ipbanned, pageviews AS spageviews, styleid, l |
| 84100 | root | localhost | discuz | Query   |   54 | Locked | SELECT sid, uid AS sessionuid, groupid, groupid='6' AS ipbanned, pageviews AS spageviews, styleid, l |
| 84099 | root | localhost | discuz | Query   |   54 | Locked | SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM cdb_sessions WHERE uid <> 0 |

最为BT的是,这些locked形成之后,必须重启mysql才行

转载时务必以超链接形式标明文章原始出处和作者信息。

9 位领导已批示 关于 “我承认我在DZ上有RPWT”

  1. Deepseath 发表于: 六月 22nd, 2009 7:05 下午

    真汗,忘记填写Email提交后退内容全没了:(
    重新写。
    cdb_seesions表是MEMORY类型,是内存操作,一般不会出现这么恐怖的锁表情况的,我见过很多15分钟在线过K的也没什么问题的。
    建议检查一下cdb_sessions表是否有问题,是否类型不是MEMORY了。删除这个表重新建立一个吧。
    另外,看看在线保持时间是否设置太小了?这个值设置小的话相对统计在线比较精确但也会造成频繁的update操作。一般K级的在线,15分钟就可以了。
    还有就是,你是否使用的是远程链接数据库?如果是的话,尝试使用ip进行连接,关闭mysql的反向解析。
    最后,尝试更改连接数据库的方式,如果是持久链接改成非持久连接。
    希望能对你有帮助。

  2. 幻想曲 发表于: 六月 22nd, 2009 8:20 下午

    表已经重建过了。
    问题比较奇怪:
    单独浏览不会出现,单独发帖也不会出现,发帖与浏览同时操作时才会出现这种情况。
    当然,也可能与我进行压力测试的压力有关。
    谢谢你的帮助。

  3. 3ogx 发表于: 六月 23rd, 2009 9:14 上午

    索引~我记得discuz的那些表默认是没有多少索引的~检查下索引。

  4. 幻想曲 发表于: 六月 23rd, 2009 10:13 上午

    cdb_sessions表建索引不大现实,它删除与select的条件过多,不可能每个字段都加索引的~~~~

  5. 墨尔本 发表于: 六月 24th, 2009 10:04 上午

    居然有那么多的lock…

  6. 陈默 发表于: 十二月 23rd, 2009 12:18 上午

    貌似我也出现这个问题。。。- – 楼主解决了吗?
    能否分享下方法。。

  7. 幻想曲 发表于: 十二月 23rd, 2009 11:27 上午

    @陈默,
    没解决,一直放着呢,现在还没有那么大的量。。12

  8. 问道 发表于: 五月 6th, 2010 3:52 下午

    单独浏览不会出现,单独发帖也不会出现,发帖与浏览同时操作时才会出现这种情况

    。。。。。。

    关注中

  9. kakiui 发表于: 六月 29th, 2010 11:08 上午

    我也是啊,楼主和我一样的!

    http://bbs2.chinaunix.net/viewthread.php?tid=1358965


发表您的评论

1410168172122013183195114157619