środa, 14 czerwca 2017

Opowieść o tym jak baloo zżera zasoby komputera

Wraz z akonadi, to część KDE, który podawany jest zwykle jako argument na bezsensowność tego środowiska, jego przerośnięcie i ogromny apetyt na zasoby. Już nie tylko RAM, ale i CPU, którego potrafi zagospodarować np. cały jeden rdzeń. Komputer zwalnia, źle pracuje. Wszystkiemu oczywiście winne baloo. Czyżby? Nie na darmo mówi się, że największy błąd oprogramowania siedzi przed komputerem i z niego "korzysta". Ów element zwany użyszkodnikiem może jednak pomóc baloo. Kiedyś już pisałem o tym, jak można ustawić ten komponent. Także wyłączyć. Załóżmy jednak, że chcemy z niego korzystać i jednocześnie nie chcemy, by zużywał 100% rdzenia CPU, czy np. 1 (i więcej) GB RAM. Czy to możliwe? Oczywiście. U mnie np. baloo zużywa ok. 2MB RAM i zasadniczo pomijalny ma apetyt na CPU. Zwykle zużycie wynosi poniżej 1%, a najczęściej sobie śpi. Otóż częstą przyczyną nadmiernego zużywania zasobów przez baloo jest nakazanie mu indeksowania nieistniejących katalogów. W wielu dystrybucjach baloo jest domyślnie włączane. Jego pierwotnym ustawieniem jest indeksowanie katalogu domowego użytkownika wraz z wszystkimi podkatalogami. Jednocześnie nie indeksuje plików ukrytych, oraz niektórych typów plików. Indeksuje również nie tylko nazwy, ale i zawartość plików. W niektórych dystrybucjach, instalator zakładając konto użytkownika, jednocześnie stworzy w nim domyślne katalogi, które przyjmą angielskie nazwy. Wystarczy by użytkownik dokonał w jakikolwiek sposób (czy to programowo, czy też ręcznie) ich zmian np. na polskie odpowiedniki oraz jednocześnie wykasował zbędne już katalogi i wówczas baloo zaczyna mieć apetyt na olbrzymie ilości zasobów. Niestety baloo nie wie, że jakiś katalog został usunięty i próbuje go zindeksować. Podobnie będzie się działo również, gdy jakieś katalogi wykluczyliśmy z indeskowania, a następnie katalog ten został skasowany. Prosty trick polega na tym, by pamiętać o bardzo podstawowych zasadach: Kiedy zmieniamy nazwy, bądź kasujemy jakieś katalogi, które podlegają indeksowaniu, bądź też zostały przez nas z indeksowania wyłączone, to - wstrzymajmy albo nawet lepiej wyłączmy baloo, - po dokonaniu zmian w strukturze katalogów zmieńmy odpowiednio ustawienia w baloo, a w szczególności usuńmy zbędne, bo nieistniejące katalogi, które znajdują się w jego ustawieniach, - włączmy od nowa baloo i pozwólmy mu chwilę w spokoju ponownie zindeksować bazę. W ten sposób, po chwili, gdy dokona pierwszego (czyli nowego) indeksowania, gdzie w istocie zapotrzebowanie na zasoby może być widoczne (ale bez przesady, to w porywach 3 do 5% CPU mojego niezbyt wypasionego APU i nieco większe od wskazanego wyżej zapotrzebowanie na RAM), baloo stanie się praktycznie niewidoczny dla systemu. Pamiętajmy jednak o wykluczeniu z indeksowania zbędnych plików (czyli zbędnych katalogów bądź zbędnych typów).