GaussDB(DWS) 集群通信系列三:集群通信常用视图

举报
c.j 发表于 2020/11/13 09:49:54 2020/11/13
【摘要】 视图是检测数据库运行状态的重要工具和手段,GaussDB(DWS)集群通信常用视图主要包含pg_stat_activity、pg_comm_client、pgxc_thread_wait_status、pgxc_comm_recv_stream、pgxc_comm_send_stream、pgxc_comm_status,其在数据库通信问题定位中发挥了重要作用。

视图是检测数据库运行状态的重要工具和手段,GaussDBDWS)集群通信常用视图主要包含pg_stat_activitypg_comm_clientpgxc_thread_wait_statuspgxc_comm_recv_streampgxc_comm_send_streampgxc_comm_status,其在数据库通信问题定位中发挥了重要作用。

 

1pg_stat_activity

该视图显示和当前用户查询相关的信息。主要用于查看当前用户执行查询的状态和查询对应的query_id

2pg_comm_client_info

该视图存储单个节点客户端连接信息(DN上查询该视图显示CN连接DN的信息)。

3pgxc_thread_wait_status

该视图显示由执行语句产生的线程之间层次调用关系,以及各个线程的阻塞等待状态。该视图常用来定位数据库通信过程中的hang问题,主要用于定位的信息包括:

Ø  query_id:查询ID

Ø  tlevel:线程层级,对于集群通信而言,Postgres thread线程为0级线程,其根据任务会fork其他子线程,集群通信线程间的关系具体可以参考http://3ms.huawei.com/hi/group/2191/wiki_5275953.html?for_statistic_from=all_group_wiki

Ø  wait_status:等待线程的当前等待状态,none表示没有等待,其他状态可参考产品文档。

4pgxc_comm_recv_stream

该视图显示DN上所有的通信库接收流的状态。

5pgxc_comm_send_stream

该视图显示DN上所有的通信库发送流的状态。

6pgxc_comm_status

该视图显示所有DN的通信库状态。包含:节点名称、节点通信库发送/接收速率、cmailboxbuffer大小、libcomm/libpq进程通信内存大小、线程实时/最高实时使用率、当前使用的逻辑连接总数。

 

通信视图的关联关系使用和hang问题定位示例

查询单个的视图往往信息有限而作用不大,视图最大的妙用在于利用各信息的关联关系,要求使用者能够联系多方信息,进行问题定位和状态监测,这一点无疑比较困难,因此整理和介绍视图的关联关系对于视图使用者极为重要,此处仅通过hang问题的示例,和视图部分信息的关联关系使用,介绍这种运用思想和方法,通信视图完整的关联关系将在后续GaussDB(DWS) 集群通信系列中给出。


可以看出,定位hang问题的一般步骤为:

1、  根据pg_stat_activity视图查看当前查询的query_id

2、  根据pgxc_thread_wait_status中相应的query_id查询对应的线程状态,是等待什么导致的hang

3、  根据wait_status的信息,查看对端信息,包含线程层级,节点等

4、  查看对端具体的线程信息pg_thread_wait_status,如果是DN可查对应的连接流信息,可以利用netstat,线程号查看对端信息,分析对端的行为。

 

通信hang问题典型案例:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。