美文网首页程序员
Operation timeout SequelizeConn

Operation timeout SequelizeConn

作者: last_edc | 来源:发表于2020-07-28 17:03 被阅读0次

    数据库操作超时常见原因:

    • 连接数超过负荷
    • 锁表

    注意:以下SQL适用postgres数据库

    查看数据库最大连接数

    SHOW max_connections;
    

    查看活跃连接数的SQL:

    -- 方式一:
    SELECT
        count(*)
    FROM
        pg_stat_activity
    WHERE
        datname = '数据库名称';
    
    -- 方式二:
    SELECT
        sum(numbackends)
    FROM
        pg_stat_database
    WHERE
        datname = '数据库名称';
    

    如果发现活跃连接数很小,继续查看活跃连接数里边有没有锁表的

    SELECT * FROM pg_stat_activity WHERE datname = '数据库名字';
    
    image.png

    发现有很多 state 为 idle in transaction (aborted) 记录,这种情况一般是开启事务后,并没有提交或回滚操作。

    杀死无效的连接(包括锁表的连接)
    select pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='tiku' and "state"='idle in transaction (aborted)';
    
    查看锁表的情况
    select relation::regclass, * from pg_locks where not granted;
    

    相关文章

      网友评论

        本文标题:Operation timeout SequelizeConn

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