Identyfikacja i testowanie sprzętu PC pod Linuksemsobota, 12 listopad 2005 |
||||
Strona 1 z 3 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. PrzygotowaniaW 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 Live – Knoppix. 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 ProcesorInformacje 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
Poprzednia - Następna strona >> |
Wpisy z blogów/ TOP 30dni
Wiadomości/ TOP 24godz.
Copyright 2015 by LinuxPortal.pl