暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8s 数据库CPU管理

孤独剑 2022-01-15
617

1、VPCLASS 配置参数
当数据库服务器从离线模式启动到在线模式时,可以使用 VPCLASS 配置参数来指定需要启动多少个特定类型的虚拟处理器。通过该参数可一直设置 CPU、AIO、SHM、STR、TLI、SOC、JVP 和其他用户自定义 VP 的个数,在一般情况下,我们只需要配置 CPU VP,其他类型的 VP 系统会自动分配管理。

参数格式如下:

# VPCLASS cpu - Configures the CPU VPs. The format is:

# VPCLASS cpu, num=<number of CPU VPs>,

# [,max=<maximum number for class>]

# [,aff=<single CPU number> | <start cpu>-<end cpu> |

# ( <start cpu>-<end cpu>/<skip amount> ) ]

# [,noage]

# for example:

# num=4,aff=(1-10/3) means assign 4 CPU VPs to processors

# 1,4,7,10

Aff 绑定 CPU,固定 VP 和物理 CPU 之间的关系。

Processor affinity 功能可以将 CPU 虚拟处理器绑定到真实的物理 CPU 上。aff 参数用

于指定需要绑定的虚拟处理器的编号或编号的起始范围。需要注意的是,aff 的取值不能超

过物理 CPU 的个数减 1 的值,因为需要保留一个 CPU 以处理系统进程。

在部分操作系统上,进程的优先级会随着运行时间的增加而降低,这个特性被称为优

先级老化(Priority Aging)。如果希望使一个长期运行的进程保持高优先级,就需要关闭该

特性。在使用 VPCLASS 配置参数时,可以使用 noage 来保证该类虚拟处理器的优先级。

如果用户创建了用户自定义历程(User-Defined Routine,UDR),则它在会运行在 CPU

VP 的进程上。为了避免可能发生在 CPU VP 上的阻塞,可以创建一个用户自定义 VP 用来

运行 UDR。此外还可以在 VPCLASS 中设置 noyield 选项,使得 UDR 可以独占用户自定义

VP,此时在 noyield 的虚拟处理器中将不发生上下文切换,所有历程都是顺序执行的。

在一般情况我们配置如下 ONCONFIG 参数即可:

MULTIPROCESSOR 1 #开启多 CPU 模式

VPCLASS cpu,num=15,noage #一般配置为物理 CPU(多核总数)个数-1

VP_MEMORY_CACHE_KB 0 #配置 CPU 缓存

SINGLE_CPU_VP 0

可以通过 onmode -p <+-#> <class> 动态增加、减少 CPU VP 数量。

2、多处理器配置
MULTIPROCESSOR 配置参数用于启用数据库的多处理器特性。该参数也决定了服务器是否启用自旋锁/信号量。如果将 MULTIPROCESSOR 设置为 1,则服务线程将会使用自旋锁来进行并发控制而不是等待队列。

SINGLE_CPU_VP 配置参数用于指定是否只使用一个 CPU VP。当该参数值为 1 时,服务器只能启动 1 个 CPU VP,并且不能动态增加 CPU VP 和自定义 VP。此时数据库也不会对一些内部结构加锁,因为并不会有其他处理器访问这些结构。

3、监控数据库线程状态
可以通过 onatat -g 命令查看数据库实例的线程状态,命令选项如下表所示。

表 通过 onstat -g 功能查看数据库实例线程状态的参数



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论