Nowe posty

Autor Wątek: Sztywny przydział pamięci?  (Przeczytany 3590 razy)

kazek76

  • Gość
Sztywny przydział pamięci?
« dnia: 2009-09-26, 02:44:43 »
Witam wszystkich,

dość obrazowo przybliżę problem, bo przygodę z linuxem zacząłem dopiero od 2 tyg.
Mam server  z Debianem 5. Wszystkie parametry są nieistotne, prócz pamięci, której jest 786MB. Obecnie uruchamiam na nim apache2,maradns,poczta i ftp - powiedzmy, że zajmuje to 200MB. Uruchamiam teraz serwer czatu (java) i drastycznie bierze pamięć (720 w górę MB). Zdarzyło się, że i mc  nie uruchomiło. Chciałbym aby ktoś naprowadził mnie (o gotowca nawet nie proszę ;) na właściwe tory, czym mogę na sztywno przydzielić temu serwerowi czatu pamięć, chciałbym ten proces zamknąć w max400MB.
Nadmienię od razu, że ów serwer czatu, gdy miałem ponad 300MB na serwerze, zabierał "tylko" 280MB.

Za wyrozumiałość dziękuję.

arctgx

  • Gość
Sztywny przydział pamięci?
« Odpowiedź #1 dnia: 2009-09-26, 09:43:27 »
man -P 'less -p "ulimit"' bash
man ulimit

- może wystarczy na początek. Sam nie eksperymentowałem nad tą podstawową rzeczą.

kazek76

  • Gość
Sztywny przydział pamięci?
« Odpowiedź #2 dnia: 2009-10-04, 11:18:13 »
witam,
więc pobawiłem się trochę funkcją 'ulimit' i przydzieliłem użytkownikowi zasoby pamięci
kazek@10676:~$ 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) 69632
max locked memory       (kbytes, -l) 389120
max memory size         (kbytes, -m) 389120
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) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 69632
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
jednak po włączeniu, z tego użytkownika serwera czatu, dalej proces jawy zabiera ok. 500MB

arctgx

  • Gość
Sztywny przydział pamięci?
« Odpowiedź #3 dnia: 2009-10-04, 21:05:11 »
Cytat: kazek76
jednak po włączeniu, z tego użytkownika serwera czatu
...w tej samej powłoce (lub nadpowłoce), w której ten proces działa?

Ulimit kontroluje tylko procesy podrzędne wobec powłoki, w której go uruchomiłeś. W praktyce, ustaw sobie limit, a potem w tej samej powłoce uruchom ten zasobożerny proces.

Przy okazji, ponieważ sama powłoka zużywa jakiś skromny zasób, warto zastąpić basha lżejszą powłoką obsługującą ulimit (np. dash). To jednak może nie mieć znaczenia wobec wielkości limitu, który chcesz ustawić.