안녕하세요, 

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "MySQL 사용 시 메모리 사용률이 높게 유지되는 이유"를 다루고자 합니다.



Cloud SQL - MySQL InnoDB


MySQL의 InnoDB 작업 관련된 특성으로 메모리 사용률이 높게 유지 될 수 있습니다.

MySQL에서는 InnoDB 작업으로 전체 버퍼 풀에 대한 메모리를 할당합니다.


이때 버퍼 풀이란, InnoDB가 엑세스를 시도할 때, 테이블 및 인덱스 데이터를 캐시하는 메인 메모리 영역을 뜻합니다.

즉 CloudSQL에 저장된 데이터 용량이 늘었기 때문에 innodb_buffer_pool_size 값이 늘어나게 됩니다.


Cloud SQL에서 nnodb_buffer_pool_size 플래그의 기본값, 최소 허용 값, 최대 허용 값은 인스턴스의 메모리에 따라 다르게 적용됩니다.

또한 기본적으로 이 Flag 값은 최대 허용 값에 가깝게 설정됩니다.

아래는 innodb_buffer_pool_size 대략적인 값입니다.

정확한 현재 값을 계산하기 위해서는 아래 쿼리를 실행하여 확인 할 수 있습니다.


show global variables like 'innodb_buffer_pool_size'



따라서 메모리 사용률을 낮추기 위해서는 innodb_buffer_pool_size Flag 값을 조정하여 최소 허용 값인 메모리의 20%로 조정 할 수 있습니다.


※ MySQL 5.6 버전에서는 이 플래그를 변경하려면 인스턴스를 다시 시작해야 합니다.



참조 링크


[1] MySQL_InnoDB_Buffer_Pool_Size

https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_size

[2] Cloud SQL - MySQL 플래그 작업 도움말

https://cloud.google.com/sql/docs/mysql/flags#tips



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.