Goodbye KDE.

Odkąd pamiętam zawsze korzystałem z programów ze stajni KDE. Po pierwsze, były wystarczająco szybkie, po drugie, odpowiadał mi look & feel. No i oczywiście świetna funkcjonalność. Stąd, jeśli szukałem jakiegoś programu, to najpierw sprawdzałem, czy nie ma wersji dla KDE. Stąd używanie konsole, kcalc, akregator, kdm, kalarm, knotes, kate, kdiff3.

Tak było dla KDE w wersji 3. W KDE4 trochę się pozmieniało, zmienił się też sprzęt (na starszy), na pewne rzeczy z konieczności zacząłem bardziej zwracać uwagę. Pierwszą zmianą była zmiana środowiska graficznego – jakoś LXDE bardziej mi leży, a ma wszystko, czego potrzebuję więc… czemu nie?

Popatrzyłem, popatrzyłem i… knotes nie używam, kalarm nie używam. Kate w domu nie używam, kdiff3 – nie było potrzeby jakoś. Tak naprawdę przy KDE trzymały mnie 3 rzeczy: kdm, akregator, konsole.

Kdm został już jakiś czas temu zastąpiony przez slim (zaczęło się od linka do tematów graficznych dla Squeeze), który po prostu daje radę – logowanie nie jest tak paskudne jak w xdm, tworzenie tematów jest bardzo proste, działa…

Wczoraj wyleciał akregator (na rzecz liferea). Nie jestem pewien, czy definitywnie, ale wszystko wskazuje, że tak. Wyleciał, bo wersja z KDE4 była jakaś taka przyciężkawa. Trudno to sprecyzować, po prostu wersja z KDE3 działała jakby szybciej, tak samo szybciej działa liferea (to akurat widać w top). I tym sposobem dziś odintalowałem pakiet kdebase.

Z programów codziennego użytku został konsole – w wersji z KDE4 bardzo fajnie działa i nie mam zastrzeżeń żadnych. Kcalc też został, ale kalkulatorów jest masa i jakoś nie mam ciśnienia, by go zastępować czymś innym, tym bardziej, że uruchamiam go bardzo rzadko. Kate i kdiff3 też są na dysku, ale jakoś nieużywane.

Wszystko wskazuje na to, że także na innych desktopowych maszynkach po upgrade do Squeeze, jedną z pierwszych rzeczy, które zrobię będzie wajig remove kdebase.

Zabbix-agent na OpenWrt.

Jakiś czas temu uruchomiłem parę sztuk OpenWrt na routerach Linksysach WRT54GL. Wybór dystrybucji na router podyktowany był głównie tym, że OpenWrt ma spore zaplecze w postaci pakietów z różnymi aplikacjami przygotowanych do bezpośredniego uruchomienia, wśród nich także pakiety Zabbix (nie wiem po co serwer, ale klient się przydaje), czyli niezłego IMO systemu monitoringu.

Niestety, dla przynajmniej w przypadku Kamikadze 8.09.1 po zainstalowaniu zabbix-agent nie działa. Konfig wygląda OK, skrypt uruchamiający jest trywialny, ale po

/etc/init.d/zabbix-agent start

nie pojawił się żaden proces Zabbiksa. Nie tak szybki debug (trick ze zmianą położenia logów był całkiem skteczną przeszkodą – wyglądało jakby ich nie było, a o strace na OpenWrt można zapomnieć) ujawnił, że plik konfiguracyjny ma prawa 600 i właściciela root, a tymczasem proces zabbix-agent jest uruchamiany z użytkownika zabbix. Rozwiązanie to oczywiście:

chmod +r /etc/zabbix/zabbix_agentd.conf

Po tym działa jak trzeba.

Cpulimit, czyli cichy laptop.

Czasem jest tak, że do wykonania jest jakieś zadanie, na czasie wykonania którego nie zależy nam szczególnie, ale wykonujemy je na sprzęcie, który przy większym obciążeniu zaczyna np. hałasować. Dobrym przykładem jest kompresja/dekompresja dużych archiwów lub konwersja filmów na laptopie. Mój laptop praktycznie nigdy nie korzysta z wiatraka. Włącza się on dopiero, gdy procesor osiągnie 75 st. C, ale za to jak się włączy… tragedia, że szkoda słów.

Zwykły nice nie wystarczy (to dobre do zapewnienia dobrej responsywności innych zadań), ale to jest Linux, więc na pewno coś jest, co może pomóc. I rzeczywiście istnieje program, który pozwoli procentowo przydzielić zasoby CPU, a  nazywa się on cpulimit.

Zasada działania jest prosta – uruchomiony program śledzi wskazany proces i okresowo zatrzymać jego działanie (wysyłając SIGSTOP), a następnie, po bardzo krótkiej chwili wznawia je (wysyłając SIGCONT). Dodatkowo oblicza, na ile zatrzymać działanie tak, aby średni czas działania był zgodny z podanym przez użytkownika procentowym udziałem przydzielonego czasu procesora. Żadnych cudów, ale efekt bardzo fajny – po -l 60 (limitowanie do 60%) mam pewność, że wiatrak się nie załączy – temperatura nie zbliża się w okolice krytycznych 75 st. C.

Żeby nie było za dobrze, są też wady. Oczywista to wydłużenie czasu wykonania operacji. Mniej oczywista, to trochę „śmieci” na ekranie (przy uruchomieniu jeden raz pojawia się informacja o zatrzymaniu działania procesu). Kolejna wada, to działanie tylko dla pierwszego procesu pasującego do nazwy (ale to już polecam przeczytanie uwag w man cpulimit).

Ponieważ miałem problem z opcjami -e oraz -P (pewnie zaraz zgłoszenie błędu pójdzie), za to -p działa bez problemu, to, jeśli ktoś koniecznie chce odwoływać się do nazwy, polecam użycie:

cpulimit -p `pidof PROCES` -l 60 -v

Z podobnych zagadnień, jeśli ktoś chciałby przypisać proces do danego CPU, to powinien zainteresować się programem taskset.

UPDATE: Jak Paweł słusznie zauważył w komentarzu (dzięki za info), już było na ten temat pisane. Dodaję linka.

Linki:

  1. Strona domowa programu cpulimit.
  2. Ciekawie wyglądający opis tworzenia demona na bazie programu cpulimit (nie testowałem w praktyce).
  3. Nieco więcej o taskset.
  4. Wpis Grzglo na ten sam temat – parę informacji więcej (zwł. o demonie) oraz dyskusja.
  5. Opis Control Groups w Linuksie – inny, wspierany przez kernel, bardziej uniwersalny, wydaje się, że lepszy (ale i nieco trudniejszy w użyciu) sposób na to samo.