블로그

[MySQL] Ubuntu 16.04 에서 MySQL 의 open-files-limit 설정법

Database 의 경우 동시에 오픈할 수 있는 파일수를 가능한 많이 설정해 두는 것이

좋습니다. 오라클의 경우는 65536 을 권장하고 있을 정도로 오픈 파일수는 중요하니다.

Ubuntu 16.04 에서는 시스템의 오픈 파일수를 늘려도 MySQL 에서 반영이 안 되는 경우가

있습니다. systemd 가 각 서비스 데몬들을 통제해서 발생하는 상황인데 아래에 해결책이 있습니다.

/lib/mystemd/system/mysql.service 파일을 편집

# MySQL systemd service file

[Unit]
Description=MySQL Community Server
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
PermissionsStartOnly=true
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/sbin/mysqld
ExecStartPost=/usr/share/mysql/mysql-systemd-start post
TimeoutSec=600
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
LimitNOFILE=infinity
LimitMEMLOCK=infinity

위의 파일 내용에서

LimitNOFILE=infinity
LimitMEMLOCK=infinity

이 부분을 추가하면 시스템에서 설정된 최대 오픈 파일수만큼 사용가능하게 됩니다.

mysql 에서 쿼리로 확인해 보면 65536 으로 나옵니다. 이건 시스템마다 다를 수 있습니다.

show global variables like 'open%'

이 설정을 추가하지 않을 경우 max_connections 설정도 적용이 안 되는데 위의 설정을

추가했을 경우 적용이 되는 것으로 확인됩니다.

2017-04-15 목록