Odmładzanie szrotu komputerowego

Jest taki komputer, z którego korzystam w domu rodziców. Poleasingowy desktop, z monitorem CRT 17″, czyli zabytek. Służy do przeglądania WWW, jako terminal oraz jako dodatkowy storage na backupy zdjęć na starych, niewielkich dyskach 3,5″. Korzystam z niego sumarycznie tydzień, może dwa w roku. Kiedyś niewiele więcej. Wyposażony w Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz i 2 GB RAM, w zasadzie spełniał swoje zadanie.

Niestety, 2 GB RAM powodowały, że z niektórymi rzeczami nie dawał rady. I pół biedy, jeśli było to kilka zakładek WWW. Gorzej, że zaczął mieć problem z otwarciem co większych zdjęć z poczty. Korzystam z niego na tyle rzadko, że wymiana sprzętu nie miała sensu. Z drugiej strony wyprzedaję trochę starych podzespołów, więc wiem, jak niskie są ceny. Postanowiłem sprawdzić, czy da się dołożyć pamięci RAM.

Płyta główna

Okazało się, że płyta to DQ35JO i obsługuje wg dmidecode maksymalnie do 8 GB RAM DDR2. Co więcej, ma cztery sloty. Rozważałem dokupienie 2×2 GB, co pozwoliłoby rozbudować pamięć do 4 GB, a przy odrobinie szczęścia do 6 GB. Ceny do zakupu od ręki były nieadekwatne (ok. 40 zł za ww. konfigurację), ale temat nie był pilny. Trochę policytowałem i kupiłem 2×1 GB RAM za… 1 zł. Plus wysyłka.

Procesor

Trochę się rozochociłem, więc sprawdziłem, jakie jeszcze procesory obsługuje płyta. Znowu pozytywne zaskoczenie, bo można włożyć całkiem sporo modeli procesorów, w tym Core 2 Quad. Ceny tych ostatnich znowu były nieadekwatne, ale znalazłem dostępne od ręki Intel Core 2 Duo E8400 3.0 GHz za… 5 zł. Specyfikacja tutaj. Jak widać TDP bez zmian, taktowanie 25% większe, cache L2 trzy razy (sic!) większy. Grzech nie wymienić, znaczy, bo procesor szybszy. Oczywiście to sztuka dla sztuki, pewnie nie odczuję w praktyce różnicy, ale chodzi głównie of fun z grzebania w sprzęcie.

Zakupy

Szczęśliwie sprzedawca miał w ofercie pastę termoprzewodzącą na procesor. Zrobiło się całe 11 zł plus wysyłka, która niemal podwajała cenę. Jak szaleć to szaleć, z miejscem na dyskach też było słabo, więc dorzuciłem dysk 500 GB za 35 zł dzięki czemu wysyłka załapała się na Smart! Dysk się przyda, bo w maszynie był stary, mały dysk IDE oraz niewiele większy SATA. Istotniejsze dane tzn. backupy leżą sobie na softraid RAID1, pozostała część to system i śmieci. Jedyne o czym zapomniałem i musiałem dokupić później, już gdzie indziej, to przejściówka do zasilania dysku SATA za 7 zł z wysyłką.

Wymiana odbyła się błyskawicznie. Najpierw wymieniony RAM i sprawdzenie przy pomocy memtest86+, potem procesor. Cieszę się, że nie skusiłem się na mocniejszy procesor, bo radiator jest… taki sobie. Jakiś stockowy zapewne, mało metalu, nie wygląda na coś potrafiącego odprowadzać większą ilość ciepła.

Ekonomia

Oczywiście z ekonomicznego punktu widzenia sens jest żaden, bo chodziło o fun. Zamiast rozbudowywać stary sprzęt, pewnie bardziej opłaca się kupić gotowy, kompletny zestaw z 4 GB RAM i dyskiem. Sprawdziłem i używany stacjonarny komputer z Core 2 Quad można kupić już za 170 zł. A Core 2 Duo za 130 zł. I to biorąc tylko pod uwagę oferty od Super Sprzedawców.

Oczywiście kupując takiego szrota „do WWW” warto zwrócić uwagę na procesor i rozmiar dysku. Dopłacając symboliczne kwoty można kupić znacznie lepszy sprzęt. Do sporadycznego korzystania pobór prądu nie robi różnicy. Jeśli jednak komputer miałby być włączony codziennie, przez dłuższy czas, warto przeliczyć kalkulatorem, czy nie lepiej zainwestować w coś bardziej energooszczędnego.

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.

Monitoring w pracy

Nadzór w pracy istnieje od zawsze. Jakby nie było, jest to jedna z funkcji kadry kierowniczej. Zastanawiałem się ostatnio, jak to wygląda obecnie, co się zmieniło. O tym, że coraz więcej zakładów ma zamontowane kamery powszechnie wiadomo. Zresztą rejestratory video staniały i spowszedniały na tyle, że spora część znajomych ma je zamontowane w samochodach czy na rowerach. Opinie na ich temat w miejscach pracy są różne, część pracowników jest (była?) zdecydowanie niechętna, ale IMO tak naprawdę wszystko zależy, jak są wykorzystywane i umieszczone. Pracuję w miejscu, gdzie są kamery i raz mi osobiście jako pracownikowi się przydały.

Sprawa trywialna, coś z laptopem i dyskiem było. Kumpel przyniósł czyjegoś służbowego lapka, ja wyjąłem z niego dysk, podłączyłem do kieszeni, IIRC zrobiłem diagnostykę, wkręciłem dysk z powrotem, oddaję lapka. No i przychodzi kumpel, pokazuje zdjętą zaślepkę, pusto, i pyta „a gdzie dysk?”. Szukamy. Tak całkiem pewien, że go wsadziłem z powrotem to nie byłem, bo raczej odruchowo działałem, więc sprawdzam biurko, szuflady. Jak się tak rozglądam, to jestem coraz bardziej przekonany, że włożyłem z powrotem. Kumpel upiera się, że dostał ode mnie, otworzył i było pusto. Zgrzyt.

No to wzięliśmy nagranie z rejestratora. I widać jak wyjmuję, podłączam do kieszeni, wkładam z powrotem, przykręcam. Kumpel obraca lapka tak, jak jest na kamerze i pokazuje pustą dziurę po lewej. Patrzymy w monitor, wkręcam po prawej. WTF? Patrzymy na lapka i w śmiech. Ano tak, laptop był 17″ i miał dwa sloty na dysk, ale to zupełnie nie przyszło nam do głowy.

Tak czy inaczej, nagrania z kamer są dość dokładne (no dobrze, zależy od kamery i ustawień jeszcze), ale raczej trudno je analizować automatycznie. Forma strawna dla komputera to raczej osoba, timestamp, określenie miejsca. Oczywiście da się zrobić, bo pozycjonować można choćby smartfona (i aktywnie, przy pomocy aplikacji na smartfonie, i pasywnie, z wifi), no ale nie każdy pracownik w zakładzie musi mieć smartfona, włączonego, z wifi itd.

Niedawno dostałem namiar na stronę https://www.autoid.pl/ czyli dostawcy systemów do automatycznego… praktycznie wszystkiego – identyfikacji osób, przedmiotów, pojazdów itp. i dostałem odpowiedź na moje pytanie, jak można w sposób łatwo przetwarzalny komputerowo monitorować miejsce przebywania pracownika w firmie. Technologia opiera się na RDIF, które mogą służyć nie tylko do jako karty dostępu do drzwi (de facto standard w firmach, kto nie ma karty?), ale w wersji „dalekiego zasięgu” (do 12 m)  mogą być odczytywane bez przykładania do czytnika. Wygląda na prostsze i tańsze od smartfona u pracownika, prawda?

Producent podpowiada nawet sposoby umieszczenia – zaszycie w ubraniu roboczym, oraz jako karta. No i w tym momencie można automatycznie sprawdzić… wszystko. Na przykład to, czy dany pracownik pracuje na swoim stanowisku, czy siedzi i flirtuje z sekretarką. Z których pomieszczeń korzysta. Albo jak często wychodzi do toalety.

Uczucia, podobnie jak w przypadku kamer mam mieszane. Oczywiście wyobrażam sobie nadużycia ze strony pracodawcy z wykorzystaniem tego typu technologii, ale… nie dajmy się zwariować. Równie dobrze może wykorzystywać tego typu rozwiązania do optymalizacji rozmieszczenia narzędzi/pomieszczeń… Tworzący prawo będą mieli kolejny trudny orzech do zgryzienia.

Czyli klasyczne: narzędzia nie determinują wykorzystania. Pozostało życzyć wszystkim normalnych AKA ludzkich pracodawców, którzy rozsądnie korzystają z narzędzi. I pracowników, których nie trzeba kontrolować na każdym kroku.