Notice
Recent Posts
Recent Comments
준호씨의 블로그
mysql 이 자꾸 죽음. InnoDB: Cannot allocate memory for the buffer pool 본문
반응형
/var/logs/mysql/error.log 에 아래와 같은 에러를 남기면서 mysql 이 종종 죽어 버리는 문제가 발생 했습니다.
2019-12-31T04:05:27.893941Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
좀 더 자세한 로그는
2019-12-31T04:05:27.893917Z 0 [ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12
2019-12-31T04:05:27.893941Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2019-12-31T04:05:27.893955Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-12-31T04:05:27.893967Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2019-12-31T04:05:27.893986Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-12-31T04:05:27.893997Z 0 [ERROR] Failed to initialize builtin plugins.
2019-12-31T04:05:27.894005Z 0 [ERROR] Aborting
2019-12-31T04:05:27.897360Z 0 [Note] Binlog end
2019-12-31T04:05:27.897454Z 0 [Note] Shutting down plugin 'CSV'
2019-12-31T04:05:27.897949Z 0 [Note] /usr/sbin/mysqld: Shutdown complete
아무래도 서버 사양이 낮다 보니 램도 512MB 인데, apache, mysql, docker, mongodb 등등 여러가지를 돌리다 보니 결국 무리가 온 거 같습니다.
innodb buffer pool 메모리 할당에 실패 한다고 하니 설정으로 좀 낮춰 보았습니다.
/etc/mysql/my.cnf 파일에서 [mysqld] 부분에 아래 내용을 추가 했습니다.
innodb_buffer_pool_size = 16M
아무 설정을 하지 않은 상태에서는 128MB 입니다.
아래 방법으로 확인 할 수 있구요.
mysql> SELECT @@innodb_buffer_pool_size/1024/1024;
+-------------------------------------+
| @@innodb_buffer_pool_size/1024/1024 |
+-------------------------------------+
| 128.00000000 |
+-------------------------------------+
1 row in set (0.00 sec)
설정 변경우 재시작 하니 아래 처럼 바뀌었습니다.
mysql> SELECT @@innodb_buffer_pool_size/1024/1024;
+-------------------------------------+
| @@innodb_buffer_pool_size/1024/1024 |
+-------------------------------------+
| 16.00000000 |
+-------------------------------------+
1 row in set (0.01 sec)
다만 buffer pool size 가 낮아져서 서비스 속도가 느려진다거나 또 다른 문제가 생길까봐 좀 걱정이 들긴 한데요. 일단 좀 더 지켜 봐야 되겠습니다.
여전히 mysqld 의 메모리 점유율이 20% 가 넘는 상황이긴 한데요. 호스팅을 좀 더 업그레이드 해야 되나 고민입니다. DB호스팅이라도 어디 싼데다가 하나 만들까 싶기도 하구요.
top - 00:17:03 up 91 days, 10:56, 7 users, load average: 2.22, 0.92, 0.36
Tasks: 126 total, 1 running, 78 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.5 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 493464 total, 102072 free, 270312 used, 121080 buff/cache
KiB Swap: 520188 total, 227392 free, 292796 used. 209596 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6524 mysql 20 0 1495328 105144 4240 S 0.0 21.3 0:01.17 mysqld
6695 root 20 0 386796 19744 14420 S 0.0 4.0 0:00.03 apache2
6711 www-data 20 0 394444 18152 9384 S 0.0 3.7 0:00.05 apache2
...
반응형
'개발이야기 > 호스팅관리' 카테고리의 다른 글
지긋지긋한 /boot 파티션 정리. 자동 업그레이드 끄기 (0) | 2020.10.02 |
---|---|
정원사들 시즌5 python3.6 -> python3.7 업그레이드 (0) | 2020.04.12 |
또 /boot 파티션 정리 (0) | 2019.10.06 |
cron - How to set environment variables (0) | 2018.11.01 |
ubuntu OS 업그레이드. 18.04.1 LTS. 커널패닉시 /boot 영역 공간이 충분한지 확인. (0) | 2018.08.29 |
Comments