spin_lock

作者: 葛一娜 | 来源:发表于2021-03-31 18:13 被阅读0次

    当性能测试出现下降,使用perf top监控,出现mt_spin_lock_wait超过5%

    出现spin_lock的有几种情况。

    1、rootdbs大小不合理

    在运行过程中使用onstat -d,检查各个空间的使用情况,显示rootdbs剩余空间很少。

    修改onconfig文件,rootdbs大小,从3000000修改为30000000。

    重新测试,再没出现。

    2、锁争抢

    如果rootdbs空间还有很多剩余,使用onstat -g ath,如果出现大量的lock wait。

    说明锁太少,一个锁占用120字节内存。再内存允许的情况下,加大locks数。

    3、索引分片不合理

    onstat -g ath

    多刷新几次,看到是哪个锁,例如:pt_20004e

    将20004e 16进制转换为10进制:2097230

    oncheck -pt benchmarksql >a.txt

    去a.txt中找2097230对应的索引:138_134

    echo "select * from sysindexes"| dbaccess -e

    benchmarksql - >b.txt

    从b文件中找到 138_134对应的tabid:138

    select * from systables where tabid=138;

    找到对应的表,然后检查这个表对应的表结果和索引分片是否合理

    查看spin_lock哪个占用最多

    onstat -g spi|head -n 1000|sort -rnk 1|less

    相关文章

      网友评论

          本文标题:spin_lock

          本文链接:https://www.haomeiwen.com/subject/npzozhtx.html