「開いたファイルが多すぎる」という混乱の中で

「開いたファイルが多すぎる」という混乱の中で

「ファイル制限」が混乱していて何をすべきかわかりません。

システムを再起動すると、しばらく役に立つと確信しています。しかし、誰かができますこの問題を診断するのに役立つツールを見つけるために正しい方向を教えてください。ここで問題の原因を見つけますか?

再起動せずに数週間システムを使用した後、いくつかの問題が発生し始めました。

  • システムが著しく遅くなり、
  • 一部のプログラムは、明らかな理由なしに、またはログと競合します。たとえば、Weztermを実行している場合、Google Chromeは起動しません。
  • または Google Chrome が実行中です。これでWeztermを起動できません。

このようなことが数ヶ月間続いていますが、その原因が何なのか理解できません。

今回は、標準出力にエラーがないかどうかを確認するために、他の端末エミュレータでWeztermを実行してみることにしました。それをしました。明らかに開かれたファイル記述子の制限に達しました。

現在の制限を確認して再確認し、インターネットのランダムな提案に基づいて制限を増やしました。不運。 Weztermを起動するには、ファイル記述数が十分でない理由を理解できません。

ここに画像の説明を入力してください。

状況をさらに混乱させるために、プロセスごとに現在開いているファイルの数を見てみました。

lsof | awk '{ print $1 " " $2; }' | sort -rn | uniq -c | sort -rn | head -15
[...]
lsof: no pwd entry for UID 65535
lsof: no pwd entry for UID 65535
  72450 plasmashe 610475
  39294 krunner 623883
  27808 telegram- 2383506
  22572 chrome 2167881
  21600 chrome 2167924
  21344 slack 616893
  20987 plasma-di 2394216
  17050 kwin_x11 610405
  12606 zeal 610569
   8732 slack 616960
   8692 1password 2364911
   7766 konsole 2403669
   7480 spectacle 1976672
   7452 xdg-deskt 610370
   4456 kded5 610402

最初の列は、プロセスのファイル記述子の数でなければなりません。プロセスがファイルを開く必要があるのはなぜですか?さらに:これは50kファイル記述子の制限と一致しない可能性があります。今はとても混乱しています。

面倒なこと:

  • システム制御:

    sysctl --all | grep file-max
    sysctl: permission denied on key 'fs.protected_fifos'
    sysctl: permission denied on key 'fs.protected_hardlinks'
    sysctl: permission denied on key 'fs.protected_regular'
    sysctl: permission denied on key 'fs.protected_symlinks'
    fs.file-max = 9223372036854775807
    sysctl: permission denied on key 'kernel.apparmor_display_secid_mode'
    sysctl: permission denied on key 'kernel.cad_pid'
    sysctl: permission denied on key 'kernel.unprivileged_userns_apparmor_policy'
    sysctl: permission denied on key 'kernel.usermodehelper.bset'
    sysctl: permission denied on key 'kernel.usermodehelper.inheritable'
    sysctl: permission denied on key 'net.core.bpf_jit_harden'
    sysctl: permission denied on key 'net.core.bpf_jit_kallsyms'
    sysctl: permission denied on key 'net.core.bpf_jit_limit'
    sysctl: permission denied on key 'net.ipv4.tcp_fastopen_key'
    sysctl: permission denied on key 'net.ipv6.conf.all.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.br-77aecafe7c63.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.br-faf1bfa0fcca.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.default.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.docker0.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.enp2s0f1.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.lo.stable_secret'
    sysctl: permission denied on key 'net.ipv6.conf.wlp3s0.stable_secret'
    sysctl: permission denied on key 'vm.mmap_rnd_bits'
    sysctl: permission denied on key 'vm.mmap_rnd_compat_bits'
    

    sysctl: 'vm.stat_refresh' キーに対する権限が拒否されました。

  • カーネルバージョン:

    uname -a
    Linux eugene-pc 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
    
  • オペレーティングシステムのバージョン:

    lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 22.04.1 LTS
    Release:        22.04
    Codename:       jammy
    

関連情報