MySQL tutorial: CREATE RESOURCE GROUP [EN]
top of page
CerebroSQL

MySQL: 

CREATE RESOURCE GROUP

Syntax:
CREATE RESOURCE GROUP group_name
TYPE = {SYSTEM|USER}
[VCPU [=] vcpu_spec [, vcpu_spec] ...]
[THREAD_PRIORITY [=] N]
[ENABLE|DISABLE]

vcpu_spec: {N | M - N}

CREATE RESOURCE GROUP is used for resource group management (see
https://dev.mysql.com/doc/refman/8.0/en/resource-groups.html). This
statement creates a new resource group and assigns its initial
attribute values. It requires the RESOURCE_GROUP_ADMIN privilege.

group_name identifies which resource group to create. If the group
already exists, an error occurs.

The TYPE attribute is required. It should be SYSTEM for a system
resource group, USER for a user resource group. The group type affects
permitted THREAD_PRIORITY values, as described later.

The VCPU attribute indicates the CPU affinity; that is, the set of
virtual CPUs the group can use:

o If VCPU is not given, the resource group has no CPU affinity and can
use all available CPUs.

o If VCPU is given, the attribute value is a list of comma-separated
CPU numbers or ranges:

o Each number must be an integer in the range from 0 to the number of
CPUs ? 1. For example, on a system with 64 CPUs, the number can
range from 0 to 63.

o A range is given in the form M ? N, where M is less than or equal
to N and both numbers are in the CPU range.

o If a CPU number is an integer outside the permitted range or is not
an integer, an error occurs.

Example VCPU specifiers (these are all equivalent):

VCPU = 0,1,2,3,9,10
VCPU = 0-3,9-10
VCPU = 9,10,0-3
VCPU = 0,10,1,9,3,2

The THREAD_PRIORITY attribute indicates the priority for threads
assigned to the group:

o If THREAD_PRIORITY is not given, the default priority is 0.

o If THREAD_PRIORITY is given, the attribute value must be in the range
from -20 (highest priority) to 19 (lowest priority). The priority for
system resource groups must be in the range from -20 to 0. The
priority for user resource groups must be in the range from 0 to 19.
Use of different ranges for system and user groups ensures that user
threads never have a higher priority than system threads.

ENABLE and DISABLE specify that the resource group is initially enabled
or disabled. If neither is specified, the group is enabled by default.
A disabled group cannot have threads assigned to it.

Examples:

o Create an enabled user group that has a single CPU and the lowest
priority:

CREATE RESOURCE GROUP rg1
TYPE = USER
VCPU = 0
THREAD_PRIORITY = 19;

o Create a disabled system group that has no CPU affinity (can use all
CPUs) and the highest priority:

CREATE RESOURCE GROUP rg2
TYPE = SYSTEM
THREAD_PRIORITY = -20
DISABLE;

Resource group management is local to the server on which it occurs.
CREATE RESOURCE GROUP statements are not written to the binary log and
are not replicated.

Example

bottom of page