OT: jak namierzyć przyczynę wysokiego load?

Jacek Konieczny jajcus at jajcus.net
Tue Mar 12 14:57:13 CET 2013


On Tue, 12 Mar 2013 14:37:25 +0100 (CET)
Jacek Osiecki <joshua w hybrid.pl> wrote:

> Witam,
> 
> Od jakiegoś czasu walczę z niekończącymi się alertami o wysokim
> loadzie na różnych serwerach. Konkretniej - to na dwóch, które
> działają w tandemie i mają spięte bazy mysql (replikacja) oraz
> filesystemy /home (DRBD+OCFS2).
> 
> Bardzo często mam sytuacje takie, że load rośnie nagle do wysokich
> poziomów rzędu 50-60 - a gdy po 3 minutach dostaję info od nagiosa to
> load już jest niewielki lub ma wyraźną tendencję spadkową.

'Load' mówi ile procesów w jednej chwili che coś od systemu.
Jeżeli masz file-system na DRBD+OCFS, to wystarczy, że file-system
przez chwilę będzie zatrzymany przez problemy z siecią, a już wszystkie
procesy, które cokolwiek chcą tam zapisać (czy nawet odczytać, jeśli
masz włączone atime) się zatrzymają w stanie 'D' i zaczną być wliczane
do tego 'loadu'.

> Nie bardzo jestem w stanie namierzyć cokolwiek co by tu mogło wpływać
> na wysoki load.

Stawiam na problemy z siecią i DRBD/OCFS.

Jak rozumiem używasz DRBD w konfiguracji active-active. W takim
przypadku nie może on zgłosić powodzenia żadnej operacji zapisu, póki
nie dotrze ona do drugiej strony. Wystarczy strata pakietu, czy większe
opóźnienie i już wszystkie procesy się zatrzymują.
W przypadku OCFS dochodzą jeszcze blokady (DLM), które też są
synchronizowane przez sieć.

System może wydawać się działać normalnie, bo te opóźnienia mogą być,
po uśrednieniu, niewiele większe od opóźnień w dostępie do zwykłego
dysku twardego, ale procesy czekające na DRBD czy lock DLM dla systemu
wyglądają trochę inaczej (przynajmniej takie mam wrażenie) – na dysk
zwykle czekają w stanie 'S', na DRBD/lock w stanie 'D'. Pierwsze nie
jest wliczane do load, drugie już tak.

Co można z tym zrobić? 

- spróbować montować z noatime,nodiratime, żeby ograniczyć ilość
  zapisów/blokad
– pogmerać z parametrami DRBD
– sprawdzić połączenie sieciowe, o ile możliwe zrobić dedykowane dla
  DRBD i/lub dla klastra/DLM
– poustawiać priorytety ruchu tak, żeby łącze nigdy nie było wysycone

Pozdrowienia,
	Jacek


More information about the pld-devel-pl mailing list