OSエラー11は「リソースが一時的に利用できません」です。新しいスレッドを作成しようとしたときにこのエラーを受け取る最も一般的な原因は、プロセスのカーネルにヒットして、開いているファイル記述子に制限を適用したことです。 2 番目に多い原因は、プロセス/スレッドの数がプロセスのカーネルによって強制された制限に達したことです。
関連する要因は次のとおりです。
<オール>ほとんどの Linux システムでデフォルトで 1024 に設定されている open-files-limit に実際に到達したと仮定すると、次の手順を実行することで問題を回避できるはずです。
1. my.cnf ファイルに次の変更を加えて、mysqld で明示的に開いているファイルの制限を増やします:
[mysqld] # Here X could be (max_connections+table_cache)*3 OR you could simply set it very high, for example 32000 open-files-limit = X
2. mysqld サービスを再起動します:
/etc/init.d/mysql restart
NPROC 制限
代わりに nproc 制限が原因であると思われる場合 (CentOS 6 では /etc/security/limits.conf でこれに低い制限が設定されています)、いくつかの異なる方法で nproc 制限を増やすことができます。
1. limits.conf を編集します:
たとえば、limits.conf ファイルで mysql ユーザーの制限を設定できます。
mysql soft nproc 10240 mysql hard nproc 40960
limits.conf はログイン シェルにのみ適用され、init または systemd によって開始されたプロセスには影響しないことに注意してください。 limits.conf への変更は新しいログインにのみ適用されます。新しいセッションを開始するには、ログアウトしてからログインする必要があります。
2. mysqld_safe スクリプトを編集します:
mysqld_safe スクリプトの先頭近くに ulimit 呼び出しを追加することもできます。例:
$ ulimit -u 40000
3.ラッパー スクリプトを使用する:
以下の投稿「ラッパー スクリプトを使用して MySQL サーバーのプロセスごとのカスタム属性を設定する方法」を参照してください。
ラッパー スクリプトを使用して、MySQL サーバーのプロセスごとのカスタム属性を設定する方法変更を有効にするには、mysqld を再起動する必要があります。