Puncte:0

Ubuntu 21.10 ulimit (descriptori de fișiere deschise) nu se aplică corect

drapel kr

Situația este ciudată pentru că am 2 servere identice cu aceeași aplicație dar

pe un server primesc o eroare ulimit de la aplicația personalizată eroare ulimit: prea multe fișiere deschise dar pe de altă parte funcționează conform așteptărilor.

M-am asigurat cu adevărat că configurația este aceeași, dar nu pot să-mi dau seama de ce o face asta.

FAPTE

/etc/systemd/system.conf DefaultLimitNOFILE=100000000:100000000

/etc/systemd/user.conf DefaultLimitNOFILE=10000000

/etc/security/limits.conf

arserver soft nproc 10000000
arserver hard nproc 10000000
arserver soft nofile 10000000
arserver hard nofile 10000000
root soft nproc 10000000
root hard nproc 10000000
root soft nofile 10000000
root hard nofile 10000000

cat /etc/sysctl.conf

net.core.rmem_default = 65536
net.core.wmem_default = 65536
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.ipv4.tcp_max_orphans = 4096
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_fastopen = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 32768 65535
vm.nr_hugepages = 1250
fs.file-max = 10000000

pisica tracelog | grep pam_limits

arserver@arserver03:/carmicli/carmi$ cat testlog1 | limitele grep
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/security/pam_limits.so", O_RDONLY|O_CLOEXEC) = 7
openat(AT_FDCWD, "/proc/1/limits", O_RDONLY) = 7
openat(AT_FDCWD, "/etc/security/limits.conf", O_RDONLY) = 7
read(7, "# /etc/security/limits.conf\n#\n#E"..., 4096) = 2345
openat(AT_FDCWD, "/etc/security/limits.d", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 7
openat(AT_FDCWD, "/proc/1/limits", O_RDONLY) = 7
openat(AT_FDCWD, "/etc/security/limits.conf", O_RDONLY) = 7
read(7, "# /etc/security/limits.conf\n#\n#E"..., 4096) = 2345
openat(AT_FDCWD, "/etc/security/limits.d", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 7

ulimit -a ulimit a fost actualizat în ulimit după repornire, dar aplicația tot nu va porni

arserver@arserver03:/carmicli/carmi$ ulimit -a
timp de neblocare în timp real (microsecunde, -R) nelimitat
dimensiunea fișierului de bază (blocuri, -c) 0
dimensiunea segmentului de date (kbytes, -d) nelimitat
prioritate de programare (-e) 0
dimensiunea fișierului (blocuri, -f) nelimitată
semnale în așteptare (-i) 1030919
memorie maximă blocată (kbytes, -l) 32998380
dimensiunea maximă a memoriei (kbytes, -m) nelimitată
deschideți fișierele (-n) 1048576
dimensiunea conductei (512 octeți, -p) 8
Cozi de mesaje POSIX (octeți, -q) 819200
prioritate în timp real (-r) 0
dimensiunea stivei (kbytes, -s) 8192
timp CPU (secunde, -t) nelimitat
max. procese utilizator (-u) 10000000
memorie virtuală (kbytes, -v) nelimitată
blocări de fișiere (-x) nelimitate

În serviciul systemd creat, de asemenea, pentru a vedea dacă pot depăși limitele globale astfel

[Unitate]
Descriere=Carmi Miner
După=rețea.țintă

[Serviciu]
Utilizator=rădăcină
WorkingDirectory=/app/carmi/
ExecStart=/app/carmi/app.elf
Restart=pornit-anormal

LimitNOFILE=1000000000
LimitNOFILEsoft=1000000000

[Instalare]
WantedBy=multi-user.target

Dar tot eșuează

Apr 08 14:19:45 arserver app.elf[3553]: eroare ulimit: prea multe fișiere deschise, posibil.
Apr 08 14:19:45 arserver systemd[1]: app.service: Procesul principal a fost ieșit, cod=ieșit, stare=19/n/a
08 aprilie 14:19:45 arserver systemd[1]: app.service: a eșuat cu rezultatul „cod de ieșire”.
Apr 08 14:19:45 arserver systemd[1]: app.service: Timp CPU consumat 21.420s.

De asemenea, am adăugat pam_limits.so la configurațiile pam.d când am citit că în versiunile non LSB poate lipsi din unele părți. adăugat necesar la common_session sudo și sshd


arserver@arserver03:/app/app$ grep -r "pam_limit" /etc/pam.d/
/etc/pam.d/cron:sesiune necesară pam_limits.so
/etc/pam.d/login:sesiune necesară pam_limits.so
/etc/pam.d/sshd:sesiune necesară pam_limits.so
/etc/pam.d/sudo:sesiune necesară pam_limits.so
/etc/pam.d/su:sesiune necesară pam_limits.so
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/common-session-noninteractive:sesiune necesară pam_limits.so
/etc/pam.d/runuser:sesiune necesară pam_limits.so
arserver@arserver03:/carmicli/carmi$ grep -r "pam_limit" /etc/pam.d/
/etc/pam.d/cron:sesiune necesară pam_limits.so
/etc/pam.d/login:sesiune necesară pam_limits.so
/etc/pam.d/sshd:sesiune necesară pam_limits.so
/etc/pam.d/sudo:sesiune necesară pam_limits.so
/etc/pam.d/su:sesiune necesară pam_limits.so
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/common-session-noninteractive:sesiune necesară pam_limits.so
/etc/pam.d/runuser:sesiune necesară pam_limits.so

Mi-am smuls părul din cauza acestei probleme în ultima săptămână, dacă cineva poate ajuta va fi foarte apreciat.

Accesul la ubuntu 20.04 este o opțiune, dar îmi va lua mult timp pentru a muta datele, așa că aș prefera să descopăr soluția, dacă este posibil.

ACTUALIZAȚI

cand fac sudo su la root, am aceeași problemă, dar cu această eroare în jurnalul de autentificare

Apr 8 14:45:31 arserver05 su: pam_limits(su:session): Nu s-a putut seta limita pentru „nofile” la soft=10000000, hard=10000000: Operațiunea nu este permisă; uid=0,euid=0
Apr 8 14:45:31 arserver05 su: pam_limits(su:session): Nu s-a putut seta limita pentru „nofile” la soft=10000000, hard=10000000: Operațiunea nu este permisă; uid=0,euid=0

UPDATE 2

Nu se poate seta ulimitul de mai sus 1048576

root@arserver03:/home/arserver# ulimit -n 1048576
root@arserver03:/home/arserver# ulimit -n 10485767
bash: ulimit: deschideți fișiere: nu se poate modifica limita: operațiunea nu este permisă
root@arserver03:/home/arserver# ulimit -n 1048576
djdomi avatar
drapel za
Răspunde asta la întrebarea ta? [Descriptori de fișiere deschise maxime practice (ulimit -n) pentru un sistem cu volum mare](https://serverfault.com/questions/48717/practical-maximum-open-file-descriptors-ulimit-n-for-a-high- sistem de volum)
drapel kr
Nu, nu ajută, deoarece setările sunt la locul lor, inclusiv pentru aplicație, dar eroarea ulimit încă se întâmplă acolo unde pe serverul configurat cu aceleași setări, aceeași aplicație rulează ok
djdomi avatar
drapel za
deoarece, practic, doriți să eliminați limita, ați încercat `ulimit -n unlimited` și vă rugăm să ați dat rezultatul de la `cat /proc/sys/fs/file-max`

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.