GBase 8a MPP的gclusterd进程是调度服务主要负责对外连接,解析SQL和调度下发任务,并返回结果集;因此从职能设计上来说gclusterd不应该有较大的CPU负载。
但是当大量并发SQL,且连接到同一个gclusterd,就会造成该节点gclusterd进程cpu负载过高的问题。
那么如何解决高负载的问题呢?
- SQL任务多,就算每个连接占用资源很少,但多了也一样承担不起。此时如果将高并发任务连接到多个调度节点,做一下负载均衡就能有效缓解单一节点cpu负载高的问题。
- 另外还可以从业务层面考虑下并发合理性,通过控制前端连接池数量有效降低并发SQL数量。
GBase 8a MPP的gbased进程作为真正的数据运算进程,在SQL执行过程中会占用大量的CPU资源。若服务器除了部署GBase 8a MPP以外,同时还部署了其他工具需要保留一定的资源使其可以正常运行,这时就需要限制gbased进行资源占用情况到一个相对合理的范围。
那么限制gbased进程的cpu负载又有哪些方法呢?
- 可以通过资源管理模块,限制SQL并发数量,此方法可以有效的控制集群层接收到SQL后将任务下发到gbased的数量,因为调节gbased进行的运算量,从而降低运算过程中的负载。
- 可以通过gbase_parallel_degree参数,该参数用于控制每条SQL执行的最大并行度;也可有效调节cpu负载。
- _gbase_parallel_aggr_mode参数用于控制并行分组聚集时的数据切分策略,不同场景下可通过调节该参数有效改善聚合运算过程中CPU的负载。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。