3.5.6. 문제 해결
이 섹션에서는 발생할 수 있는 몇 가지 문제에 대해 설명하고 가능한 해결 방법을 제공합니다.
3.5.6.1. Linux 네이티브 AIO 실패 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
증상
MySQL 컨테이너가 시작되지 않고 로그에 다음과 같은 내용이 표시됩니다.
151113 5:06:56 InnoDB: Using Linux native AIO
151113 5:06:56 InnoDB: Warning: io_setup() failed with EAGAIN. Will make 5 attempts before giving up.
InnoDB: Warning: io_setup() attempt 1 failed.
InnoDB: Warning: io_setup() attempt 2 failed.
Waiting for MySQL to start ...
InnoDB: Warning: io_setup() attempt 3 failed.
InnoDB: Warning: io_setup() attempt 4 failed.
Waiting for MySQL to start ...
InnoDB: Warning: io_setup() attempt 5 failed.
151113 5:06:59 InnoDB: Error: io_setup() failed with EAGAIN after 5 attempts.
InnoDB: You can disable Linux Native AIO by setting innodb_use_native_aio = 0 in my.cnf
151113 5:06:59 InnoDB: Fatal error: cannot initialize AIO sub-system
151113 5:06:59 [ERROR] Plugin 'InnoDB' init function returned error.
151113 5:06:59 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
151113 5:06:59 [ERROR] Unknown/unsupported storage engine: InnoDB
151113 5:06:59 [ERROR] Aborting
설명
MariaDB의 스토리지 엔진은 리소스 제한으로 인해 커널의 AIO(Asynchronous I/O) 기능을 사용할 수 없었습니다.
해결
값이 0 으로 환경 변수tekton _AIO를 설정하여 AIO 사용을 완전히 끕니다. 후속 배포에서는 MySQL 구성 변수 innodb_use_native_aio 가 값이 0 이 되도록 정렬됩니다.
또는 aio-max-nr 커널 리소스를 늘립니다. 다음 예제에서는 aio-max-nr 의 현재 값을 검사하고 두 번 실행합니다.
$ sysctl fs.aio-max-nr
fs.aio-max-nr = 1048576
# sysctl -w fs.aio-max-nr=2097152
노드별 확인이며 다음 노드를 재부팅할 때까지 지속됩니다.