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