Nowe posty

Autor Wątek: Problem z jbd2 - serwer 24/7  (Przeczytany 1008 razy)

Offline PrzemoVi

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 3
    • Zobacz profil
Problem z jbd2 - serwer 24/7
« dnia: 2018-07-11, 08:56:34 »
Witam.
Z linuxa korzystam już od dłuższego czasu, ale pierwszy raz mam taki dziwny problem, którego nie potrafię sam rozwiązać.
Mianowicie posiadam serwer, na którym 24/7 działa sobie serwer www, teamspeak, serwer do gry i parę innych pierdół.
Ogólnie wszystko tak skonfigurowane, aby żarło jak najmniej IO. W nocy mnie strasznie rozprasza dźwięk pracującego hdd :P
Niestety nie jest to w 100% możliwe. Tzn jeden z serwerów co kilka sekund zapisuje bardzo małe pliczki i tego nie idzie w żaden sposób ominąć.
próbowałem ustawić vm.dirty tak, aby cachował wszystko co się da i zapisywał wszystko co godzinę na dysku, tak aby się po trzech minutach wyłączał.

Oto skrypt, który się wykonuje przy starcie:

echo 10 > /proc/sys/vm/swappiness
echo 360000 > /proc/sys/vm/dirty_expire_centisecs
echo 360000 > /proc/sys/vm/dirty_writeback_centisecs
echo 60 > /proc/sys/vm/dirty_background_ratio
echo 95 > /proc/sys/vm/dirty_ratio
hdparm -S 36 /dev/sda

I jego wcześniejsza wersja:

echo 10 > /proc/sys/vm/swappiness
echo 0 > /proc/sys/vm/dirty_expire_centisecs
echo 0 > /proc/sys/vm/dirty_writeback_centisecs
echo 60 > /proc/sys/vm/dirty_background_ratio
echo 95 > /proc/sys/vm/dirty_ratio
hdparm -S 36 /dev/sda

Czasami wpisuje też:
echo 5 > /proc/sys/vm/laptop_mode

Problem z tym jest taki, że bez tego skryptu serwer zapisuje bez przerwy mikroskopijne pliki na hdd. Z skryptem zapisuje wszystko hurtem co 3 minuty.
Ale no właśnie - co 3 minuty. Bufor się nawet nie zapełnia. Po prostu w IOTOP pokazuje mi nazwę procesu serwera i pod nim jbd2.
I tak się zastanawiam, czy jbd2 "budzi" dysk a laptop-mode wszystko zapisuje hurtowo, czy po prostu cache nie działa, serwer zapisuje plik i jbd2 to indeksuje.
Po prostu co mam zrobić, aby dysk mi się nie budził częściej niż raz na godzinę?

Też się zastanawiam jak pogodzić dirty_writeback_centisecs z commit w fstab.
Czym to się różni?

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2023
  • 1709
    • Zobacz profil
Odp: Problem z jbd2 - serwer 24/7
« Odpowiedź #1 dnia: 2018-07-11, 12:07:28 »
- Jak padnie zasilanie, to nie wiem, czy to bedzie dobre rozwiazanie, bo pamiec z bufora moze zniknac. ( chyba ze masz UPS )
- Korzystasz z laptop-mode-tools ?
- Myslales o wymianie dysku ?
Instalacja SSD moze jest drogie i male, sa tez dyski HDD do laptopow z 5 letnia gwarancja z jakims zlaczem SATA i cichsze.
 
« Ostatnia zmiana: 2018-07-11, 12:09:24 wysłana przez 1709 »
Pochwal się swoją kartą graficzną w tym wątku-->
http://forum.linux.pl/index.php/topic,19841.msg121122.html#msg121122

Offline PrzemoVi

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 3
    • Zobacz profil
Odp: Problem z jbd2 - serwer 24/7
« Odpowiedź #2 dnia: 2018-07-11, 22:30:52 »
Serwer bazuje na płycie głównej z mocnego laptopa ( z zamontowaną baterią ), więc można powiedzieć, że mam UPS :)
Chce w to jak najmniej wpakować. Zwłaszcza, że podobno da się to osiągnąć drogą programową.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2023
  • 1709
    • Zobacz profil
Odp: Problem z jbd2 - serwer 24/7
« Odpowiedź #3 dnia: 2018-07-11, 23:11:35 »
W jaki sposób odczytujesz ile pamięci RAM (buforu) ma twój dysk ?
Przepraszam, ale nie mam czasu zbytnio czytać o dyskach twardych.

A myslales moze o zamontowaniu wykorzystywanego folderu w pamieci RAM ?
https://www.cyberciti.biz/faq/howto-create-linux-ram-disk-filesystem/
Potem jesli Ci te pliki sa potrzebne moglbys co godzine sobie kopiowac na dysk twardy za pomaca wpisu w crontab.
Do kopiowania mozesz uzyc rsync, bo przesyła tylko nowe pliki oszczedzajac czas i dysk.
« Ostatnia zmiana: 2018-07-11, 23:15:15 wysłana przez 1709 »
Pochwal się swoją kartą graficzną w tym wątku-->
http://forum.linux.pl/index.php/topic,19841.msg121122.html#msg121122

Offline PrzemoVi

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 3
    • Zobacz profil
Odp: Problem z jbd2 - serwer 24/7
« Odpowiedź #4 dnia: 2018-07-12, 22:14:01 »
Myślałem, że te dane ( w vm.dirty ) są zapisywane w pamięci ram komputera?
Mój dysk ma 8mb pamięci.
Serwer ma 6 gb pamięci ram i prawie cała jest wykorzystywana.
Jeżeli bym chciał tam przenieś pliki aplikacji to by zajęła ~1,5gb, a to za duża strata.