Praca na desktopie z małą ilością RAM po raz pierwszy

Tło problemu

Tak się składa, że apetyt programów i systemów na pamięć RAM systematycznie rośnie, a moje desktopy ilością RAMu nie grzeszą. Faktem jest, że RAM jest teraz tani i praktycznie nie sposób kupić nowego komputera z mniej niż 2-4 GB RAM (chyba, że netbook jakiś), ale… nie każdy sprzęt jest nowy (mój nie jest), nie każdy pozwala na większą ilość RAM no i – przede wszystkim – inwestowanie w stosunkowo drogi, stary RAM do równie starego sprzętu nie ma IMO sensu. A skoro działa, to po co wymieniać? 😉

Poza tym, Linux potrafi działać na komputerach z małą ilością RAMu. Przynajmniej powinien umieć. W każdym razie możliwa jest w miarę komfortowa praca na desktopach z 0,5-1 GB RAM, nawet z KDE (3.5). Chociaż ostatnio pożegnałem się z KDE i zwykle używam LXDE. Oczywiście zależy, co się robi, ale przy typowym korzystaniu, typu włączenie komputera, uruchomienie paru programów (komunikator, przeglądarka WWW, konsola, coś do PDF, jakiś arkusz kalkulacyjny czy edytor tekstu itp.) i wyłączenie komputera na koniec dnia, wszysko było OK. Nawet na 0,5 GB nie odczuwałem specjalnego spowalniania i wykorzystania swap (czasem się zdarzało, ale nie jakoś krytycznie), ale odkąd korzystam z laptopów, hibernacji lub niewyłączania komputera, jest znacznie gorzej.

Główni winowajcy (na laptopie firmowym) to: Firefox 4 – 21% RAM, Icedove – 7,5%, Xorg – 5,4%, plugin-container (czytaj: flash) 3,8%, psi – 3,4% i konsole 2,8%. Na prywatnym lapku podobnie, tylko Firefox 3.6 zajmuje 11%, i dochodzi Chromium 6,7% (najwyższe wystąpienie, jest ich kilka) i liferea 5,4%. Niby nic specjalnego, ale po kilkunastu dniach okazuje się, że na swapie użyte jest 100-400 MB, a przy odpaleniu jakiejś większej aplikacji (czytaj Openoffice) dysk zaczyna ostro pracować. Przy czym dyski w laptopach to zwykle 5400 rpm, więc raczej nie są demonami szybkości… Jednak najgorsze dzieje się przy instalacji aktualizacji. Polecenie wajig daily upgrade praktycznie zabija maszynę, do tego stopnia, że chwilowo traci responsywność – trzeba czekać na przełączenie się między oknami, kursor myszy nie porusza się płynnie itp.

Podejście pierwsze: zmiana parametru swappiness

Określa on, jak chętnie system korzysta ze swap na dysku i przyjmuje wartości od 0 do 100 (szerszy opis parametru swappiness i dyskusja). Domyślnie wynosi on 60, co niekoniecznie jest wartością dobrą dla desktopa. Jak widać, trwa spór o to, czy lepiej ustawić 0 czy 100. Wyszedłem z założenia, że 0 jest lepszą wartością.

Tymczasowe ustawienie wartości swappiness na 0:

echo 0 > /proc/sys/vm/swappiness

Sprawdzenie aktualnego ustawienia:

cat /proc/sys/vm/swappiness

Jeśli chcemy, aby zmiana była wykonywana przy każdym uruchomieniu, to do /etc/sysctl.conf dodajemy linię:

vm.swappiness = 0

Dla jasności: ustawienie swappiness na 0 nie powoduje, że system w ogóle nie korzysta ze swap. Korzysta, jeśli musi tylko mniej chętnie w normalnych warunkach. Efekt: większość czasu jest lepiej, widać, że system praktycznie nie korzysta ze swap. Niestety, jak już zacznie korzystać, to utrata responsywności jest większa, niż przy domyślnej wartości 60 (ocena metodą najdoskonalszą, czyli na oko), więc nie do końca o to mi chodziło.

Podejście drugie: dodanie compcache

Okazało się, że w Debianie w końcu pojawił się compcache w postaci pakietu o nazwie compcache-tools. Pakiet jest nieco śmieszny (tzn. kwalifikuje się to na bug report…), bo działa na kernelu 2.6.32 ze Squeeze, natomiast na 2.6.38 z testing/unstable brakuje modułu, choć sam pakiet właśnie testing/unstable jest. W skrócie – działa to tak, że zamiast po prostu zapisywać dane z RAM na dysk, najpierw dodatkowo je kompresuje (w RAM), a dopiero potem ew. zrzuca na dysk. Czyli większe użycie procesora w zamian za mniejsze zużycie pamięci i mniej operacji na dysku.

Aktywacja compcache (nieco inna, niż w manie, wersja z mana z insmod nie działała):

modprobe ramzswap
rzscontrol /dev/ramzswap0 --memlimit_kb=153600 --backing_swap=/swapfile.swp --init
swapon /dev/ramzswap0

Kolejno: załadownie modułu, określenie parametrów i inicjacja kompresowanego swap (tu: 150 MB RAM i wykorzystanie swap w pliku /swapfile.swp), aktywacja swap. Miałem to włączone przez kilkanaście dni, łącznie ze swappiness 0, ale nie podejmuję się oceny. IMHO niespecjalnie się różni od gołego zmniejszonego swappiness. Natomiast po reboocie system podziałał z 2 dni (bez włączonego compcache) i… system plików (reiserfs) przemontował się w RO. Fsck znalazł błędy, przebudowanie drzewa naprawiło, ale… zgubił 76 plików – i tak były niedostępne (nic krytycznego, głównie moduły Perla).

WTF? Przecież nigdy wcześniej takich cyrków nie było. Co więcej, przy próbie włączenia compcache otrzymałem komunikat typu backing swapfile has holes. To z kolei naprowadziło mnie na ten opis problemu. Niestety, pasuje idealnie, co skutecznie zniechęciło mnie – przynajmniej na jakiś czas – do zabaw z compcache. Odkryłem co prawda nieużywaną partycję swap, której mógłbym użyć, zamiast pliku, ale najpierw doczytam dokładnie. Uszkodzenia systemu plików to nie jest to, co tygrysy lubią najbardziej.

The end?

Zanim będę kontynuował, pozwolę sobie zapytać, jakie ustawienia parametru swappiness i ew. inne ustawienia proponujecie dla desktopa z Linuksem i LXDE, stosunkowo mocnym procesorem i stosunkowo małą ilością pamięci RAM (1 GB)?

Kazik strikes back.

Poprzednia sprawa, z przyczepieniem się do cytatu z piosenki wykorzystanego jako podtytuł bloga nie była, zgodnie z tym co przypuszczałem, przypadkiem. Tym razem padło na webmastera fajnej skądinąd strony Kazika. LeeQS pisze:

Dowiedziałem się bowiem od Twojego serdecznego przyjaciela i jednocześnie menadżera, że jeśli w ciągu tygodnia nie usunę ze strony banerów reklamowych to… reprezentująca Cię kancelaria prawna wystosuje odpowiednie pismo przeciwko mojej osobie. W oparach absurdu musiało narodzić się także Twoje drugie, tygodniowe ultimatum, abym żonie Twojego starszego syna dał stały dostęp do mojego serwisu na FaceBooku w celu… lepszej promocji ich wspólnej działalności wydawniczej.

Dla mnie brzmi całkiem jak „zarabiasz na mnie bez mojej zgody, przestań albo dawaj działkę”. Drugi punkt ładnie pokazuje, że chodzi o promocję, czyli kasę. Jak widać, przytaczane już w poprzednim wpisie – cytuję – Od teraz czyli od jakiegoś 1,5 miesiąca nie będę więc odpuszczał takich „niedokładności”.A kolega mógł się spytać i niewykluczone,że za friko by zgodę miał. to nie chwilowa aberracja, tylko raczej permanentny sposób myślenia.

Charakterystyczne jest, że kazikowe odpuszczam nie było jednocześnie przepraszam. I nie pomyliłem się niestety, że nie wiadomo komu i na jak długo odpuszcza… No to przewiduję, że dym będzie znacznie większy, niż ostatnio, bo tym razem uderza bezpośrednio w fanów (tak, uważam zamkniętą stronę za robioną przez fana i dla fanów, jeśli autor – a wszystko na to wskazuje – nie dostawał wynagrodzenia od Kazika za jej prowadzenie). Ciekawe jak to się po Internecie rozniesie i jak na wizerunku odbije…

Chciałem dorzucić cytat o staczaniu się po równi pochyłej, zamiast tego po wpisaniu w Google stacza się po równi pochyłej Kazik wyskoczył mi wątek na forum Kultu. A tam użytkownik podpisujący się grzegorz_brzozowicz pisze:

Facet stacza sie po równi pochyłej jeśli chodzi o muzyke, za swój udzial/konferansjerkę w kanale „Wojna i Pokój” zaśpiewał kolosalnej kasy, na planie zachowuje sie jak nadety dupek, który na historii sie zna jak mało kto a w rzeczywistości jest gówno wiedzącą pierdołą, najebany wychodzi na koncert, podczas popijaw mówi głośno,ze w dupie ma fanow bo „i tak zawsze miałem ich gdzieś a dziś to już w ogole, ale grunt,że gówniarze to łykają”…….

No , ale nic kiedys grał fajnie, szkoda,że się skurwił na maksa…

Tak sobie myślę, że gdybym przeczytał to w czasie, gdy to było napisane stwierdziłbym, że autor pobredza. Obecnie mam coraz bardziej wrażenie, że po prostu wcześniej zauważył pewne rzeczy.

UPDATE: Osobom zainteresowanym sprawą polecam wątek na forum Kultu (dead link). Intencje wyglądają na lepsze (nie o podział zysków chodziło), ale mimo wszystko spora dawka hipokryzji ze strony Kazika – przykłady „firmowania” reklam do znalezienia w ww. wątku. Nadal bije w oczy totalny brak zrozumienia świata i empatii – nikt z wypowiadających się nie kojarzył reklam na nieoficjalnej stronie z Kazikiem (co mnie nie dziwi), zero zastanowienia, co strona dawała Kazikowi (a dawała sporo), zero zastanowienia, czemu się reklamy pojawiły i że za wszystko trzeba płacić (niestety, NMDO, jak nie opłata wprost za hosting, to jakieś reklamy). O podejściu „fajna strona, ale chciałbym, żeby reklam nie było – ile byś potrzebował miesięcznie kasy, żeby utrzymać” i ogólnie formie nie wspominam (a wtedy wilk byłby syty i owca cała).

UKE zaszalało.

Na szczęście nie biorę bezpośrednio udziału w wypełnianiu dokumentów do Systemu Informacyjnego o Infrastrukturze Szerokopasmowej (SIIS), ale pewnych rzeczy nawet z boku nie sposób nie zauważyć. Jak wszystko w kraju, inwentaryzacja jest robiona na ostatnią chwilę, zarówno od strony ISP, jak i UKE. I akurat ISP, którzy się nie pospieszyli, tym razem wygrali. Co jest źle?

Niejasne przepisy – fajnie, że można zadać pytanie (i dostać odpowiedź), fajnie, że było spotkanie, ale czemu nie jest po prostu czarno na białym, w sposób nie budzący wątpliwości napisane? Do tego dochodzą kwiatki w niektórych miejscach typu dane w formacie XLS zgodnym z generowanym przez Weryfikator (Weryfikator to program pomocniczy). IMO formatu danych w dokumentach urzędowych nie powinien określać program, szczególnie arkusz kalkulacyjny, szczególnie … Jasne, to tylko instrukcja i być może gdzieś jest normalny opis.

Zmiany zasad w trakcie gry –  czyli czemu nie warto się spieszyć. Jak można zauważyć, spotkanie na którym doprecyzowano/zmieniono interpretacje, miało miejsce już po publikacji dokumentów. Jeśli któryś ISP się pospieszył, spora szansa, że niepotrzebnie wykonał pracę. Podobnie zmieniła się wersja Weryfikatora (tak, tego, co gdzieniegdzie definiuje format).

Nieznany faktyczny cel inwentaryzacji – w sumie nie ma co pisać, spekulacji jak zostaną wykorzystane bardzo szczegółowe przecież dane jest sporo, informacji oficjalnej (poza „góra kazała”) nie ma… Brak grokowania problemu nie ułatwia czytania dokumentów i sensownego ich wypełniania… Oficjalna wersja, do czego posłużą dane jest tu, ale jak na to, co tam piszą, dane są stanowczo zbyt szczegółowe. Do wersji oficjalnej wystarczyłby zasięg usługi (OK, nieco problematyczny w przypadku sieci bezprzewodowych) i maksymalna oferowana na danym rejonie prędkość (OK, też problematyczna w przypadku Wi-Fi i *DSL).

Naprawdę nie można było opublikować dokumentów wcześniej, dać miesiąca czy dwóch na zgłoszenie uwag (mailowo), na ich podstawie przygotować wersje finalne i instrukcje i dopiero wtedy publikować? Spotkania, jak opisane wyżej są pewnie wygodne, ale bardzo zasobochłonne, zwłaszcza dla mniejszych ISP. Zresztą spotkanie w trakcie okresu na zgłaszanie uwag też spokojnie mogłoby się odbyć, a po nim mogłaby powstać kolejna wersja dokumentów. Czyli wersja wstępna -> czas na uwagi -> spotkanie -> wersja z poprawkami -> czas na uwagi -> wersja finalna.

Póki co, efekt jest taki, że na grupie pl.internet.polip czyli poświęconej problemom Internetu polskiego i światowego, ostatnio pisze się głównie o UKE. Znamienne. Ale nie dziwi – nawet mając 70-90% danych w wewnętrznym systemie i tak dobrych kilka osobodni zostanie poświęconych na przygotowanie raportu… 😉