내가 사용하는 서버가 두개가 있는데,

하나는 메인 메모리가 512M이고, 또다른 하나는 1G이다.

그런데 둘다 my.cnf에 내가 아는 아래와 같은 옵션 몇개만 설정하고 써 오고 있었는데,..
innodb_file_per_table
innodb_flush_log_at_trx_commit = 1

이상하게 mysql process 의 CPU점유율이 항상 20%~30% 대에서 안내려가는 현상이 생겼다.
crontab에 걸린 데이터 크롤도 있고 많이 쓰긴 하지만..
이렇게 CPU를 차지할 만큼 큰 job은 아니라고 생각이 들었는데.. 찾다보니,

innodb_buffer_pool_size

라는 옵션이 있는데, 권장은 메인메모리의 50~70% 면서(아마도 Mysql 전용 머신의 경우일 듯), 기본 default는 8M 인 옵션이다.
그래서, 이 옵션을 서버 각각 64M, 256M 로 설정했다. (내 머신들은 Mysql 전용이 아니니까.. 별짓 다하는 기계들..)
설정 하고 나니 CPU점유율 상황이 조금 좋아진 듯 하다.
간단한 옵션인데, 모르고 있으니 서버를 엉뚱하게 운영하고 있었다는 생각이 든다.

Posted by 세모아