数据仓库服务 GAUSSDB(DWS)-GaussDB(DWS)的CPU资源隔离管控介绍:专属限额

时间:2024-04-24 17:49:36

专属限额

专属限额:限定资源池中数据库用户在执行作业时可使用的最大CPU核数占总核数的百分比。

专属限额有两层含义:
  • 专属:CPU是某个控制组专属的,其他控制组不能使用空闲的CPU资源。
  • 限额:只能使用限额配置的CPU资源,其他控制组空闲的CPU资源,也不能抢占。

专属限额基于cpuset.cpu实现,通过合理的限额设置可以实现控制组之间CPU资源的绝对隔离,各控制组间任务互不影响。但因为CPU的绝对隔离,因此在控制组空闲时就会导致CPU资源的极大浪费,因此限额设置不能太大。从作业性能来看并不是限额越大越好。

例如:10个作业运行在10个CPU上,CPU平均使用率5%左右;10个作业运行在5个CPU上,CPU平均使用率10%左右。通过上面共享配额的分析可知:虽然10个作业运行在5个CPU上CPU使用率很低,看似空闲,但是相对10个作业运行在10个CPU上还是存在某种程度的CPU资源争抢,因此10个作业运行在10个CPU上性能要好于运行在5个CPU上。但也不是越多越好,10个作业运行在20个CPU上,在任意一个时刻,总会至少10个CPU是空闲的,因此理论上10个作业运行在20个CPU上并不会比运行在10个CPU上性能更好。对于并发为N的控制组,分配cpus小于N的情况下,CPU越多作业性能越好;但是当分配CPUS大于N的情况下,性能就不会有任何提升了。

support.huaweicloud.com/dws_faq/dws_03_2111.html