Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-01-26 19:08:25

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Konfiguracja ulimit - limit otwartych deskryptorów

Witam.
Posiadam serwer dedykowany z systemem Linux Debian 6.0 (64bit).
Mam problem z ustawieniem limitu otwartych deskryptorów. Koniecznie muszę zwiększyć tę wartość, gdyż moje pewne oprogramowanie tego wymaga.
Oprogramowanie nie jest uruchamiane przez użytkownika root, a innego dodanego do systemu.

Ustawiłem w /etc/security/limits.conf:

Kod:

*               hard    nofile             10240
*               soft    nofile             10240

Zrestartowałem serwer, i problem występuje nadal (program nie działa poprawnie), ustawiłem za małe wartości, czy jeszcze muszę dodać do /etc/sysctl.conf, np. taki wpis?:

Kod:

fs.file-max = 4827068

Domyślna wartość to:

Kod:

sysctl fs.file-max
fs.file-max = 2413534

Dlatego postanowiłem ją pomnożyć x2.

Dodatkowo komenda: ulimit -a pokazuje zarówno dla użytkownika root jak i tego który uruchamia aplikację (oczywiście po restarcie serwera jak i przed):

Kod:

open files                      (-n) 1024

Zgodnie z man pam_limits - sprawdziłem plik /etc/pam.d/login, i jest już tam aktywne (od komentowane): session required pam_limits.so

Nie rozumiem co tutaj jest już źle zrobione. Męczę się z tym od trzech dni i nic. :(
Bardzo liczę na Waszą pomoc. Pozdrawiam!

Offline

 

#2  2012-01-26 19:37:14

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Konfiguracja ulimit - limit otwartych deskryptorów

Co do roota: "group and wildcard limits are not applied to the root user. To set a limit for the root user, this field must contain the literal username root." (żródło: man limits.conf). Więcej nie pomogę, nie mam debiana 6.

Offline

 

#3  2012-01-26 19:41:42

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

Dla root nie chcę ustawiać, tylko dla dodanego użytkownika już, a najlepiej wszystkich tak jak to robię za pomocą: * w limits.conf

Bardzo proszę o pomoc jeżeli ktoś ma jakiś pomysł.

Ostatnio edytowany przez desavil (2012-01-26 21:09:47)

Offline

 

#4  2012-01-27 11:54:57

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Konfiguracja ulimit - limit otwartych deskryptorów

oprocz ustawienia w  /etc/security/limits.conf musisz (w kazdym shelu usera) dawac ulimit -n 10240 ... polecam wpisac w jakis /etc/profile lub cos w tym stylu


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#5  2012-01-27 19:09:12

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

No nic, ustawiłem w /etc/sysctl.conf

Kod:

fs.file-max = 4827068

W /etc/security/limits.conf, również opcje takie jak podałem wyżej, zrestartowałem serwer i nic nadal to samo, oprogramowanie nie działa poprawnie.

bercik, stworzyłem plik w katalogu domowym użytkownika o nazwie: .bash_profile i umieściłem tam:

Kod:

ulimit -n 10240

Wieczorem zrestartuję serwer i zobaczę, czy coś to da, bo widzę, że nic z tego nie będzie... a ja ciągle resetuje serwer. :(
A to na pewno da się jakoś ustawić.

Ostatnio edytowany przez desavil (2012-01-27 20:20:03)

Offline

 

#6  2012-01-27 19:53:22

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Konfiguracja ulimit - limit otwartych deskryptorów

Wystarczy się przelogować lub zrestartować skrypt startujący twój soft (zależnie jak to odpalasz), nie musisz restartować serwera. Jeśli to skrypt to pewnie lepiej to dopisać do .bashrc. Plik .bash_profile jest wykonywany tylko po zalogowaniu.

Offline

 

#7  2012-01-27 20:11:43

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

To jest program, uruchamiany z poziomu PHP za pomocą funkcji system().

A komenda startowa wygląda, w ten sposób:

Kod:

/home/user/files/program /home/user/files/config.conf  > /dev/null &

Ostatnio edytowany przez desavil (2012-01-27 20:12:32)

Offline

 

#8  2012-01-30 13:41:06

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

No niestety nadal nie działa :(

Wszystkie opcje ustawione, limits.conf, sysctl.conf, .bash_profile, .bashrc
Z tymże pliki .bashrc oraz  .bash_profile stworzyłem, oczywiście właściciel i grupa usera jest nadana ich zawartość to tylko: ulimit -n 10240

Co jeszcze mogę zrobić?
PS. Serwer był restartowany.
Potrzebuję tego do: http://forums.winamp.com/showthread.php?s=&thre … hlight=ulimit
http://wamp-forums-dtc-a.evip.aol.com/showthread.php?p=2831040

Offline

 

#9  2012-01-30 13:52:43

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Konfiguracja ulimit - limit otwartych deskryptorów

sprawdz z palca jak dasz ulimit -n 10240
to jaki bedzie efekt (i co wypisze ulimit odnosnie tego limitu)

Edit/PS - zadna z tych zmian nie wymaga restartowania systemu - limity sysfs ustawia sie w proc na dzialajacym systemie limity w limit.conf i ustawienia w profile, itp wymagaja przelogowania odpowiedniego usera ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#10  2012-01-30 14:05:32

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Konfiguracja ulimit - limit otwartych deskryptorów

takie szybkie pytanko ;)
Jak masz skonfigurowane php ? z jakim userem/grupą działa ?
Bo mam dziwne przeczucie ;)


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#11  2012-01-30 19:46:06

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

sprawdz z palca jak dasz ulimit -n 10240
to jaki bedzie efekt (i co wypisze ulimit odnosnie tego limitu)

Sprawdzałem niejednokrotnie, wartość się zmienia, ale oprogramowanie nadal nie działa poprawnie.
Dopuszcza maksymalnie 1010 słuchaczy, w tej ilości jak już jest strona serwera ShoutCast zaczyna się długo ładować.

User/grupa: hosting/hosting

PS.

Kod:

uname -a
Linux XXX 2.6.38.2-grsec-xxxx-grs-ipv6-64 #2 SMP Thu Aug 25 16:40:22 UTC 2011 x86_64 GNU/Linux

Ostatnio edytowany przez desavil (2012-01-30 19:51:34)

Offline

 

#12  2012-01-30 19:58:23

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Konfiguracja ulimit - limit otwartych deskryptorów

A Grsecurity  nie miesza?

Bo sam Grsecurity ma wbudowane limity, włącz sobie w sysctl szczegółowe logowanie grsec, i zobacz, co tam w logach siedzi.

Samo logowanie grsec w rsyslogu, do odrębnych plikow, załatwiłem tak:

Kod:

:msg, contains, "grsec" /var/log/grsec/grsec.log
:msg, contains, "grsec" ~
:msg, contains, "pax" /var/log/grsec/pax.log
:msg, contains, "pax" ~

Poza tym, co tam jest za  oprogramowanie?
Bo jeśli coś związanego z javą czy np jbossem, to grsec może nieźle namieszać.
Pax też jest pod tym względem dość "mięsożerny".

Sam Debian co prawda potrafi działać z Grsecurity/Paxem, ale systemem przystosowanym do pracy z tym modułem bym go nie nazwał.

I spróbuj na jaju bez grseca.
Wtedy przynajmniej poznasz w jakimś stopniu prawdopodobną przyczynę  kłopotów.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2012-01-30 20:08:21)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#13  2012-01-30 20:30:10

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

Jacekalex,
Umieściłem to na końcu pliku: /etc/rsyslog.conf
Zresetowałem rsyslog: /etc/init.d/rsyslog restart

A w stworzonych plikach z logami pusto.

PS. W: /var/log/kern.log mam dużo wpisów typu:

Kod:

Jan 30 20:32:28 XXX kernel: TCP: Peer XXX.XXX.XXX.XXX:62207/7788 unexpectedly shrunk window 3819871628:3819873809 (repaired)
Jan 30 20:32:30 XXX kernel: TCP: Peer XXX.XXX.XXX.XXX:62207/7788 unexpectedly shrunk window 3819871628:3819873809 (repaired)
Jan 30 20:32:32 XXX kernel: TCP: Peer XXX.XXX.XXX.XXX:62207/7788 unexpectedly shrunk window 3819871628:3819873809 (repaired)

Ostatnio edytowany przez desavil (2012-01-30 20:35:04)

Offline

 

#14  2012-01-31 18:22:23

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

Karnel zmieniony na bez grs, ulimit pokazuje nadal 1024 open files, a oprogramowanie nie dziala poprawnie .

Offline

 

#15  2012-02-01 13:35:20

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Konfiguracja ulimit - limit otwartych deskryptorów

skoro z palca chodzi ... a w php nie to z sproboj z system wywolac skrypt shellowy robiacy ulimit i wlaczajacy program ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#16  2012-02-01 13:54:33

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Konfiguracja ulimit - limit otwartych deskryptorów

desavil napisał(-a):

Jacekalex,
Umieściłem to na końcu pliku: /etc/rsyslog.conf
Zresetowałem rsyslog: /etc/init.d/rsyslog restart

A w stworzonych plikach z logami pusto.

Mój obecny rsyslog.conf

Za to logowanie Grsecurity włącza sie przez sysctl, pod warunkiem, że masz włączone odpowiednie opcje w kernelu.

Kod:

zgrep -i grker /proc/config.gz | egrep -i 'audit|log'
CONFIG_GRKERNSEC_AUDIT_GROUP=y
CONFIG_GRKERNSEC_AUDIT_GID=1000
CONFIG_GRKERNSEC_EXECLOG=y
CONFIG_GRKERNSEC_RESLOG=y
CONFIG_GRKERNSEC_CHROOT_EXECLOG=y
CONFIG_GRKERNSEC_AUDIT_PTRACE=y
CONFIG_GRKERNSEC_AUDIT_CHDIR=y
CONFIG_GRKERNSEC_AUDIT_MOUNT=y
CONFIG_GRKERNSEC_RWXMAP_LOG=y
CONFIG_GRKERNSEC_AUDIT_TEXTREL=y

Kod:

sysctl -a |egrep -i 'grsec|pax' | egrep -i 'audit|log'
kernel.grsecurity.exec_logging = 0
kernel.grsecurity.rwxmap_logging = 1
kernel.grsecurity.signal_logging = 1
kernel.grsecurity.forkfail_logging = 1
kernel.grsecurity.timechange_logging = 0
kernel.grsecurity.chroot_execlog = 0
kernel.grsecurity.audit_group = 1
kernel.grsecurity.audit_gid = 1000
kernel.grsecurity.audit_chdir = 0
kernel.grsecurity.audit_mount = 0
kernel.grsecurity.audit_textrel = 1
kernel.grsecurity.resource_logging = 0
kernel.grsecurity.audit_ptrace = 1

To by było na tyle
;-)

Ostatnio edytowany przez Jacekalex (2012-02-01 13:57:49)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#17  2012-02-01 17:50:15

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

bercik, to czy usługa jest uruchamiana z poziomu PHP, czy tez nie to niema konkretnego znaczenia.
To tylko inny użytkownik ją uruchamia, a nawet jak wyłączę PHP, czy tez samo apache usługa działa nadal.

Co z tego, że piszę z palca ulimit -n 10240 jak po wylogowaniu z SSH limit ustawia się znów na domyślny.

PS. Teraz cały czas jak zalecaliście korzystam z karnela bez grs:

Kod:

uname -a
Linux XXX 2.6.38.2-xxxx-std-ipv6-64 #2 SMP Thu Aug 25 16:43:23 UTC 2011 x86_64 GNU/Linux

Macie jeszcze jakieś pomysły co tutaj ustawić, bo nic nie chce działać :(

Ostatnio edytowany przez desavil (2012-02-01 17:55:54)

Offline

 

#18  2012-02-02 09:06:33

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

Pomoże ktoś, bardzo mi zależy na rozwiązaniu tego problemu.

Offline

 

#19  2012-02-02 13:50:40

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Konfiguracja ulimit - limit otwartych deskryptorów

@desavil:

1. ulimit ustawia limit w danej powloce i ten limit jest dziedziczony przez procesy potomne ... wiec aby program X mial zwiekszony limit w powloce z ktorej jest odpalony musi byc wykonany stosowny ulimit ...
2. aby po zalogowaniu sie przez ssh byl z automatu ustawiony odpowiedni ulimit to komenda tas musi byc w plikah wykonywanych w trakcie uruchamiania sesji ...
3. napisz konkretnie z czym jest problem (jaki to program itd) bo moze nie chodzi o ulimit


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#20  2012-02-02 14:21:43

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

bercik,

1. Ustawiłem ulimit z palca w konsoli na zalogowanym userze na którym działa aplikacja, ulmit -a pokazuje zmienioną wartość, tak samo jak w tej konsoli uruchamiam aplikację lecz aplikacja i tak nie działa poprawnie.

2. Wyżej napisałem już co zawierają moje pliki .bash_profile, .bashrc

3. Program to serwer streamingu ShoutCast. Każdy słuchacz radia to potomny proces serwera ShoutCast.
Nawet jeżeli ustawię maksymalną ilość slotów (słuchaczy) serwera ShoutCast, np. 2000 może on mieć i tak 1010 słuchaczy maksymalnie, tyle obsłuży więcej nie będzie mogło gdyż nie może utworzyć większej liczby procesów potomnych potrzebnych do obsłużenia tego.

Problemy te są również opisane na forum twórcy tego oprogramowania - nullsoft, winamp:
http://forums.winamp.com/showthread.php?s=&threadid=278235
http://wamp-forums-dtc-a.evip.aol.com/showthread.php?p=2831040

Offline

 

#21  2012-02-02 14:41:59

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Konfiguracja ulimit - limit otwartych deskryptorów

A może jemu się nie rozbija o liczę otwartych plików tylko dodatkowo o liczbę procesów?
Pokaż co daje

Kod:

ulimit -a

oraz

Kod:

ps -uUSER -L|wc -l

LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#22  2012-02-02 14:44:01

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

Kod:

ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 16382
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Kod:

ps -uhosting -L|wc -l
3082

PS. Teraz na tym serwerze jednym ShoutCast jest ok. 810 słuchaczy + inne serwery to będzie w sumie ok. 1500 słuchaczy z wszystkich serwerów ShoutCast łącznie.

Ostatnio edytowany przez desavil (2012-02-02 14:45:43)

Offline

 

#23  2012-02-02 15:06:36

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Konfiguracja ulimit - limit otwartych deskryptorów

polecenie wydałeś z usera z którego działa shout?


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#24  2012-02-02 15:11:15

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Konfiguracja ulimit - limit otwartych deskryptorów

Tak, teraz jest np.

Kod:

ps -uhosting -L|wc -l
3101

A na tym jednym serwerze ShoutCast 900 słuchaczy, nie licząc pozostałych.

PS. Wszystkie są uruchomione na tym samym userze.

Ostatnio edytowany przez desavil (2012-02-02 15:11:37)

Offline

 

#25  2012-02-02 17:34:19

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Konfiguracja ulimit - limit otwartych deskryptorów

Spróbuj dodać  ulimit {opcje} do polecenia odpalającego shoutcasta, lub skryptu w /etc/init.d, który go uruchamia, przed poleceniem uruchamiającym shoutcasta.

Poza tym, jeśli chcesz używać grsec, to radziłbym zainteresować się Icecastem.
http://pl.wikipedia.org/wiki/Icecast

Edyta:

To jest program, uruchamiany z poziomu PHP za pomocą funkcji system().

To moze zastosuj ulimit nie dla shoutcasta, ale dla procesu php czy serwera, dla apacha - apache, dla php-fpm - php-fpm.

1. ulimit ustawia limit w danej powloce i ten limit jest dziedziczony przez procesy potomne ... wiec aby program X mial zwiekszony limit w powloce z ktorej jest odpalony musi byc wykonany stosowny ulimit ..

Bo jeśli limit jest dziedziczony przez procesy potomne, to na 99% domyślny limit jest dziedziczony z "góry", i żadne kombinacje z konsolą nic tu nie poradzą.

Ostatnio edytowany przez Jacekalex (2012-02-02 18:20:08)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)