"열린 파일이 너무 많습니다"라는 혼란 속에서

"열린 파일이 너무 많습니다"라는 혼란 속에서

"파일 제한"이 혼란스러워서 무엇을 해야할지 모르겠습니다.

시스템을 다시 시작하면 잠시 동안 도움이 될 것이라고 확신합니다. 그러나 누군가는 할 수 있습니다이 문제를 진단하는 데 도움이 되는 도구를 찾을 수 있도록 올바른 방향을 알려주세요.여기서 문제의 원인을 찾으시겠습니까?

재부팅하지 않고 몇 주 동안 시스템을 사용한 후 몇 가지 문제가 발생하기 시작했습니다.

  • 시스템이 눈에 띄게 느려지고,
  • 일부 프로그램은 뚜렷한 이유 없이 또는 로그와 함께 충돌합니다. 예를 들어 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
    

관련 정보