2016-09-15 23 views
8

Mam problemy z naszym nowym serwerem redis po zamianie z Ubuntu 14.04 na 16.04. Konfiguracja otwartej granicy plików przy użyciu wszystkie prowadnice mówi, aby zmienić plik /etc/security/limits.conf z następującymi ustawieniamiUbuntu 16.04 systemd problemy redis z ulimit

* soft nofile 65535 
* hard nofile 65535 
root soft nofile 65535 
root hard nofile 65535 

a także dodać do /etc/pam.d/common-session i /etc/pam.d/common-session-noninteractive

session required pam_limits.so 

zrobiłem wszystkie te zmiany, ale REDiS wciąż uruchomieniem z limitem 4096 plików, które pod obciążeniem produkcyjnym szybko dotrzeć do połączenia max.

Odpowiedz

21

Po wielu poszukiwaniach w końcu stwierdziłem, że systemd ma standardowy limit 4096 i niezależnie od tego, co ustawisz na poziomie systemu, zawsze będzie miał pierwszeństwo systemd. Rozwiązaniem tego problemu jest zmiana limitu Systemd otwarty plik edytując /etc/systemd/system.conf i dodanie następujących ustawień

DefaultLimitNOFILE=65536 

Wydaje się, że istnieje wiele ustawień domyślnych w Systemd które zastępują system ustawienia muszą być ustawione w systemd

Więc jeśli jest to jakikolwiek użytek dla ludzi, to są moje ostateczne ustawienia dla serwera Ubuntu 16.04 do uruchamiania redisów produkcyjnych.

Edit /etc/systemd/system.conf (sudo nano /etc/systemd/system.conf) i dodać

DefaultLimitNOFILE=65536 

Edit /etc/security/limits.conf (sudo nano/etc/security /limits.conf) i dodać

* soft nofile 64000 
* hard nofile 64000 
root soft nofile 64000 
root hard nofile 64000 

Edycja /etc/pam.d/common-session (sudo nano /etc/pam.d/common-session) i dodać

session required pam_limits.so 

Edycja/et C/pam.d/wspólnego sesji Nieinteraktywny (sudo nano /etc/pam.d/common-session-noninteractive) i dodać

session required pam_limits.so 

Edycja /etc/rc.local (sudo nano/etc/rc .local) i dodać

sysctl -w net.core.somaxconn=65535 

Edycja /etc/sysctl.conf (sudo nano /etc/sysctl.conf) i dodać

vm.overcommit_memory = 1 

Edycja /etc/rc.local (sudo nano/etc /rc.local) i dodaj

echo never > /sys/kernel/mm/transparent_hugepage/enabled 
+0

Świetna odpowiedź! DefaultLimitNOFILE jest tym, czego mi brakowało. – redgeoff

+0

Dzięki Ollie. To rozwiązało wszystkie problemy, z którymi miałem do czynienia. Idealny. – user785717

Powiązane problemy