KVM i task blocked for more than 120 seconds – solved

Sprawę miałem opisać już jakiś czas temu i zapomniałem, a jest szansa, że komuś się przyda. Był sobie serwer, na którym działało trochę VPSów. Wszystkie KVM, wszystkie z systemem plików ext4 i obrazem dysku qcow2. Czyli standard. Sprzęt nie pierwszej młodości, ale działały względnie stabilnie. Poza jedną, w sumie najbardziej obciążoną, bo działał w niej jeden z serwerów Zabbixa. Niespecjalnie obciążony w porównaniu z innymi, w których jednak żaden nie działał w KVM.

Tej jednej zdarzał się zaliczyć zwis, z komunikatami dotyczącymi KVM i task blocked for more than 120 seconds:

kernel: INFO: task XXX blocked for more than 120 seconds.kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

Wymagany był reboot wirtualki. Dotyczyło to różnych tasków, a całość działa się losowo. Potrafiło działać przez kilka tygodni, a potrafiło wywalić się co parę dni, co nie ułatwiało diagnostyki. Początkowo działo się to na tyle rzadko, że sprawa została zignorowana. Jedkal w miarę wzrostu obciążenia maszyny fizycznej, problem się nasilał. Objaw był taki, że operacje wymagające zapisu na dysk nie wykonywały się (czyli monitoring zdychał). Zacząłem szukać przyczyn. Pierwotnie podejrzenie padło na coś, co wykonuje się z crona, bo sporo procesów crona wisiało. Jedak przejrzenie skryptów pokazało, że niespecjalnie mogą one być przyczyną

Wyglądało, jakby momentami coś nie wyrabiało się dostępem do dysków w momentach większego obciążenia. Z tym, że znowu – widać było, że nie jest to deterministyczne. Ponieważ maszyny jak wspomniałem starawe, to podejrzenie padło na sprzęt – problemy z dostępem do dysków potrafią robić cuda. SMART pokazywał, że wszystko OK, ale sprawdzić nie zawadzi… Przeniesienie wirtualki na inną, mniej obciążoną maszynę fizyczną nie przyniosło rezultatów – wieszało się nadal, chociaż rzadziej.

Oczywiście wyłączenie komunikatu, które jest w nim wspomniane, nie rozwiązuje problemu. W międzyczasie trafiłem na opis rozwiązania problemu KVM task blocked, czyli zmniejszenie vm.dirty_ratio oraz vm.dirty_backgroud_ratio. Tylko że… to nie pomogło. Nie pomogło także zwiększenie kernel.hung_task_timeout_secs początkowo do 180, potem do 300 sekund. Było trochę lepiej, ale problem nadal występował. Pół żartem, pół serio zacząłem się zastanawiać nad automatycznym rebootem po wystąpieniu problemu (zawsze to krótsza przerwa), ale to brzydkie obejście, nie rozwiązanie. Tym bardziej, że w miarę wzrostu obciążenia i VPSa, i maszyny fizycznej na której on działał, problem zaczął występować częściej. Góra co parę dni. Paradoksalnie, dobrze się stało, bo i motywacja większa, i sprawdzanie efektu wprowadzonych zmian łatwiejsze.

Z braku opisów w sieci, pomocy znajomych adminów i innych pomysłów zacząłem sprawdzać po kolei wszystko. Od fsck systemu plików, przez nowsze wersje kernela, zarówno na maszynie fizycznej, jak i na wirtualce – a nuż coś poprawili. Bez rezultatu. Ostatecznie postanowiłem zmienić format dysku wirtualki z qcow2 na raw i… trafiony, zatopiony – wirtualka zaczęła działać stabilnie.

Dla pewności wróciłem jeszcze z raw z powrotem na qcow2, na wypadek, gdyby chodziło o jakieś błędy, których nie wykrywało narzędzie do sprawdzania qcow2, ale… problem natychmiast wrócił. Gwoli ścisłości: ww. tuning dotyczący parametrów kernela z serii vm.dirty został zachowany.

LXDE -> LXQt – podejście pierwsze

Od dłuższego czasu (notka wskazuje, że już sześć lat, jak ten czas leci…) moim domyślnym – i w zasadzie jedynym używanym – środowiskiem na desktopie (ang.: desktop environment) jest LXDE. Nie udało mi się oczywiście całkiem zrezygnować z zależności od KDE. Z aplikacji przychodzących z KDE ostały się: edytor kate (jednak z GUI – najwygodniejszy, obecnie myślę o Atom, ale kobyła…); konsole (w szczególnych przypadkach typu konieczność wyboru charsetu, bo lxterminal ogólnie działa bardzo fajnie) oraz… kdiff3, który jest wygodny. Ale nie o tym ma być notka. Będzie porównanie LXDE vs LXQt.

Środowisko LXDE

Środowisko LXDE Źródło: http://lxde.org/lxde_desktop/

Swego czasu w sieci było sporo zachwytów nad LXQt i trochę bolało mnie, że nie ma paczek w Debianie, żeby się pobawić. Potem zauważyłem, że paczki pojawiły się w unstable, ale nie było już jakoś ani czasu, ani ochoty. Ostatnio sobie przypomniałem o ich istnieniu, zainstalowałem pakiety, przelogowałem się i… trochę rozczarowanie. Może za dużo czytałem zachwalania i miałem za wysokie oczekiwania, ale przyznam, że LXQt nie powaliło mnie.

Pierwsze co mi się rzuciło w oczy, to brzydkie dekoracje okien i brak większego wyboru w tym zakresie. OK, może kwestia przyzwyczajenia. Do tego doszły braki widgetów (np. wyloguj) oraz zmiany działania tych, które były wcześniej używane. Przykładowo wykres użycia CPU czy RAM zawiera teraz więcej informacji, na jednym wykresie. W przypadku CPU pokazuje nie po prostu zużycie, ale z rozbiciem na nice, system, user. RAM podobnie – used, buffers… Po co to komu na desktopie, tak naprawdę? Na pierwszy rzut oka jest mniej czytelnie, choć informacji więcej. I jest to ogólny trend. Widget do pokazywania temperatury korzysta domyślnie ze wszystkich możliwych źródeł, zarówno tych działających, jak i nie działających. I żeby było „normalnie”, to trzeba wyłączyć niechciane (i niedziałające).

Podgląd pulpitów jakiś taki brzydszy. Znaczy wybór pulpitów, bo podglądu po prostu nie ma. QTerminal nadal nie ma możliwości wyboru kodowania. Wbudowane blokowanie terminala (czyli screensaver) odwołuje się do nieistniejącej binarki, chociaż to akurat obchodzę przy pomocy xscreensavera, tak samo miałem zrobione w LXDE.

Żeby nie było, że tylko wady: widać, że poświęcono trochę pracy na łatwiejsze (drag & drop) dodawanie programów do pasków. Pojawiło się jakby więcej opcji w wielu miejscach. Trochę mam skojarzenia z KDE 3.5 (tak jak je pamiętam), jeśli chodzi o możliwości konfiguracji. Wiele rzeczy daje się obejść, np. zamiast brakującego widgetu do wylogowania można użyć drugiego paska ze skrótami do aplikacji i tam przeciągnąć z menu odpowiednie programy. Zdecydowanie fajny jest menadżer nośników wymiennych – w LXDE nie korzystałem, nie wiem czy w ogóle był.

Drobiazgów typu zużycie RAM nie mierzyłem – w porównaniu z dowolną przeglądarką WWW to są orzeszki teraz… Ogólnie środowisko działa szybko i sprawnie. Mam je na domowym desktopie od jakichś dwóch tygodni i zdecydowanie daje się używać.

Środowisko LXQt

Środowisko LXQt. Źródło: http://lxqt.org/screenshots/dark/

Podsumowując: wygląd jest sprawą dyskusyjną. Moim zdanie LXQt nie wnosi nic specjalnego w stosunku do LXDE, poza wyglądem, więc jeśli ktoś korzysta z LXDE, to raczej nie będzie zachwycony zmianą. Faktem jest, że LXQt działa i daje się używać, więc gdyby LXDE zniknęło, to mam wybranego następcę. Zmiana filozofii z „jest prosto i działa” na „można więcej skonfigurować” – co kto lubi. Mi LXDE pasowało, bo korzystałem z praktycznie niemodyfikowanej konfiguracji domyślnej i wielką zaletą przesiadki na LXDE był właśnie fakt, że praktycznie wszystko od kopa działa i nie trzeba rzeźbić. Przy przejściu z LXDE na LXQt trochę trzeba się pobawić z konfiguracjami.

Póki co zostawiam LXQt, żeby pozbyć się przyzwyczajeń, ale nie wykluczam, że za parę tygodni wrócę do LXDE. Tym bardziej, że właśnie z LXDE korzystam na innych desktopach – paczki LXQt w Debianie są dopiero w testing i wyżej.

UPDATE Pojedynek LXDE vs LXQt na dłuższą metę wygrało jednak LXDE. Jakoś przyjemniej to moim zdaniem wygląda.

Przeglądarka Vivaldi

Parę dni temu do przeglądarek dostępnych na rynku dołączył nowy gracz – Vivaldi. A w zasadzie nie tyle dołączył, co ukazała się wersja 1.0. Oczywiście zainstalowałem i się pobawiłem. Jest parę ciekawych ficzerów, które przypadły mi do gustu, ale nie wszystko mi się podoba.

Pierwszą rzeczą, którą widzimy po instalacji i uruchomieniu przeglądarki, jest tzw. wizard. Można wybrać schemat kolorów, rozmieszczenie belki z tabami i… obrazek, który będzie służył za tło przy speed dial. Wszystko oczywiście można zmienić później w ustawieniach, ale uważam, że taka szybka i łatwo dostępna personalizacja to miła rzecz. Poza nieszczęsną tapetą dla speed dial – po co tam komu tapeta? Przecież to potrzebne jak tapeta w systemie – widzę ją przez parę sekund po uruchomieniu i tyle.

Kolejną rzeczą, która zwróciła moją uwagę, jest pasek postępu. Pokazuje on ilość pobranych danych, postęp ładowania w postaci przesuwającego się paska i chyba ilość obrazków na stronie. W każdym razie kiedyś któraś przeglądarka już tak miała i uważam to za lepsze rozwiązanie, niż niewiele mówiące kręcące się kółeczko.

Vivaldi ma chyba pewne ambicje do zastąpienia systemu operacyjnego. Jest i wspomniana tapeta, jest wbudowany w przeglądarkę klient poczty, jest możliwość tworzenia notatek. No i w końcu są panele, czyli tak naprawdę funkcjonalność kafelkowego managera okien. O ile do pierwszych dwóch podchodzę zdecydowanie negatywnie, to do tworzenia notatek mam mieszane uczucia. Za to panele nawet mi się podobają. Jest to coś w stylu mini strony WWW, domyślnie w wersji mobilnej, dostępna na każdej zakładce. Po prostu podział powierzchni okna na dwie części. Przy obecnych szerokich monitorach może zdawać egzamin, a w panelach można umieścić np. social media, które i tak nie wymagają wiele miejsca.

OgólnieVivaldi bardzo przypomina mi Operę. Jak się okazało, słusznie, bo projekt tworzą ludzie, którzy kiedyś pisali Operę. Jest parę różnic, przede wszystkim większy nacisk na prezentację. Jest parę innowacji, więc przypuszczam, że – podobnie jak niegdyś OperaVivaldi zdobędzie pewne grono gorących zwolenników. Wielkiej popularności nie wróżę, ale zdecydowanie warto spróbować. Ja planuję od czasu do czasu używać, być może Vivaldi zostanie moją przeglądarką do social mediów.

Na koniec słowo o obsługiwanych systemach operacyjnych – Vivaldi dostępna jest dla Maców, Windows (wersje 32 i 64 bit) oraz Linuksa (pakiety deb i rpm w wersjach 32 i 64 bit). Twórcy nie chwalą się adresami repozytoriów, ale są one dostępne i dodawane automatycznie po instalacji (bez ostrzeżenia, nie lubię). Dla porządku, dla gałęzi stabilnej przeglądarki i Debiana wpis dla sources.list  to:

deb http://repo.vivaldi.com/stable/deb/ stable main