GBase 8s 运行时在线调整虚拟处理器,以及 VP 绑 CPU 的实际用法
GBase 8s 运行时在线调整虚拟处理器,以及 VP 绑 CPU 的实际用法
GBase 8s 的虚拟处理器有个比较实用的特点:数据库跑起来之后,可以在线给某一类 VP 加数量,也可以在线减下来,不需要停库。这对有明显业务峰谷的系统比较友好。
什么时候需要在线加 VP
常见的场景是某类 VP 出现瓶颈。比如业务高峰期,CPU 类 VP 的排队请求一直在涨,说明现有的 CPU VP 数量不够用,处理能力跟不上请求堆积;或者 I/O 类 VP 繁忙,磁盘读写请求排不出去。这时候不用重启数据库,直接给对应类型启动几个新的 VP,负载就被分摊掉了。等高峰期过去、请求量回落,再把多余的 CPU VP 终止掉,把资源还给系统。
反过来,数据库运行中也支持在线删除 VP,主要删的是 CPU 类 VP 和用户自定义类 VP。这个动作要挑业务低峰做,删之前看一眼当前负载,别在业务正忙的时候把干活的 VP 砍掉。
VP 绑 CPU 是怎么回事
在多核服务器上,可以把 CPU 类 VP 绑定到指定的物理 CPU 上,让这个 VP 一直固定在那一颗核上跑,不被操作系统调度到别的核。这个能力一般叫处理器专用或 CPU 绑核。
绑核带来两个好处。一是减少进程在 CPU 之间来回迁移的开销,VP 一直待在同一颗核上,缓存命中率更高,处理性能稳定一些。二是能做资源隔离,比如把核心业务相关的 VP 固定在一组 CPU 上,把其他负载放在另一组 CPU 上跑,互相不抢。
有一点要注意:只有 CPU 类 VP 支持绑核,其他类型的 VP 不支持。绑核这个操作适合在多核服务器、并且业务对延迟敏感的场景用,不是所有环境都必须做 —— 机器核数不多、负载不复杂的时候,让操作系统自己调度也够用。
日常使用建议
VP 数量调整和绑核都不是越激进越好。VP 加太多,内部线程之间反而会因为抢锁和切换增加开销;绑核绑得过细,又可能造成某些核空闲、另一些核过载。实际配置建议先按默认值跑起来,压测或观察一段时间,看哪类 VP 长期排队、哪颗 CPU 长期打满,再针对性地加减 VP 或做绑核调整。调整前后对比一下响应时间和 CPU 利用率,效果好不好数据说了算。
评论
热门帖子
- 12025-12-01浏览数:183859
- 22023-05-09浏览数:26536
- 42023-09-25浏览数:20221
- 52020-05-11浏览数:19001