Wpisy z tagiem: system

piątek, 10 lutego 2012

Jeśli w Debianie Squeeze (i zapewne nowszych) po wywołaniu np. snmpwalk dostajemy wszystko mówiący komunikat:

Unknown Object Identifier (Sub-id not found: (top) -> mib-2)

to należy:

  • zainstalować pakiet snmp-mibs-downloader (wajig install snmp-mibs-downloader)
  • zakomentować linię mibs : w pliku /etc/snmp/snmp.conf
  • podziękować polityce Debiana, która pozwala mieć zupełnie wolny, choć niekoniecznie wystarczający do pracy z urządzeniami sieciowymi, system ;-)

Wiem, raczej proste do wygooglania. Zapisuję, bo z trzeci raz dziś tego szukałem, przy czym za pierwszym był gigantyczny WTF?!, bo zawsze działało...

niedziela, 15 stycznia 2012

Jeśli korzystasz z systemu Debian, to zapewne przywykłeś do wygodnej sytuacji, że aktualizacje zwykle przychodzą w repozytorium security. Jest to wygodne, bo proste apt-get update; apt-get upgrade teoretycznie zapewnia aktualne wersje wszystkich pakietów w systemie, z aktualizacjami bezpieczeństwa. Prawda?

Niestety, nie do końca. Po pierwsze, sama instalacja aktualnych wersji pakietów nie zawsze oznacza, że automatycznie zaczynają być one używane. Pomijając kernel, którego faktyczna aktualizacja wiąże się z rebootem, także inne programy niekoniecznie zaczynają być używane automatycznie w aktualnej wersji po ich instalacji. W określeniu programów do restartu przydatne bywa polecenie checkrestart z pakietu debian-goodies, o którym pisałem w ściągawce z przydatnymi poleceniami dla Linuksa. Ogólnie: próbuje ono podać procesy, których restart jest wymagany ze względu np. na aktualizację bibliotek.

Ale i to nie wszystko. Jest kilka innych rzeczy, które nie aktualizują się, mimo zainstalowanych paczek, które spowodowały ich obecność w systemie:

  1. Flash od Adobe. Popularny na desktopach, spaczkowany - w specyficzny sposób - w Debianie w pakiecie flashplugin-nonfree, przy okazji podobno popularny wektor ataku. Aktualność swojej wersji Flasha można sprawdzić na stronie Flash Player check. Jakoś wolę ten sposób od strony Adobe. Aby zaktualizować wersję w systemie należy wydać polecenie:
    update-flashplugin-nonfree --install --verbose
    Oczywiście po powyższym trzeba zrestartować przeglądarki, żeby zmiana była efektywna.
  2. Java od Sun. Ze względu na zmianę polityki, niedawno Java od Sun przestała być aktualizowana, również w zakresie aktualizacji bezpieczeństwa w Debianie i Ubuntu. Jeśli nadal korzystasz z niej w systemie, jest spora szansa, że masz starą wersję, o której aktualizację musisz zadbać samodzielnie. Można też zmienić wersję na którąś z wolnych alternatyw.
  3. Mikrokod procesora. Jeśli posiadasz procesor Intela, to dostępne są aktualizacje mikrokodu od producenta. Co prawda bez tego też będzie działać, ale może udało się poprawić coś, co zwiększy wydajność? Sama instalacja pakietu microcode.ctlnie wystarczy, by zawsze mieć aktualną wersję zainstalowaną i wykorzystywaną w systemie. Aktualizację obecnego w systemie mikrokodu można wywołać ręcznie poprzez polecenie:
    update-intel-microcode
    Potem można przeładować mikrokod przy pomocy:
    /etc/init.d/microcode.ctl restart

Powyższe aktualne dla Debiana (głównie na desktopie, stąd nic o bazach wirusów, filtrach antyspamowych itp.), zapewne także dla pochodnych typu Ubuntu. Chyba, że tam jest to lepiej rozwiązane?

UPDATE: Przeładować owszem, można, ale jeśli dokonywana jest aktualizacja, to przeładowanie jest automatyczne.

piątek, 18 listopada 2011

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 pamięci!), 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.

niedziela, 06 listopada 2011

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).

niedziela, 30 października 2011

Wpis odnośnie oszustwa w wyborach porusza ciekawe kwestie. Co prawda całość jest typu tl;dr, momentami autor nieźle odrywa się od rzeczywistości, teza wybory były sfałszowane i trzeba je powtórzyć jest totalnie niedorzeczna i całość mocno śmierdzi spiskową teorią dziejów, ale podstawowe spostrzeżenie jest celne: coraz większa część obliczeń - także tych wyborczych - realizowana jest na systemach komputerowych, a regulacji prawnych w tym zakresie nie ma.

Mamy więc - jak autor trafnie spostrzega - sytuację, gdzie urna w Pcimiu Dolnym jest nadzorowana w sposób przezroczysty dla wszystkich, stosunkowo łatwo weryfikowalny i dokładnie opisany przepisami prawa, ale przesyłanie i obliczanie danych z wszystkich komisji odbywa się w sposób pozwalający - przy odrobinie złej woli - na manipulację wynikami. I to manipulacje, które nie będą proste do wykrycia. A przecież zdobycie władzy, niekoniecznie w uczciwy sposób, zawsze jest i będzie kuszące.

Po pierwsze, do przekłamania może dojść przez przejęcie kontroli nad systemami, z których wprowadzane są dane. Trudno wykonalne (wiele systemów), łatwo wykrywalne. Po drugie, dane mogą być zamienione podczas transmisji. Wierzę, że wysyłane są połączeniem szyfrowanym i z użyciem algorytmów nie pozwalających na prostą podmianę. Czyli ten sposoby ataku raczej odpadają. Zostaje trzeci, czyli atak na centralne miejsce, które dokonuje obliczeń.

I tu nic nie da obecność członka komisji w serwerowni. OK, wyeliminuje to przepięcie kabelków, wyjęcie dysków (WTF?) i inne fizyczne ingerencje, ale nadal nie zapobiegnie podmianie danych na maszynie czy to na skutek zmian w programie (na różnych etapach - od tworzenia do kompilacji), czy na skutek modyfikacji danych w bazie, czy na zmodyfikowanie działania systemu na niższym poziomie.

W przeciwieństwie do autora, nie uważam, że konieczne jest odejście od obecnego, tradycyjnego systemu głosowania. Przede wszystkim dlatego, że głosowanie elektroniczne - choć możliwe, że tańsze - nigdy nie będzie tak przezroczyste dla laików komputerowych, jak tradycyjne. Będą też problemy z zachowaniem anonimowości głosów, jeśli głosy mają być bezpieczne. No i będzie trudno o łatwo weryfikowalne dowody, jeśli będziemy chcieli sprawdzić coś po głosowaniu.

Natomiast w obecnym systemie łatwo można - przy minimum nakładu pracy ze strony społeczeństwa - zapewnić kontrolę nad brakiem przekłamań. Dane z poszczególnych komisji są publikowane na stronach PKW. Każdy więc może samodzielnie zweryfikować, czy sumowanie jest dokonane prawidłowo (czy to ręcznie, czy w wybranym, choćby opensource'owym arkuszu kalkulacyjnym). To wyklucza podmiany wyników działania programu w centralnym miejscu.

Jeśli chodzi o przekłamania w transmisji czy podczas wprowadzania, również łatwo można to zweryfikować. Wystarczy się przejść do komisji dzień po wyborach. Wywieszane są ręcznie pisane protokoły. Wystarczy porównać dane ze strony PKW z danymi z protokołu. Jeśli się zgadzają - do oszustwa nie doszło, przynajmniej nie do oszustwa w systemie informatycznym i przy przesyłaniu danych. Przy powtórzeniu sprawdzenia dla wszystkich komisji (to wymaga współpracy społeczeństwa, pojedyncza osoba jest w stanie sprawdzić góra kilka-kilkanaście komisji) i nie znalezieniu rozbieżności mamy pewność, że wybory nie są sfałszowane.

A czy wy sprawdzacie pracę swojej komisji wyborczej?

sobota, 22 października 2011

Jakiś czas temu serwis e24cloud, czyli polski hosting pod modnym szyldem chmury w wydaniu Beyond.pl, wszedł w fazę beta i publicznych testów, czyli praktycznie każdy chętny może - za darmo - pobawić się modną chmurą. Aktualnie firma rozdaje zaproszenia do testów o równowartości 200 zł, aby dostać kod należy postępować ze wskazówkami ze strony stwórz chmurę, czyli skorzystać z aplikacji na Facebooku.

Dłuższy wpis w trakcie tworzenia, a tymczasem szybki rzut oka na wady i zalety oferowanego testu (nie chciałbym, żeby było to traktowane jako test finalnej usługi, bo może się zmienić, poza tym parę kryteriów wybitnie testowych).

Wady:

  • brak IPv6 w domyślnej instalacji, brak możliwości wykupienia/wyklikania w panelu
  • przy pierwszym wyborze tylko 5 OS, w tym stary Debian (Lenny)
  • przy pierwszym wyborze konieczność wybrania 2 rdzeni
  • domyślne hasło roota tylko 8 znaków [a-zA-Z0-9]
  • 0,18 zł przy nieaktywnej (wstrzymanej) maszynie (2 CPU), 0,34 zł przy działającej
  • nie można dorzucić dodatkowych zasobów (CPU/RAM) do istniejącej maszyny
  • liczba CPU i RAM sztywno powiązane (każdy CPU to 2 GB RAM)
  • spora ilość błędów w panelu i słaba stabilność (nawet jak na wersję beta)
  • długi czas reakcji na zgłoszenie ticketa

Zalety:

  • maszyna szybko się generuje
  • wystarczający wybór presetów - siedem, w tym nowy Debian (Squeeze)
  • dostępny spory zakres sprzętu - 1-48 CPU i 2-96 RAM, dodatkowy HDD do 5 TB
  • 25 dni to wystarczający czas na przetestowanie
  • dobra wydajność (CPU)

Zabawa trwa, wkrótce można się spodziewać dłuższego i pełniejszego opisu testowanej usługi. Jeśli ktoś lubi się bawić, to pewnie warto skorzystać z darmowego testu, chociaż szału póki co nie ma.

UPDATE: W końcu otrzymałem odpowiedź na ticketa dotyczącego wyłączania się maszyny - wynika z błędu w panelu. Dodaję stosowny punkt, bo prawie 48h na prostą informację, że problem wynika z panelu to sporo. I usuwam niską stabilność usługi, bo wynika z błędów w panelu, nie w samej usłudze. Wiem, niby nieważne, czemu przestaje działać, ale jakoś wypada to oddzielić.

sobota, 01 października 2011

Jak wiadomo m.in. z poprzedniego wpisu, prowadzę węzeł Tora. Bez połączeń wychodzących, czyli robię tylko za żuczka dokładającego jeden hop w ścieżce w celu zwiększenia anonimowości korzystających z tego programu. Od pewnego czasu miałem wrażenie, że jedyne, co robi mój Tor, to zajmuje pamięć (ponad 30% na biednym Dockstarze). Nie robiłem żadnych dokładnych statystyk, po prostu obserwowałem ilość ruchu na interfejsach, ale wyglądało, że jest mniej, niż kiedyś.

Postanowiłem sprawdzić, co się dzieje w rzeczywistości. Już kiedyś widziałem, że jest projekt arm czyli anonymizing relay monitor, ale wtedy nie było pakietów w Debianie, więc nie instalowałem, a pozwala on na znacznie więcej, niż tylko obejrzenie ilości ruchu, więc postanowiłem zainstalować arm.

W tej chwili paczka tor-arm jest dostępna w Debianie unstable (na stable instaluje się czysto), więc doinstalowałem ją (wajig install tor-arm). Samo uruchomienie (wpisanie arm) nic nie dało (używa domyślnej konfiguracji), więc po pierwsze, skopiowałem domyślną konfigurację (położenie w Debianie nieco inne niż podawane w manualu):

zcat /usr/share/doc/tor-arm/armrc.sample.gz > .arm/armrc

Nadal nic. Kolejna sprawa, to uruchomienie portu do kontroli w samym Torze, czyli dodanie w configu opcji:

ControlPort 9051

Po ponownym uruchomieniu arm jak najbardziej się połączył, ale ostrzega, że port do kontroli jest otwarty. Co prawda maszynka jest firewallowana, ale wypadałoby dodać hasło do zarządzania. Nie jest to trywialne i znalezienie zajęło mi dłuższą chwilę (chociaż jest w dokumentacji), więc opiszę. Najpierw generujemy hash hasła:

tor --hash-password jakieshaslo 

Otrzymujemy coś w stylu ciągu

16:2CCAAB2DEEB082CD60610B3BE6A0FF2A90EEFC92AD434C9C8CBFA42B0B

Następnie w konfiguracji Tora dodajemy linię

HashedControlPassword 16:2CCAAB2DEEB082CD60610B3BE6A0FF2A90EEFC92AD434C9C8CBFA42B0B

i restartujemy Tora (/etc/init.d/tor restart). Na koniec edytujemy ~.arm/armrc i uzupełniamy linię z startup.controlPassword, by miała postać:

startup.controlPassword jakieshaslo

Po zmianach okazało się, że miałem nosa i faktycznie niewiele się dzieje. Nawet bardzo niewiele. Praktycznie nic. Ponieważ kiedyś ruchu było więcej, postanowiłem sprawdzić, czy winnym nie jest ustawienie węzła jako bridge node. Bingo! Po zmianie od razu jest więcej ruchu. Zatem w chwili obecnej mój konfig Tora wygląda następująco:

ControlPort 9051
RelayBandwidthRate 20 KBytes
RelayBandwidthBurst 30 KBytes
ExitPolicy reject *:* # no exits allowed
ORPort 443
HashedControlPassword 16:2CCAAB2DEEB082CD60610B3BE6A0FF2A90EEFC92AD434C9C8CBFA42B0B

UPDATE: Przy okazji wygląda, że wyłączając tryb bridge node upiekłem dwie pieczenie na jednym ogniu. Po 16 godzinach zużycie pamięci RAM przez Tor wynosi ledwie 9%, zamiast wspomnianych 30%. Czyżby jakiś bug związany z trybem bridge? W każdym razie średni ruch upload i download teraz to po 50 Kbps, zużycie pamięci, które mnie trochę bolało mniejsze. Jednym słowem: lubię to! ;-)

wtorek, 20 września 2011

Jakiś czas temu pisałem o pierwszym podejściu do małej ilości RAM na desktopie, więc pora na część drugą. Przejrzałem podrzucone linki nt. optymalizacji działania dekstopu. Dysk był już ustawiony optymalnie, niepotrzebne usługi powyłączane, więc tak naprawdę tylko zmniejszyłem ilość uruchamianych konsol w inittabie. Nie zauważyłem zmiany w ilości zużywanego RAM, ale i tak ich nie potrzebuję - dwie wystarczają z naddatkiem. Swappiness nadal jest ustawione na 0 i IMO działa OK.

Zauważyłem, że spowalnianie występuje głównie na jednym desktopie (tym w pracy, starszy, bardziej zapchany dysk), przy pracy z pakietami (aktualizacja listy, instalacja), co skłania mnie do wniosku, że głównym winowajcą jest fragmentacja filesystemu. W obu przypadkach jest to ReiserFS (zaszłość, kiedyś był najlepszym wyborem, teraz chętnie widziałbym ext4 w tym miejscu), ale w domu z pewnością fragmentacja jest mniejsza - pół dysku zawsze było wolne.

Tak czy inaczej, wydaje mi się, że wypracowałem sposób na drastyczne ograniczenie spowalniania komputera przy pracy z pakietami. Korzystam z niego mniej więcej raz na tydzień. Cudów nie ma, czyli najpierw zamykam programy, które zużywają najwięcej RAM: Iceweasel, czyli Firefox, Icedove, czyli Thunderbird i PSI. Trwa to chwilę, a zwalnia znaczne obszary RAM.

Następnie uruchamiam prosty skrypt, który robi sync na dyskach, opróżnia bufory dyskowe, a następnie wyłącza i ponownie włącza swap.

#!/bin/bash

echo Syncing hard discs
sync
sleep 5
sync

echo Flushing disc buffers
echo 3 > /proc/sys/vm/drop_caches

echo Turning swap off
swapoff -a

echo Turning swap on
swapon -a

Celem jest najpierw zwolnienie jak największego obszaru pamięci, a następnie wymuszenie przerzucenia danych ze swap do RAM. Szybsze od restartu, działa w tle, więc można pracować w tym czasie. Po wykonaniu skryptu można swobodnie uruchomić przeglądarkę, pocztę, komunikator i aktualizować system. Najgorsze co może się wydarzyć, to niewyłączenie swapa, jeśli nie będzie wystarczającej ilości dostępnej pamięci, ale nie jest to krytyczne i zdarza się rzadko (zwł. po wyłączeniu przeglądarki). Wydaje mi się, że po takim zabiegu system działa znacznie lepiej.

sobota, 07 maja 2011

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 - 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)?

wtorek, 26 kwietnia 2011

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... ;-)

 
1 , 2


RSS - Subskrybuj wpisy na Pomiędzy bitami
Staty
Related Posts Plugin for WordPress, Blogger...
statystyka
Nawigacja
Blogroll
bronikowski.com Embedded Linux development fenski.pl Fnord! migotanie słów Niby Blog ;) Notatnik zapisywany wieczorami replikator memetyczny Ta ruda metalówa, co ma bloga o gotowaniu Terminally Incoherent Wampiryczny blog Zmiętoszony kajecik neurotyka