Jestem na Ubuntu 17.04. Próbuję zwiększyć limit otwartych plików i żadna z instrukcji, które znalazłem w Internecie, nie działa. Mogę przejść do 4096, ale nie mogę tego przekroczyć.
$ ulimit -n
1024
$ ulimit -n 4096
$ ulimit -n
4096
To działa. To nie:
$ ulimit -n 4097
bash: ulimit: open files: cannot modify limit: Operation not permitted
Wydaje się, że wynika to z twardego limitu:
$ ulimit -Hn
4096
Próbowałem dodać te linie do /etc/security/limits.conf:
* hard nofile 65535
* soft nofile 65535
root soft nofile 65535
root hard nofile 65535
Dodałem również ten wiersz do /etc/pam.d/common-session i /etc/pam.d/common-session-noninteractive:
session required pam_limits.so
Od tego czasu ponownie uruchomiłem komputer. Zmiany w limit.conf wydają się nie wpływać na nic. Twardy limit wciąż utrzymuje się na poziomie 4096, co uniemożliwia mi pójście wyżej. Jak zwiększyć limit moich otwartych plików?
Oto kilka dodatkowych informacji o konfiguracji:
$ cat /proc/sys/fs/file-max
1624668
źródło
DefaultLimitNOFILE=65535
wykonał lewę. Ale dlaczego nie/etc/security/limits.conf
działa?/etc/systemd/system.conf
), która jest niezależna od normalnej konfiguracji dla sesji terminalowych (/etc/security/limits.conf
). Nie wiem wystarczająco dużo o systemd, aby wiedzieć, dlaczego został zaimplementowany w ten sposób.root
użytkownika nie mogą być określone przez*
specyfikatory grupy lub.root
literał musi być wyraźnie określony.Nie trzeba niczego zmieniać w
/etc/security/limits.conf
pliku, jest on ignorowany, jeśli używasz systemd.(powielanie zmodyfikowanej odpowiedzi na inne pytanie w sieci ...)
Alternatywa dla tych, którzy wolą nie edytować ustawień domyślnych
/etc/systemd/system.conf
i/etc/systemd/user/conf
plików:utwórz nowy plik
/etc/systemd/system.conf.d/limits.conf
z tymi treściami:uruchom
systemctl daemon-reexec
jako rootwyloguj się i zaloguj ponownie
sprawdź swój nowy limit za pomocą
ulimit -n
.Szczegółowe informacje można znaleźć na stronie
systemd-system.conf
podręcznika .źródło
/etc/systemd/system.conf
. Dokonanie zmiany wydaje się, że załatwiło sprawę, dziękuję.Używając Ubuntu 17.04 otrzymałem opisany twardy limit:
Mógłbym go obniżyć za pomocą
ulimit
, ale nie zwiększyć, tak jak opisuje to pytanie.ulimit
instrukcja opisuje:Próbowałem więc ustawić wyższy limit w
/etc/security/limits.conf
następujący sposób:i nowy login, taki jak,
ssh localhost -l user
dał mi nowy limit:Mam nadzieję, że to również dla ciebie zadziała.
źródło
edytuj /etc/systemd/system/sonar.service
dodaj te dwie linie w obszarze Usługa
[Usługa]
LimitMEMLOCK = nieskończoność
Limit NOFILE = 65535
to działa dla mnie.
źródło
TL; DR Czułem potrzebę skoncentrowania odpowiedzi, więc łatwiej je znaleźć. Zajęło mi wieki, aby zebrać wszystkie elementy, aby działało poprawnie ...
Należy wziąć pod uwagę 2 lokalizacje.
Sesja GUI
lub lepiej tutaj:
środowisko powłoki
lub lepiej tutaj:
Po zmianie ustawień w powyższych plikach uruchom ponownie, a następnie sprawdź limity za pomocą:
ulimit -n -Hn -Sn
źródło