GNU/Linux >> Linux の 問題 >  >> Linux

4.3 カーネルでスレッドの作成が「リソースが一時的に利用できません」で失敗する

問題は 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 .


Linux
  1. docker exec で 2 つのコマンドを実行する

  2. 特権 Docker コンテナを使用したカーネル チューニング

  3. QEMU を使用した Linux カーネルのデバッグ

  1. trace-cmdを使用したカーネルトレース

  2. Linuxカーネルをftraceで分析する

  3. Linuxを初めて使用する場合:30のインストールストーリー

  1. AntergosLinuxに恋をした理由

  2. LVMを使用したLinuxでの論理ボリュームの作成

  3. Rsyncで転送されたファイルのみをログに記録しますか?