**전력이 부족해서 MySQL을 튜닝해보려고 합니다. **
안녕하세요. 이쪽은 플랫폼 담당 미야시타입니다.
이번에는
성능을 향상시키고 싶습니다.
지금까지 여러 조치를 취했지만, 먼저 환경을 검토할 것입니다.
◇ 실행 환경은 AWS EC2의 대형 인스턴스를 사용합니다.
이 서비스는 OpenPNE를 사용하는 SNS 서비스입니다. 목표 Mysql은 백업과 데이터 집계 목적으로 실행됩니다.
(생산 서비스에 사용되지 않음)
◇ MySQL 버전은 좀 오래됐고 "5.0.77"입니다. 멀티로 시작했습니다
이와 더불어 개발 환경을 위한 MySQL도 실행 중입니다. 참고로, 현재 지연 초는 여전히 "1512561초"에서 증가하고 있습니다.
◇ 지금까지 변경된 사항에 관해서는,
"innodb_buffer_pool_size" 증가 5억 12M에서 2028M으로 증가했습니다.
"innodb_flush_log_at_trx_commit"을 2에서 0으로 변경했습니다.
(복구 정확도보다 처리량을 우선시하세요)
"key_buffer_size"을 32M에서 300M으로 변경,
"query_cache_size = 0"을 비활성화했습니다.
그 결과 디스크의 입출력이 약 절반으로 줄어들었지만, 지연을 완전히 없애는 것은 아닙니다.

지연이 날이 갈수록 커지고 있습니다. 가끔은 줄어들기도 하지만 원인은 모르겠습니다.

디스크에는 항상 많은 읽기 I/O가 있습니다.
원인은 명확하며, 이미지와 비디오 데이터가 데이터베이스 데이터에 저장되어 있기 때문입니다.
데이터 크기가 버퍼 풀 크기에 들어갈 수 없기 때문에 항상 DISK 읽기/쓰기가 진행됩니다.
또한 MyISAM과 InnoDB는 혼합되어 있어 자원을 효율적으로 사용하지 않습니다.
OpenPNE가 "삭제 aaa 파일명 LIKE '%bbb%'"라는 쿼리를 많이 보내고 있습니다.
해결해야 할 문제가 많습니다.
현재 상황을 정리함으로써 다음번부터는 하나씩 개선 조치를 시행하고 싶습니다.