Praca na desktopie z małą ilością RAM po raz trzeci – zram.

W poprzednich wpisach było parę przemyśleń i sugestii poprawy komfortu pracy na desktopie wyposażonym w niewielką ilość pamięci RAM, bez finalnego rozwiązania choć z paroma trickami poprawiającymi pracę, więc pora na podejście trzecie do tematu, inspirowane przez kumpla z IRC, który sprzedał mi „newsa” o zram.

Od pewnego czasu (okolice kernela 2.6.37, jeśli dobrze widzę) w kernelu Linuksa obecny jest moduł zram, pozwalający na tworzenie kompresowanych urządzeń blokowych w pamięci RAM. Wykorzystać to można podobnie jak compcache, czyli do tworzenia kompresowanego obszaru pamięci, używanego przez system przed przeniesieniem danych na swap na dysku. Idea jest prosta – swap na dysku jest tragicznie wolny i obciąża I/O, procesor zwykle się trochę nudzi, zresztą nie będzie miał dużo więcej pracy, a ilość wolnej pamięci się zwiększy.

Ogólnie zram jest ideowym spadkobiercą compcache, ale wygląda mi na prostszy i ideowo, i w użyciu. No i jest obecny w kernelu. Idea działania jest prosta: tworzymy swap z wyższym priorytetem, niż swap na dysku, na urządzeniu blokowym umieszczonym w kompresowanym obszarze pamięci. Początkowo dane tradycyjnie są w RAM, w przypadku, gdy system musi korzystać z przestrzeni wymiany, umieszcza je najpierw na swapie w RAM, a dopiero później – tradycyjnie – na swapie na dysku.

Prosty skrypt realizujący powyższe:

#!/bin/bash
modprobe zram
echo $((200*1024*1024)) > /sys/block/zram0/disksize # 200 MB
mkswap /dev/zram0
swapon -p 60 /dev/zram0

Kolejno: załadowanie modułu zram (można korzystać z parametrów), określenie rozmiaru dysku dla urządzenia /dev/zram0 na 200 MB (i jest to rozmiar swap, będący jednocześnie maksymalną wielkością zużytej pamięci, nie rozmiarem przeznaczonej pamięci na swap!), utworzenie swapu na urządzeniu  /dev/zram0, włączenie utworzonego swap z priorytetem 60.

Podobno efekty są świetne – zaczynam testy u siebie, wstępnie nie wygląda źle, na pewno niebawem podzielę się wrażeniami (jako update do tego wpisu) po dłuższym teście. Jeśli chodzi o rozmiar swap dla modułu zram, to zacząłbym od 10-20% całości RAM (u mnie 200 MB przy 1 GB RAM). Z tego co zauważyłem, skompresowane dane zajmują w praktyce ok. 40-50% oryginalnych.

Parę przydatnych poleceń diagnostycznych:

  • cat /sys/block/zram0/compr_data_size – rozmiar danych po kompresji
  • cat /sys/block/zram0/orig_data_size – rozmiar nieskompresowanych danych
  • cat /sys/block/zram0/mem_used_total – całkowita ilość zużytej pamięci
  • swapon -s – rozmiar i wykorzystanie poszczególnych swap (inna jednostka!)

Linki w temacie, które zdecydowanie warto przejrzeć, jeśli ktoś jest bardziej zainteresowany:

Szczególnie ostatni wpis zawiera fajny, uwzględniający ilość procesorów skrypt startowy. Można rozważyć użycie po przeanalizowaniu. IMHO dla 1-2 procesorów trochę kosmiczne wartości będą, uzależnianie wielkości swap od ilości procesorów też jest średnie, ale poprawienie to nic trudnego. Za to obsługą utworzonego urządzenia blokowego zajmie się w tamtym wariancie więcej, niż jeden procesor. Z drugiej strony kto ma więcej niż dwa rdzenie i mało RAM?

Miałem obawy co do działania hibernacji (z użyciem pm-utils, z uswsusp miałem problem…) w takiej konfiguracji. Niepotrzebnie, bo wygląda, że działa OK – zapewne hibernacja jest na tyle inteligentna, że rozpoznaje, czy ma do czynienia z fizycznym urządzeniem blokowym.

Oczywiście swap to nie jedyne możliwe zastosowanie modułu zram – więcej przykładów w linku do wiki Gentoo.

Prawo autorskie, wolność a filmy.

Zawsze uważałem, że prawo autorskie nie tylko nie do końca przystaje do zmieniających się technologii, ale też i nie do końca słusznie równo traktuje teksty pisane, muzykę i filmy. Bo przecież książkę każdy może napisać – wystarczy maszyna do pisania i papier. Wróć. Wystarczyły. Teraz do napisania (i wydania, przynajmniej wersji elektronicznej) książki czy innego tekstu wystarczy komputer. Podobnie z obrazami i grafiką – każdy może je stworzyć. Czy to tradycyjnie, czy elektronicznie.

Z muzyką niby jest nieco więcej zachodu, ale istnieje sporo dobrze grających amatorskich kapel i praktyka pokazuje, że istnieją serwisy z dobrą, darmową muzyką, zatem nie ma się co obawiać, że bez „ochrony” wytwórni muzyka nie będzie powstawała. Poza tym, muzycy zawsze mogą dorobić na koncertach…

Zastanawiał mnie film. Przecież stworzenie filmu musi być drogie, wymagać zaangażowania dużej liczby ludzi, na dodatek żeby jakoś wyglądał, potrzebne będą studio, sprzęt i efekty specjalne. Przy braku „ochrony” praw autorskich twórcy przestaną tworzyć, więc może ten DRM na filmy nie jest taki zły?

Ostatnio obejrzałem parę filmów, które zmieniły mój stosunek do tego zagadnienia. Amator Kieślowskiego unaocznił mi, że tak naprawdę, podobnie jak przy innych dziedzinach sztuki,  niewiele potrzeba sprzętu, pieniędzy i ogólnie zasobów materialnych, by stworzyć film. No tak, ale to tylko dokument pokazany, w dodatku realia sprzed ponad 30 lat. Gdzie mu tam do tego, co widzimy na ekranach kinowych? Co prawda sam film Amator też wygląda na niewymagający specjalnych środków, ma wysoką ocenę na IMDB ale gdzie mu tam do dzisiejszych produkcji?

I tu pojawił się film, który obejrzałem wczoraj: Star Wreck: In the Pirkinning. Darmowy (licencja Creative Commons), pełnometrażowy, zrobiony przez garstkę zapaleńców. Przyznam, że jeśli chodzi o efekty specjalnie, to zbierałem szczękę z podłogi, a trzeba pamiętać, że to produkcja sprzed sześciu lat, wykonana głównie w mieszkaniu (szczegóły na stronie filmu Star Wreck). IMHO nie odbiega pod tym względem od komercyjnych produkcji. Znaczy sceny walk w przestrzeni kosmicznej. Pozostałe ciężko oceniać, bo to parodia, ale myślę, że poziom Gwiezdnych Wojen (oryginalnych) spokojnie utrzymany, pod wszystkimi względami. Próbka poniżej.

Kadr z filmu Star Wreck: In the Pirkining

Źródło: http://www.starwreck.com/pages/cgi2.html

Czyli jakieś 30 lat do tyłu, więc to nic nie warte – może ktoś zaoponować. OK, skoro nic nie warte, to czemu filmy sprzed 30 lat mają nadal być objęte prawem autorskim? Tak, pod pewnymi względami one odstają, to fakt. Ale pod pewnymi (IMO ważniejszymi) nic nie straciły.

W każdym razie stwierdziłem, że brak filmów, przy braku ochrony praw autorskich, podobnie jak brak lektury i muzyki nam nie grozi i można zasadne jest traktowanie ich na równi z pozostałymi dziełami. Zachęcam do obejrzenia Star Wreck: In the Pirkinning. Film, podobnie jak inne ciekawe, legalne, darmowe produkcje do pobrania ze strony z darmowymi, legalnymi filmami – ClearBits (dead link).

Jak sprawdzić IP?

Ten wpis to takie małe HOWTO i przegląd zagadnienia dla mniej zaawansowanych. Zagadnienie ogólne to jak sprawdzić IP? Można to rozumieć przynajmniej na dwa sposoby. Pierwszy to z jakim IP jesteśmy widoczni w sieci, drugi to jakie IP ma ustawiony mój komputer.

Sprawdzenie IP widocznego w Internecie

Generalnie, jeśli po drodze nie ma jakiejś zaawansowanej magii typu serwer proxy czy kreatywne przekierowania lub równie kreatywny routing, to do wszystkich serwisów w Internecie łączymy się z takiego samego IP. Z jakiego? Najprościej sprawdzić w logach dowolnego serwera, jeśli taki posiadamy. Jeśli nie, wystarczy skorzystać z którejś ze stron do sprawdzania IP:

Ostatnia ze stron umożliwia również sprawdzanie w sposób automatyczny, przyjazny programistom raz na 5 minut (szczegóły w FAQ na stronie).

Spawdzanie swojego IP pod Linuksem

Konfiguracja sieci w Debianie i Ubuntu znajduje się w /etc/network/interfaces, ale niekoniecznie znajdziemy tam nasz adres IP, szczególnie, jeśli jest on pobierany z serwera DHCP. Bieżącą, działąjącą konfigurację sieci z przydzielonymi adresami pozwoli nam za to zobaczyć polecenie ifconfig (w Debinanie przez zwykłego użytkownika należy wywołać z pełną ścieżką, czyli /sbin/ifconfig). Inna metoda, o ile mamy zainstalowany pakiet iproute, to wpisanie ip address. Albo, krócej ip a.

Sprawdzanie IP komputera pod Windows

Metoda najdoskonalsza, czy w wierszu poleceń. Wybieramy Start -> Uruchom wpisujemy cmd i naciskamy klawisz Enter. Pojawi się czarne okno w którym możemy pisać. Wpisujemy ipconfig i naciskamy enter. Jeśli chcemy więcej danych, wpisujemy ipconfig /all (znowu zatwierdzając enterem). Dla porządku jeszcze niezawodne polecenie diagnozujące sieć opartą o DHCP – ipconfig /renew. Na pewno działa pod Windows 2000, Windows XP, Vistą i zapewne pod Windows 7 (tego ostatniego nie sprawdzałem).

Sprawdzanie IP dla macos

Jak sprawdzić IP komputera z firmy Apple? W przypadku macos jest podobnie jak dla Linuksa. W terminalu wpisujemy ifconfig i gotowe.

Sprawdzanie działania IPv6

Trzy strony pozwalające na sprawdzanie, czy nasz komputer obsługuje łączność, albo inaczej czy działa IPv6. Każda ma swoje wady i zalety i sprawdza trochę co innego.

Działanie IPv6 można też sprawdzić poprzez ping ipv6.google.com.