云数据库 GAUSSDB(FOR MYSQL)-GaussDB(for MySQL)建立连接慢导致客户端超时:原因分析

时间:2024-09-11 14:20:03

原因分析

  1. 查看 GaussDB (for MySQL)的错误日志,观察是否有如下信息:connection xxx is established slowly。示例:

    有上述日志,说明存在某些连接超过一定时间仍未被MySQL处理,客户端的超时时间大于该时间,就会报错。

  2. 进一步查看线程池配置(默认开启),可以在控制台查看。

    可以看出,threadpool_size为1,threadpool_stall_limit为500ms,threadpool_oversubscribe为3,线程池处理连接等待的时间主要与上述3个参数相关:

    • 当线程池所有线程在忙碌,线程池中的调度线程会每隔500ms(threadpool_stall_limit)创建一个新线程,所以此时,每个线程组平均每500ms才能处理一个新的连接。如果队列太长,很可能导致客户端超时;
    • 所有线程都在忙碌是指,工作线程达到线程池总线程数,在大量建立连接时,总线程数计算方法:threadpool_size*(threadpool_oversubscribe+1))
support.huaweicloud.com/trouble-gaussdbformysql/gaussdbformysql_trouble_0105.html