Wpisy z tagiem: filesystem
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 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, 21 lipca 2009
Nie tak różowo, a w zasadzie całkiem źle. Postanowiłem dodać mojej miłej możliwość korzystania z dysków w kieszeniach. Podczas instalacji nie były podłączone, więc o nich zapomniałem. Sprawa wydawała się prosta - zwykłe montowanie po UUID, dopisać do fstab i tyle. Znaczy 3 minuty roboty. Niestety nie ma tak dobrze. Jeden z dysków okazał się być sformatowany z NTFS (próba automontowania przez HAL zakończona fiaskiem). Oczywiście pamiętam, że jest świetny NTFS-3G, który pozwala na zapis, więc nic nie wróżyło problemów - ot, następne 3 minuty roboty. Tymczasem ten driver nie pozwala na montowanie zasobów przez zwykłego usera. Szybki gógiel (liczmy 3 minuty) i... oczywiście problem jest opisany w dokumentacji i jest na to rozwiązanie, a raczej obejście. Szybkie (3 min) wdrożenie i już mogę z poziomu użytkownika montować i odmontowywać dysk. Z CLI. Prawie jak sukces, bo przecież nie każę kobiecie na "prostym i łatwym" systemie babrać się z wierszem poleceń. No i ogólnie przydał by się jakiś wskaźnik, czy aktualnie jest zamontowane, czy też nie. No i jest coś takiego w KDE, z tego co pamiętam... Szybkie dodanie ikonek typu dysk twardy na pulpit. Kliknięcie montuje. Ikonka się nie zmienia, niezależnie od tego, czy jest zamontowane, czy nie, opcja "odmontuj" się nie pojawia. W systemowych "urządzeniach przechowywania danych" z kolei są wymienne nośniki, ale coś HAL nie daje rady ich zamontować. Może kwestia tego, że próbuje do /media (i nie pozwala tego zmienić), a we fstab mam wpisy dla /mnt? Na tym się skończyło wczoraj - właścicielka też chciała skorzystać z laptopa... Konkluzja: w zasadzie działa, ale nie w zadowalający sposób. Jeśli macie gotowe przepisy na eleganckie, graficzne montowanie (i odmontowanie) dysku wymiennego z NTFS pod KDE przez użytkownika bez praw roota, z możliwością zapisu (tu: Debian Lenny, ale pewnie niespecjalnie jest różnica), to chętnie je poznam. Chodzi mi o pomysły samodzielnie sprawdzone, googlać umiem i mam parę pomysłów, łączenie z wyczyszczeniem wpisów we fstab, użyciem ntfsmount. itp. W miarę posuwania się naprzód, wpis będzie aktualizowany (ew. zamieszczę info o nowym wpisie, jeśli szczególnie długie miałoby być). Bo tylko bitwa przegrana, nie wojna. ;-) UPDATE: Sprawa okazała się prostsza, niż myślałem. Po prostu - jak się spodziewałem - przekombinowałem. Wystarczyło dodać usera do grupy plugdev i usunąć wszystkie wpisy z fstab. Wówczas HAL pięknie sobie radzi z montowaniem i odmontowywaniem (z użyciem ntfs-3g), a user ma prawa RW. Identyfikacja następuje nie po UUID, a po LABEL. Czyli brakowało "tylko" obecności usera w grupie plugdev (mój ewidentny błąd) i zainstalowanego ntfs-3g. No ewentualnie jeszcze suid, jak opisano w FAQ. |
Ostatnie wpisy
Subskrybcja RSS (wpisy)
Staty
Nawigacja
O mnie
Kontakt
Linkownia
SMSsender - skrypt do wysyłania SMSów
Przydatne polecenia Linux
Filtry Adblock by rozie
Zasady
Blogroll
| |||||||||||||||||||||||||||||||||||||||||||||||||