[MySQL] InnoDB 버퍼 풀 메모리 크기 바꾸기

  my.cnf를 열어서 innodb_buffer_pool_size 값을 고친다. 리눅스라면 아래 명령으로 vi 편집기로 열어서 고칠 수 있다.

# vi /etc/my.cnf

[mysqld]


innodb_buffer_pool_size = 64M

  innodb_buffer_pool_size 항목값에서 MySQL의 임시 기억 공간인 버퍼 풀 메모리 크기를 지정한다. 이 값으로 전체 메모리의 50~80%를 권하기도 하지만, 메모리가 넉넉하지 않은 환경이라면 이 값을 20% 이하로 줄여야 할 때도 있다. 버퍼 풀 메모리가 너무 크면 하드디스크를 가상 메모리로 쓰는 작업(스와핑)이 일어나 매우 느려지는 원인이 될 수 있기 때문이다.

  이 항목값이 어떻게 적용되었는지는 MySQL 로그 파일(/var/log/mysqld.log)에서 볼 수 있다.

130618 00:18:43 InnoDB: Initializing buffer pool, size = 64.0M

  다음 MySQL 명령으로 버퍼 풀 메모리가 얼마나 쓰이고 있는지를 볼 수 있다.

mysql> SHOW STATUS LIKE '%innodb_buffer_pool%';

  아래처럼 Innodb_buffer_pool_bytes_data 값에 버퍼풀 메모리가 쓰이고 있는 크기가 바이트(byte) 값으로 나타난다.

+---------------------------------------+----------+
| Variable_name                         | Value    |
+---------------------------------------+----------+
| Innodb_buffer_pool_pages_data         | 3434     |
| Innodb_buffer_pool_bytes_data         | 56262656 |
| Innodb_buffer_pool_pages_dirty        | 4        |
| Innodb_buffer_pool_bytes_dirty        | 65536    |
| Innodb_buffer_pool_pages_flushed      | 8027     |
| Innodb_buffer_pool_pages_free         | 482      |
| Innodb_buffer_pool_pages_misc         | 179      |
| Innodb_buffer_pool_pages_total        | 4095     |
| Innodb_buffer_pool_read_ahead_rnd     | 0        |
| Innodb_buffer_pool_read_ahead         | 0        |
| Innodb_buffer_pool_read_ahead_evicted | 0        |
| Innodb_buffer_pool_read_requests      | 28201346 |
| Innodb_buffer_pool_reads              | 3355     |
| Innodb_buffer_pool_wait_free          | 0        |
| Innodb_buffer_pool_write_requests     | 22052    |
+---------------------------------------+----------+
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요

  1. 백종신 2016/05/08 11:04 고유주소 고치기 답하기

    정말 유용한 정보 주셔서 감사합니다.
    큰 도움이 되었습니다.
    복 받으시길 기원합니다.