반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

[MySQL] CREATE RESOURCE GROUP 문 가이드: 리소스 최적화를 위한 시작점
SQL/MYSQL

[MySQL] CREATE RESOURCE GROUP 문 가이드: 리소스 최적화를 위한 시작점

2025. 6. 15. 00:00
728x90
반응형

 

리소스를 논리적으로 나누는 법

MySQL 8.0에서는 리소스 그룹(Resource Group) 기능을 통해 CPU 리소스를 특정 쿼리 또는 사용자 그룹에 할당할 수 있습니다. 이 기능의 핵심 시작점이 되는 명령이 CREATE RESOURCE GROUP입니다. 성능 조율과 워크로드 분리를 효율적으로 수행하고자 하는 DBA라면 반드시 알아야 할 문법입니다.


1. CREATE RESOURCE GROUP 기본 개념

CREATE RESOURCE GROUP 문은 리소스 그룹을 새로 정의할 때 사용합니다. 이 그룹은 특정 CPU 코어(VCPU)에만 쿼리를 실행하도록 제한할 수 있으며, MySQL의 스케줄러가 이를 기준으로 스레드를 할당합니다.

기본 구문:

CREATE RESOURCE GROUP rg_readonly VCPU 1,2,3;

위 명령은 rg_readonly라는 이름의 리소스 그룹을 만들고, 해당 그룹의 작업이 CPU 1~3번에서만 실행되도록 설정합니다.


2. 주요 옵션 설명

  • VCPU: 필수 항목으로, 사용할 가상 CPU 번호를 지정합니다. 예: VCPU 0-2,4
  • THREAD_PRIORITY: (MySQL 8.0.14 이상) 스레드 우선순위 지정 (HIGH, MEDIUM, LOW)
  • TYPE = USER: 현재는 유일하게 지원되는 타입이며, 사용자 스레드에만 적용됩니다.
  • ENABLE | DISABLE: 생성 시점에 활성화 여부를 설정할 수 있습니다.

예시:

CREATE RESOURCE GROUP rg_batch TYPE = USER VCPU 0-3 THREAD_PRIORITY LOW ENABLE;

3. 권한과 주의사항

  • RESOURCE_GROUP_ADMIN 권한이 필요합니다.
  • VCPU는 운영체제에 따라 다르며, performance_schema에서 확인해야 정확합니다.
  • 중복된 리소스 그룹 이름을 생성하려 하면 오류가 발생합니다.

4. 실무 활용 시나리오

  • 백그라운드 작업 분리: 낮은 우선순위의 VCPU를 사용하는 rg_background 그룹을 생성.
  • 리포트 쿼리 제한: BI 도구에서 실행되는 쿼리를 rg_reporting 그룹으로 묶어 성능 영향 최소화.
  • OLTP 처리 고속화: 핵심 트랜잭션 쿼리를 고성능 코어에 배치해 지연 최소화.

결론 및 실무 팁

CREATE RESOURCE GROUP은 MySQL에서 리소스 사용을 제어하는 가장 기본이 되는 명령어입니다. 다양한 워크로드가 혼재된 환경에서는 이 기능을 통해 성능 안정성과 효율을 동시에 잡을 수 있습니다.

실무 팁:

  1. 시스템의 VCPU 번호는 performance_schema.resource_groups 또는 sys.sys_cpu_summary에서 확인하세요.
  2. 리소스 그룹 사용 시, 쿼리 실행 전에 SET RESOURCE GROUP을 통해 명시적으로 할당하는 것이 좋습니다.
  3. 리소스 그룹 설정은 애플리케이션 계층에서 스크립트로 자동화하면 관리 효율이 높아집니다.

공식 문서 링크

  • MySQL CREATE RESOURCE GROUP 공식 문서
728x90
반응형

'SQL > MYSQL' 카테고리의 다른 글

[MySQL] CHECK TABLE 문 완전 정복: 테이블 무결성 검사 방법  (0) 2025.06.16
[MySQL] ANALYZE TABLE 문 완벽 가이드: 통계 최적화의 핵심  (0) 2025.06.16
[MySQL] 개발자를 위한 SET RESOURCE GROUP 문 사용법 및 CPU 관리 방식  (0) 2025.06.16
[MySQL] DROP RESOURCE GROUP 문: 불필요한 리소스 그룹 안전하게 삭제하기  (0) 2025.06.15
[MySQL] ALTER RESOURCE GROUP 문 완벽 가이드: 리소스 제어의 핵심 기능  (1) 2025.06.14
[MySQL] SET ROLE 문 완벽 이해: 동적 권한 제어의 핵심 기능  (0) 2025.06.14
[MySQL] SET PASSWORD 문 완벽 가이드: 안전한 비밀번호 관리를 위한 필수 지식  (3) 2025.06.13
[MySQL] SET DEFAULT ROLE 문 완전 정복: 사용자 권한 관리의 핵심  (0) 2025.06.13
    'SQL/MYSQL' 카테고리의 다른 글
    • [MySQL] 개발자를 위한 SET RESOURCE GROUP 문 사용법 및 CPU 관리 방식
    • [MySQL] DROP RESOURCE GROUP 문: 불필요한 리소스 그룹 안전하게 삭제하기
    • [MySQL] ALTER RESOURCE GROUP 문 완벽 가이드: 리소스 제어의 핵심 기능
    • [MySQL] SET ROLE 문 완벽 이해: 동적 권한 제어의 핵심 기능
    Ant_U
    Ant_U

    티스토리툴바