CentOS 7 で MariaDB 10.2 を最大限に活用: open_files_limit のチューニングガイド
CentOS 7 で MariaDB 10.2 を使用する場合、open_files_limit
がデフォルトで 65536 に制限されています。この制限を超えると、MariaDB はエラーが発生し、正常に動作しなくなります。
解決策
open_files_limit
を増やすには、次の 2 つの方法があります。
方法 1: systemd 設定ファイルを変更する
- 以下のコマンドを実行して、MariaDB サービスファイルのディレクトリを作成します。
mkdir -p /etc/systemd/system/mariadb.service.d/
- 以下のコマンドを実行して、
limits.conf
ファイルを作成します。
cat << EOF > /etc/systemd/system/mariadb.service.d/limits.conf
[Service]
LimitNOFILE=infinity
EOF
- 以下のコマンドを実行して、systemd デーモンを再読み込みします。
systemctl daemon-reload
systemctl restart mariadb
nano /etc/my.cnf
- 以下の行を追加します。
open_files_limit = 1024000
Ctrl+O
Ctrl+X
systemctl restart mariadb
確認
MariaDB サービスを再起動したら、以下のコマンドを実行して、open_files_limit
が正しく設定されていることを確認します。
mysql -u root -p -e "SHOW VARIABLES LIKE 'open_files_limit';"
出力結果の Value
フィールドが、設定した値になっていることを確認してください。
補足
infinity
を指定すると、open_files_limit
の制限を解除できます。- 設定した値がシステムのハードウェアリソースによって制限される場合があります。
- 変更を反映するには、MariaDB サービスを再起動する必要があります。
注
上記の情報は、CentOS 7 と MariaDB 10.2 を使用している場合にのみ適用されます。他のバージョンを使用している場合は、適切な情報源を参照してください。
CentOS 7 で MariaDB 10.2 の open_files_limit を増やすためのサンプルコード
# MariaDB サービスファイルのディレクトリを作成する
mkdir -p /etc/systemd/system/mariadb.service.d/
# limits.conf ファイルを作成する
cat << EOF > /etc/systemd/system/mariadb.service.d/limits.conf
[Service]
LimitNOFILE=infinity
EOF
# systemd デーモンを再読み込みする
systemctl daemon-reload
# MariaDB サービスを再起動する
systemctl restart mariadb
# MariaDB 設定ファイルを開く
nano /etc/my.cnf
# open_files_limit を設定する行を追加する
open_files_limit = 1024000
# MariaDB 設定ファイルを保存する
Ctrl+O
Ctrl+X
# MariaDB サービスを再起動する
systemctl restart mariadb
# open_files_limit が正しく設定されていることを確認する
mysql -u root -p -e "SHOW VARIABLES LIKE 'open_files_limit';"
CentOS 7 で MariaDB 10.2 の open_files_limit を増やすその他の方法
方法 3: /etc/security/limits.conf ファイルを変更する
nano /etc/security/limits.conf
mysql soft nofile 1024000
mysql hard nofile 1024000
Ctrl+O
Ctrl+X
- 以下のコマンドを実行して、ログインセッションを終了します。
logout
方法 4: カーネルパラメータを変更する
- 以下のコマンドを実行して、現在のカーネルパラメータを確認します。
cat /proc/sys/fs/file-max
sysctl -w fs.file-max=1024000
- 以下のコマンドを実行して、変更を永続化します。
echo 1024000 > /sys/bus/usb/drivers/usb/power/level
注意:
- カーネルパラメータを変更すると、システム全体に影響を与える可能性があります。変更を加える前に、現在の設定をバックアップしておくことをお勧めします。
上記の情報は、参考目的のみであり、いかなる保証もありません。これらの手順を実行する前に、システムをバックアップし、適切な予防措置を講じることをお勧めします。
mariadb centos7