Archiwum wpisów z LinuxDlaFirm.pl oraz LinuxPraca.pl.

Identyfikacja i testowanie sprzętu PC pod Linuksem

sobota, 12 listopad 2005
Spis treści artykułu
Identyfikacja i testowanie sprzętu PC pod Linuksem
Część druga artykułu
Część trzecia artykułu

Artykuł z Magazynu Linux+ nr 10/2005 .
Gdy komputer nie działa tak, jak byśmy tego od niego oczekiwali, z reguły najpierw staramy się wykluczyć awarię sprzętu, później skupiając się na oprogramowaniu. Przed zadaniem przetestowania sprzętu stajemy również w sytuacji, gdy chcemy kupić komputer, szczególnie jakiś starszy używany typ. Wtedy dokładne przetestowanie może zaoszczędzić nam sporo czasu, jak i pieniędzy. Bardziej doświadczeni posiadacze komputerów pewnie pamiętają programy do testowania komputerów, działające pod DOS-em. Były one szczególnie popularne na początku lat 90-tych ubiegłego wieku. Z czasem pojawienie się wielu nowinek technicznych i przejście na technologie 32-bitowe spowodowało, że oprogramowanie testujące dla DOS-a stało się niemal bezużyteczne. W efekcie, powszechnie stosowaną metodą na sprawdzenie, czy dany komputer jest sprawny, jest wykonanie pełnej instalacji systemu MS Windows. Jednak Ci, którzy stosują tę metodę, po prostu nie wiedzą, że korzystając z Linuksa można to zrobić szybciej, dokładniej i nie narażając się na żadne problemy licencyjne.

Przygotowania

W tym artykule skoncentruję się na opisie programów, które służą do identyfikacji i testowania sprawności sprzętu. Oczywiście, sama identyfikacja podzespołów PC, przy pomocy kilku komend i systemu pseudoplików /proc, jest łatwa, więc ta część opisu będzie użyteczna zapewne przede wszystkim dla początkujących użytkowników Linuksa.

Przy testowaniu sprzętu będziemy wykorzystywali kilka różnych programików. Część z nich jest dostępna w bardzo popularnej dystrybucji Linuksa typu LiveKnoppix. Niektóre pozostałe znajdziemy w innej wyspecjalizowanej dystrybucji – StressLinux (http://www.stresslinux.org/ ). Pozostałe aplikacje są dostępne w Sieci, często wyłącznie w postaci źródłowej. Ponadto, redakcja Linux+ dołączyła wszystkie opisywane tu narzędzia do Linux+ Live.

Przyjrzyjmy się po kolei najistotniejszym elementom komputera PC.

Listing 1. Przykładowy plik /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 31
model name : AMD Athlon(tm) 64 Processor 3000+
stepping : 0
cpu MHz : 1004.646
cache size : 512 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow
bogomips : 1988.83
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp

Procesor

Informacje o typie procesora oraz jego aktualnej prędkości pracy uzyskamy wydając komendę cat /proc/cpuinfo. Przykładowy wynik jej działania znajduje się na Listingu 1. Poza informacjami o producencie (vendor_id) oraz modelu (model name) i podwersji (stepping), widzimy również rzeczywistą aktualną częstotliwość taktowania (cpu MHz). Podana na Listingu 1 częstotliwość 1004.646 przy procesorze AMD Athlon(tm) 64 Processor 3000+ to wcale nie pomyłka – w celu zaoszczędzenia energii system operacyjny może obniżać częstotliwość taktowania, oczywiście jeśli korzystamy z mechanizmów ACPI.

Pod koniec Listingu 1 widzimy wartość bogomips dla naszego procesora. Ilość bogomips jest obliczana przez jądro podczas startu systemu i służy wyłącznie do kalibracji pętli opóźnień. W założeniu nie jest to jednostka, która w wiarygodny i porównywalny sposób opisuje wydajność procesora, gdyż jest ona obliczana jako liczba milionów instrukcji pustych, wykonywanych przez procesor, w czasie jednej sekundy. Humorystycznie parafrazując, jest to wynik testu, jak szybko procesor potrafi działać, nie robiąc absolutnie nic. Jeśli mamy w systemie program bogomips, możemy ten test wydajności wykonać w każdej chwili, ale oczywiście na obciążonym komputerze uzyskamy zaniżony wynik.

Procesor jest elementem, który stosunkowo często ulega awariom. Jego uszkodzenia potrafią objawiać się występującymi losowo „zawieszeniami” systemu lub pojedynczych procesów. Gdy mamy jakieś wątpliwości, czy nasz procesor nie jest nieco uszkodzony, potrzebujemy oprogramowania, które obciąży go maksymalnie, zmuszając do pokazania ewentualnych słabości. Zarówno w Knoppiksie, jak i w StressLinux, znajdziemy służący do tego celu program Cpuburn (http://pages.sbcglobal.net/redelm/ ). Tak naprawdę jest to kilka programów, każdy dla innej rodziny procesorów (jeśli ściągnęliśmy źródła, rozpakowujemy je i wydajemy komendę make). A więc BurnP5 używamy dla Intel Pentium (także MMX), BurnP6 dla Intel PentiumPro, PentiumII i III oraz Celeron, BurnK6 dla AMD K6 oraz BurnK7 dla Athlon/Duron. Oczywiście, jeśli właśnie skompilowaliśmy te komendy przy pomocy make i są one w bieżącym katalogu, a nie w /usr/bin/, musimy przed nazwą dołożyć znaki ./, np. ./burnK6.

Dlaczego należy stosować inne programy dla różnych procesorów? Otóż dlatego, iż każda ich rodzina posiada pewne instrukcje, specyficzne dla siebie. Tak się składa, iż z reguły są to najbardziej złożone instrukcje, które przy okazji powodują największe zapotrzebowanie na moc i wydzielanie ciepła. W efekcie, przy pomocy programu, który będzie je wyjątkowo intensywnie wywoływał, uzyskamy największe możliwe obciążenie procesora. O procesorze, który wytrzyma pół godziny takiego testu, można powiedzieć z prawdopodobieństwem graniczącym z pewnością, iż jest sprawny.

Zanim rozpoczniemy testy przy pomocy tego programu, musimy wiedzieć o jednym. Program ten spowoduje nagrzewanie się procesora znacznie szybsze i bardziej intensywne niż jakakolwiek aplikacja obliczeniowa czy gra. Jeśli układ chłodzenia procesora jest choćby w niewielkim stopniu niesprawny, czy za mało wydajny, a BIOS płyty głównej nie zabezpiecza procesora przed przegrzaniem, po prostu go sobie spalimy. To nie są żarty.

Z tego powodu, przy testowaniu procesora, warto mieć podgląd odczytów z czujników temperatury. Gdy tylko w naszym komputerze one występują, powinniśmy na ogół je zobaczyć przy pomocy programiku Mbmon lub Sensors – więcej na ten temat znajdziemy w ramce Bezpieczne testowanie.

Przy testowaniu procesora zwracamy uwagę nie tylko na to, aby nie przekroczyć temperatury maksymalnej. Obserwujemy również napięcia, zwłaszcza Vcore i +3.3V – jakieś większe wahania w momencie uruchomienia testu świadczą o wadliwym działaniu stabilizatorów napięcia na płycie głównej lub nawet zasilacza. Może to zakłócić pracę sprawnego procesora. Generalnie jednak, problemy z napięciami znacznie częściej zdarzają się przy testowaniu pamięci.

Poza programem Cpuburn, do testowania procesora można polecić programik Cpuburn-in (http://users.bigpond.net.au/cpuburn/ ). W ściągniętym archiwum znajdziemy gotowy do uruchomienia program, a jako parametr podajemy tylko liczbę minut, jaką ma działać.
Rysunek 1. Programy BurnK7 oraz Mbmon w dystrybucji Knoppix 3.9

Pamięć

Informacje na temat ilości pamięci RAM w komputerze uzyskamy szybko komendą cat /proc/meminfo – pierwsza linia wyniku działania tej komendy (MemTotal) poda nam tę wartość w kilobajtach.

Testowanie pamięci RAM najlepiej jest przeprowadzać spoza systemu operacyjnego. Jeśli bowiem uruchomiliśmy już system operacyjny i jakieś programy, nie możemy w żaden sposób uzyskać pełnego dostępu do całej pamięci.

Większość BIOS-ów zawiera procedurę testowania pamięci. Duża szybkość jest jednak jedyną zaletą tych testów. Gdy chcemy mieć narzędzie, które da nam pewną wiedzę na temat naszych kości pamięci, warto zainteresować się dwoma programami, rozwijanymi na licencji GPL – tradycyjnym Memtest86 (http://www.memtest86.com/ ) oraz na ogół nieco nowocześniejszym Memtest86+ (http://www.memtest.org/ ). Ze stron domowych tych programów można ściągnąć zarówno źródła, jak i gotowe wersje binarne. Często wygodniej będzie posłużyć się dystrybucją Knoppix lub StressLinux. Przykładowo, po uruchomieniu komputera z włożoną płytą ze StressLinux możemy wybrać normalne uruchomienie tej dystrybucji albo uruchomienie Memtest86 czy też Memtest86+. Standardowe testy, prowadzone przez te programy, zajmą około kilkunastu minut i są miarodajne.

Oczywiście, pamięć można również testować po uruchomieniu systemu operacyjnego. W takim przypadku musi ona zostać alokowana, więc nie będzie dostępna dla żadnej aplikacji. W zamian za to, w momencie testowania pamięci, możemy także sprawdzać temperaturę procesora czy napięcia na płycie głównej. W praktyce testowanie pamięci powoduje również spore obciążenie procesora (mamy więc dwa testy w jednym), a ponadto również stabilizatorów napięcia na płycie głównej i zasilacza. Warto monitorować przynajmniej poziom napięć, czy nie występują jakieś znaczne wahania.

W Linuksie znajdziemy kilka aplikacji, przy pomocy których możemy przetestować pamięć. Na stronie http://pyropus.ca/software/memtester/ znajdziemy program Memtester. Po ściągnięciu i rozpakowaniu źródeł wydajemy komendę make i następnie możemy już uruchomić program komendą ./memtester 12M (aby przetestować jedynie 12 megabajtów spośród naszej pamięci) lub ./memtester all, aby alokować i przetestować całą dostępną pamięć (taki sposób uruchomienia spowoduje jednak poważne problemy z dalszym działaniem systemu, zwłaszcza jeśli mamy uruchomionych wiele aplikacji lub KDE czy GNOME). Program ten jest dostępny również w Debianie (pakiet sysutils lub memtester), ale wtedy wydajemy komendę memtest.

Poza Memtester możemy spróbować programików BurnBX oraz BurnMMX – są one dostępne w pakiecie cpuburn, wraz z opisanymi wcześniej programami testującymi procesory. Pierwszy z nich – wbrew swojej nazwie – powinien działać na wszystkich procesorach, poza AMD K6. Drugi zadziała ze wszystkimi CPU wyposażonymi w instrukcje MMX, w tym oczywiście również produkcji AMD. Obydwa te programy akceptują jeden parametr – literę od A do P, np. burnBX E. Im dalsza w alfabecie litera, tym większa ilość testowanej pamięci. Tabelę z dokładnymi danymi można znaleźć w pliku README, zawartym w archiwum ze źródłami. Najczęściej, jeśli podamy literę z przedziału A-E, testowana będzie przede wszystkim L1 cache (pamięć podręczna poziomu pierwszego), F-H przetestuje L2 cache, a H-P kości RAM.
Rysunek 2. Program Memtest+ podczas pracy


Wpisy z blogów/ TOP 30dni

Pliki /etc/shadow, /etc/security/passwd i /etc/group - Dodawanie nowych użytkowników - cz.3 Fragmenty artykułów z książek wydawnictwa Helion.pl
41 osób twierdzi: warto przeczytać
Polecenia useradd i newusers - Dodawanie nowych użytkowników - cz.5 Fragmenty artykułów z książek wydawnictwa Helion.pl
39 osób twierdzi: warto przeczytać
Prosta kompilacja jądra jack
35 osób twierdzi: warto przeczytać
Linux for Woman Beings KDEFamily.pl
35 osób twierdzi: warto przeczytać
Wpisy z blogów więcej:

Wiadomości/ TOP 24godz.

Nowa wersja programu obsługi sprzedaży dla małych i średnich firm - Smabi Blog firmy Smabi
3 osoby twierdzą:: warto przeczytać
LinuxPro 2004 Blog firmy Software - Konferencje
4 osoby twierdzą:: warto przeczytać
Dostępna jest już wersja 1.2.2 programu Mała Księgowość Blog firmy Lefthand
3 osoby twierdzą:: warto przeczytać
Pierwsza edycja konferencji IT Underground 2004 Blog firmy Software - Konferencje
3 osoby twierdzą:: warto przeczytać
Internet.Con 2004  Największe spotkanie twórców i użytkowników technologii internetowych Blog firmy Software - Konferencje
3 osoby twierdzą:: warto przeczytać
Wiadomości więcej:

Linux dystrybucje/ TOP polecane

logo: Debian GNU/Linux Debian GNU/Linux
391 osób poleca, a 2 nie
logo: Linux Mint Linux Mint
282 osoby polecają, a 2 nie
logo: Xubuntu Xubuntu
204 osoby polecają, a 2 nie
logo: Ubuntu Ubuntu
193 osoby polecają, a 18 nie
logo: Slackware Linux Slackware Linux
166 osób poleca, a 2 nie
Linux dystrybucje więcej:
Facebook
Google+
W związku z wejściem w życie 25 maja 2018 roku nowego Rozporządzenia o Ochronie Danych Osobowych znanym jako "RODO" pragniemy poinformować Cię,
w jaki sposób przetwarzane są dane osobowe pozostawiane przez Ciebie podczas korzystania z LinuxPortal.pl.
Zapoznaj się z Polityką prywatności.

Klikając „Zamknij”, zamykasz ten komunikat i wyrażasz zgodę na przetwarzanie tych danych, w tym w plikach cookies, przez LinuxPortal.pl sp. z o.o. w celu realizacji usług zgodnie z Regulaminem.
Zamknij »