問題は TasksMax
が原因です systemd 属性。これは systemd 228 で導入され、Linux カーネル 4.3 で導入された cgroups pid サブシステムを利用します。 512
のタスク制限 したがって、カーネル 4.3 以降が実行されている場合、systemd で有効になります。この機能はここで発表され、このプル リクエストで導入され、デフォルト値はこのプル リクエストによって設定されました。カーネルを 4.3 にアップグレードした後、systemctl status docker
Tasks
を表示します 行:
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2016-01-15 19:58:00 CET; 1min 52s ago
Docs: https://docs.docker.com
Main PID: 2770 (docker)
Tasks: 502 (limit: 512)
CGroup: /system.slice/docker.service
設定 TasksMax=infinity
[Service]
で docker.service
のセクション 問題を修正します。 docker.service
通常は /usr/share/systemd/system
です 、しかし /etc/systemd/system
に配置/コピーすることもできます パッケージ マネージャーによって上書きされないようにします。
プル リクエストが増加しています TasksMax
docker の例の systemd ファイルについては、Arch Linux のバグ レポートがパッケージについて同じことを達成しようとしています。 Arch Linux フォーラムと Arch Linux バグ レポートで、lxc に関する追加の議論が行われています。
DefaultTasksMax
[Manager]
で使用できます /etc/systemd/system.conf
のセクション (または /etc/systemd/user.conf
ユーザー実行サービス用) TasksMax
のデフォルト値を制御します .
Systemd は、ログインシェルから実行されるプログラムにも制限を適用します。これらのデフォルトは 4096
です ユーザーあたり (12288
に増加します) ) であり、UserTasksMax
として構成されています [Login]
で /etc/systemd/logind.conf
のセクション .
cdauth の答えは正しいですが、追加する別の詳細があります。
systemd 229 と 4.3 カーネルを搭載した私の Ubuntu 16.04 システムでは、UserTasksMax が新しく増加したデフォルトの 12288 に設定されている場合でも、デフォルトでセッション スコープに 512 pid 制限が適用されていました。そのため、ユーザー セッション スコープは 512 スレッドに制限されていました。 /P>
制限を取り除く唯一の方法は、 DefaultTasksMax=unlimited
を設定することでした /etc/systemd/system.conf
で と systemctl daemon-reexec
(または再起動)
systemctl status
を発行して、これが発生しているかどうかを確認できます。 、セッション スコープの選択、および cat /sys/fs/cgroup/pids/user.slice/user-${UID}.slice/session-FOO.scope/pids.max
.