带你走进数仓大集群内幕丨详解关于作业hang及残留问题定位
💡
原文中文,约2500字,阅读约需6分钟。
📝
内容提要
本文介绍了在DWS大集群中定位作业hang和残留问题的方法,通过查看通信系统视图、线程等待状态视图和活跃会话视图,可以观察作业的执行状态和线程的阻塞等待情况。通过分析堆栈和查询远端线程的状态,可以初步定位问题所在。其中,第一个问题是集群DN上存在未执行完的作业,第二个问题是集群CN上存在未执行完的作业但DN上的作业已经全部退出。需要进一步分析和联系责任田来解决问题。
🎯
关键要点
- 本文介绍了在DWS大集群中定位作业hang和残留问题的方法。
- 通过查看通信系统视图、线程等待状态视图和活跃会话视图,可以观察作业的执行状态和线程的阻塞等待情况。
- 第一个问题是集群DN上存在未执行完的作业,第二个问题是集群CN上存在未执行完的作业但DN上的作业已经全部退出。
- 使用pgxc_comm_send_stream和pgxc_comm_recv_stream视图可以查看DN上的通信库发送和接收流状态。
- pg_thread_wait_status和pgxc_thread_wait_status视图用于检测工作线程和辅助线程的阻塞等待情况。
- pg_stat_activity和pgxc_stat_activity视图显示当前用户查询相关的信息。
- 通过全局会话等待视图观察作业当前的执行状态,分析作业的query_id。
- 初步分析堆栈代码属于通信相关,需找对应的责任田定位问题。
- 分析发现CN上存在未执行完的作业,但DN上的作业连接已全部退出,需进一步分析CN对应的等待状态。
- 通过通信pooler视图查询对应的远端线程状态,进一步定位问题。
➡️