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에서 리소스 사용을 제어하는 가장 기본이 되는 명령어입니다. 다양한 워크로드가 혼재된 환경에서는 이 기능을 통해 성능 안정성과 효율을 동시에 잡을 수 있습니다.
실무 팁:
- 시스템의 VCPU 번호는 performance_schema.resource_groups 또는 sys.sys_cpu_summary에서 확인하세요.
- 리소스 그룹 사용 시, 쿼리 실행 전에 SET 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 |