Z Procexp wśród procesów
Procexp, a w zasadzie Linux Process Explorer to narzędzie dające zaawansowanemu użytkowniki możliwości wyłamujące się z rutyny typowej kontroli uruchomionych procesów. Ponieważ jednak każde szanujące się środowisko graficzne posiada już własny Monitor Systemu, co odróżnia Procexp od istniejących rozwiązań? Przede wszystkim szczegółowość informacji, bo o procesie dowiemy się z jakich bibliotek korzysta, ile wykorzystuje pamięci, CPU, połączeń sieciowych czy aktualnie wykonywanych operacji I/O. Ten niepozorny program jako chyba jedyne graficzne narzędzie umożliwi nam też proste przypisywania konkretnego procesu do konkretnego rdzenia naszego procesora. O ile wiemy, dlaczego chcielibyśmy to zrobić.
Program wygląda dość tradycyjnie i do uruchomienia potrzebuje uwierzytelnienia (inaczej nie otrzymamy dostępu do podglądu zachowań sieciowych). Główna lista procesów użytkownika (możliwe jest włączenie podglądu wszystkich procesów systemowych) jest dość oczywista ale i enigmatyczna. Wszystko nabiera kolorów po kliknięciu prawym przyciskiem na wybranym procesie i wskazaniu ‘Properties’. Naszym oczom ukaże się wtedy okno zawierające niemal wszystkie wspomniane informacje o procesie – użyte biblioteki, utrzymywane połączenia sieciowe, transfer i wykorzystanie dysków, oraz tradycyjnie wykorzystanie pamięci oraz CPU. Oprócz informacji o konkretnym zadaniu, w opcjach górnego menu możemy znaleźć ogólne informacje o systemie i urządzeniach sieciowych (‘View’ -> ‘System/Network Information’).
Wśród wszystkich informacji jakie udziela Procexp, dostępna pod prawym przyciskiem opcja ‘Set Affinity’ pozwala zadeklarować z których rdzeni naszego procesora może korzystać wybrany proces. O ile zwykłemu użytkownikowi aż takie machinacje nie są potrzebne i nie musi sobie nimi zaprzątać głowy, osoby bardziej rozeznane w temacie docenią taką możliwość. Cała teoria odnośnie ograniczenia procesu do konkretnego rdzenia opiera się o wydajność i zachowanie się systemu podczas zawiadowania naszymi zadaniami. Jak zapewne niektórym wiadomo, jednowątkowe aplikacje potrafią działać tylko z wykorzystaniem jednego rdzeniu. Podczas pracy systemu, kernel Linuksa wykonuje niekiedy przetasowania tych programów pomiędzy rdzeniami, w celu równomiernego rozłożenia obciążenia. Takie przełączenie procesu z rdzenia 0 na 1 wiąże się też z przeniesieniem wykorzystywanej przez proces porcji pamięci cache L1 przynależnej danemu rdzeniowi i zaktualizowania L1 poprzednio używanego rdzenia. I nie jest to nic zdrożnego, ani załamującego działanie systemu, jednak w przypadku zadań i prac mocno obciążających procesor, taka wędrówka może widocznie obniżyć sprawność całości. Łatwo się można o tym przekonać wykonując testy z wykorzystaniem narzędzia cpuburn. Gdy jesteśmy zatem przekonani, że dany program będzie działał lepiej przywiązany do konkretnego rdzenia (np. kodowanie materiału wideo), Procexp umożliwi to jednym kliknięciem.
Aby przetestować Procexp, należy pobrać najświeższą paczkę .deb lub .rpm z tej strony i zainstalować dwuklikiem. Program napisany jest w Pythonie, stąd uruchomi się bez problemów na większości dystrybucji (Ubuntu/Debian/Mint i pochodne). Aby potem ułatwić sobie wywoływanie tego narzędzia, można podpiąć je pod wybrany skrót klawiszowy (np. shift + delete – polecenie procexp.sh).