Nowe posty

Autor Wątek: Debian Testing amd64 na serwerze nie uwalnia pamięci RAM.  (Przeczytany 4915 razy)

Ksanderon

  • Gość
Postawiłem dzisiaj serwer na Debianie, ale martwi mnie to, że nie zwalnia on zasobów!
Sytuacja wygląda tak- na serwerze postawiłem jedynie proftpd i sshd jak na razie (free i htop pokazuje że pamięć stoi na poziomie 80M), następnie zdalnie przesłałem na niego kilka sporych zbiorów(skompresowana baza danych) przez ftp (w sumie 6-7GB), wszystko fajnie, pamięć "urosła" do 245+-M po jakimś czasie sama spadła do 200M po zakończeniu. myślałem, że gdzieś może w proftpd jest błąd ale nie, restart /etc/init.d/proftpd nic nie dał dalej stoi na 200M. sync też nie pomaga o co tutaj chodzi, wie ktoś w czym jest problem?

Jak na razie się nie martwię- na serwerze jest 16 G ramu więc problemu jeszcze nie ma, ale nie ładnie mi to wygląda.

@na desktopie też używam testing tyle, że 32 bit i takiego problemu raczej nie ma.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3066
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Debian Testing amd64 na serwerze nie uwalnia pamięci RAM.
« Odpowiedź #1 dnia: 2011-06-20, 20:16:28 »
Wzdeh... Pokłosie windowsowych RAM-Optymizerów.

1. Płacisz za dużo RAMu aby był
a) pełny
b) pusty

2. Uważasz że kto zna się lepiej na zarządzaniu pamięcią:
a) ja
b) sytem

A teraz na poważnie:
Jeżeli chodzi o dyski to masz pi*oko dwa cache: odczytu i zapisu. Jeżeli piszesz duże pliki to jadą one do obszaru cache'u zapisu. Zużycie pamięci skacze, system po pewnym czasie (albo po 'sync') zapisuje dane i ... zużycie pamięci (prawie) nie wraca do wartości pierwotnej, zwłaszcza jeżeli jest dużo wolnej pamięci. Otóż system nie wywala zapisanego pliku z pamięci, bo być może zaraz będziesz go chciał czytać (no w końcu po to się zapisuje aby czytać).
A na czym polega magia: taki "czysty" bufor (czysty, to znaczy zapisany na dysk) zajmuje wprawdzie pamięć, jednak w przypadku nagłej potrzeby zaalokowania wielkiego bloku RAM może być po prostu usunięty. Jest zapisany, w tej chwili nikt go nie czyta czyli bez żadnego kosztu można go w każdej chwili zwolnić. A skoro zwolnienie jest "za darmo" to póki nie jest krucho z wolną pamięcią, system nie zwalnia czystych buforów.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Ksanderon

  • Gość
Debian Testing amd64 na serwerze nie uwalnia pamięci RAM.
« Odpowiedź #2 dnia: 2011-06-20, 21:18:32 »
problem polega na tym, że ja to wiem- spróbowałem zaallokować sobie w ramach testu "dużo pamięci" na siłe aby sprawdzić czy to tak działa i system tego nie zwolnił po zakończeniu operacji. Tzn. zwolnił to co "ja" sobie przydzieliłem, ale w momencie gdy potrzebne było więcej pamięci wlazł na swap zamiast zwolnić to co jest w cache.

  • Gość
Debian Testing amd64 na serwerze nie uwalnia pamięci RAM.
« Odpowiedź #3 dnia: 2011-06-20, 23:19:35 »
Witam.
Sprawdź priorytet partycji wymiany: swapon -s. Sprawdź też, czy plik:
/etc/sysctl.conf
posiada wpis postaci:
vm.swappiness=wartość
Tutaj trochę więcej informacji:
http://www.ubuntu-pomoc.org/optymalizacja-wykorzystywaniapartycji-swap/