Search
Duplicate

Plancache 만료 설정 및 삭제 방법

문서번호 : 11-338053

Document Information

최초 작성일 : 2022.06.16
최종 수정일 : 2022.10.25
이 문서는 아래 버전을 기준으로 작성되었습니다.
SinglestoreDB : 7.8

Goal

plancache 만료 설정하는 방법과 수동으로 삭제하는 방법에 대해 알아본다

Solution

사전 지식

plancache는 in-memory plancache 와 on-disk plancache 가 있다.
쿼리가 처음 실행되면, 코드 생성이 활성화되고 최적화되어 저수준의 기계어로 번역된다.
컴파일된 쿼리 계획은 나중에 다시 사용할 수 있도록 plancache 에 저장된다.
계획이 만료되면 disk plancache에 남아, 다음 쿼리가 실행될 때 memory에 다시 로드된다. 

Plancache 만료 설정

Plancache 만료 설정은 disk_plan_expiration_minutes, enable_disk_plan_expiration, plan_expiration_minutes엔진 변수를 통해 설정할 수 있다.
아래의 예시는 in-memory 만료 설정을 8시간으로 변경하고, on-disk 만료를 1주일로 설정하는 방법이다.
SHOW VARIABLES LIKE '%plan_expiration%'; +------------------------------+-------+ | Variable_name | Value | +------------------------------+-------+ | disk_plan_expiration_minutes | 20160 | | enable_disk_plan_expiration | ON | | plan_expiration_minutes | 720 | +------------------------------+-------+ SET GLOBAL plan_expiration_minutes = 480; SET GLOBAL disk_plan_expiration_minutes = 10080; SHOW VARIABLES LIKE '%plan_expiration%'; +------------------------------+-------+ | Variable_name | Value | +------------------------------+-------+ | disk_plan_expiration_minutes | 10080 | | enable_disk_plan_expiration | ON | | plan_expiration_minutes | 480 | +------------------------------+-------+
SQL
복사
disk_plan_expiration_minutes 의 설정 값은 plan_expiration_minutes 의 값보다 크거나 같아야 한다.

Plancache 수동 삭제

Plancache 수동 삭제 방법

in-memory 와 on-disk 의 특정 쿼리 계획 조회하고 삭제하는 방법이다.
SHOW PLANCACHE; DROP [plan_id] FROM PLANCACHE;
SQL
복사
in-memory 와 on-disk 의 모든 plan 을 삭제하기 위해서는 다음 명령어를 사용한다.
DROP ALL FROM PLANCACHE;
SQL
복사
모든 쿼리가 다시 컴파일되어 워크로드 성능이 일시적으로 저하되므로, 이 명령은 SingleStore Support가 요청하거나, 전체 재생성이 요구되는 시점에서 사용하는 것이 좋다.

Plancache 파일 수동 삭제 방법

1.
노드 중지
2.
plancache에서 파일 삭제
3.
노드 시작
4.
나머지 노드에 대해 반복
sdb-admin stop-node --memsql-id <MemSQL_ID> rm -rf /path/to/plancache/* sdb-admin start-node --memsql-id <MemSQL_ID>
SQL
복사
디스크에서 plancache 파일을 수동으로 삭제하는 것은 오프라인 작업이므로, 주의해서 수행해야 한다.
도움이 필요한 경우, plancache 파일의 수동 삭제 전에 SingleStore support 에 문의한다.
디스크 공간 부족으로 인한 장애 예방을 위해, 수동 삭제보다는disk_plan_expiration_minutes를 더 짧게 설정하는 것이 좋다.

References

History

일자
작성자
비고
2022.06.16
wee
초기 작성
2022.06.20
wee
DDL 쿼리 문장 수정
2022.06.28
wee
삭제 방법 문구 변경
2022.07.14
wee
문구수정
2022.10.25
jnshin
문구 수정