KingbaseES 等待事件之 - Client ClientWrite
等待事件含义
Client:ClientWrite等待事件指数据库等待向客户端写入数据。
在正式业务系统中,客户端必然和数据库集群之间有数据交互,这里指的是数据接收,发送。数据库集群在向客户端发送更多数据之前等待的时间是client:ClientWrite事件。
基于上述原理,数据库集群和客户端之间的网络吞吐量降低可能导致此等待事件。客户端上的CPU压力大和网络饱和也可能会导致此等待事件。CPU压力大是指CPU资源被充分利用,并且可能出现cpu资源等待,网络饱和是指数据库和客户端之间的网络承载的数据量超过了它所能处理的数据量。
等待事件增加的可能原因
1、网络延迟增加
数据库集群和客户端之间的网络延迟问题,因为较高的网络延迟增加了客户端接收数据所需的时间。
2、客户端负载增加
客户端上可能存在CPU压力或网络饱和。客户端负载的增加会延迟从数据库集群接收数据,因为客户端的硬件资源无法处理大量写入的数据。
3、短时间发送到客户端大量数据
数据库集群可能向客户端发送大量数据,导致客户端可能无法快速地接收数据。诸如大表之类的sql活动可能会导致此等待事件的增加。
解决方法
1、客户端放置在与数据库集群相同的可用区域子网中,这样可以减少网络延迟并提高网络吞吐量,或者部署客户端和数据库服务器的专线网络。提高网络带宽。
2、在客户端操作系统上配置最大传输单元(MTU>=1500),可以减少网络往返次数并提高网络吞吐量。
3、减少数据库集群发送到客户端的数据量可以减轻客户端上的CPU和网络争用。例如优化sql或者调整业务逻辑顺序。
4、确认客户端当前资源是否受到CPU或网络带宽的限制,以便扩展客户端资源。
KINGBASE研究院