
InnoDB는 MySQL의 데이터베이스 엔진 중 하나로, Dirty Pages는 InnoDB의 버퍼 풀에 저장된 데이터가 디스크에 기록되지 않은 상태를 의미합니다. Dirty Pages는 다음과 같은 상황에서 발생할 수 있습니다.
- 데이터가 변경되었지만 아직 디스크에 기록되지 않은 상태
- 데이터가 버퍼 풀에 저장되어 있지만 아직 디스크에 기록되지 않은 상태
InnoDB는 버퍼 풀에 저장된 데이터를 디스크에 기록하는 것을 주기적으로 수행합니다. 이 과정을 InnoDB는 'flush'라고 합니다. flush를 수행하지 않으면 Dirty Pages가 계속해서 쌓이게 됩니다.
--innodb_max_dirty_pages_pct 옵션은 InnoDB가 버퍼 풀에 저장된 데이터를 디스크에 기록하는 주기를 결정하는 옵션입니다. 이 옵션은 Dirty Pages의 퍼센트를 지정하여 InnoDB가 버퍼 풀에 저장된 데이터를 디스크에 기록하는 주기를 결정합니다.
예를 들어, --innodb_max_dirty_pages_pct=50 옵션을 설정하면 InnoDB는 버퍼 풀에 저장된 데이터가 50% 이상 Dirty Pages가 쌓이면 flush를 수행합니다. 이 옵션을 설정하는 이유는 다음과 같습니다.
- Dirty Pages가 쌓이면 디스크 공간이 부족해질 수 있습니다.
- Dirty Pages가 쌓이면 데이터가 손상될 수 있습니다.
- Dirty Pages가 쌓이면 MySQL의 성능이 저하될 수 있습니다.
따라서, --innodb_max_dirty_pages_pct 옵션을 설정하여 InnoDB가 버퍼 풀에 저장된 데이터를 디스크에 기록하는 주기를 결정하여 Dirty Pages를 관리할 수 있습니다.
2025-05-17 07:07