/dev/sda: Timing cached reads: 18100 MB in 2.00 seconds = 9056.95 MB/sec Przedstawiony wynik działania polecenia systemu Linux służy do diagnostyki
/dev/sda:
Timing cached reads: 18100 MB in 2.00 seconds = 9056.95 MB/secPrzedstawiony wynik działania polecenia systemu Linux służy do diagnostykiA. karty sieciowej
B. pamięci RAM
C. karty graficznej
D. dysku twardego
Pytanie z egzaminu CKE, styczeń 2021 (arkusz EE.08-SG-21.01).
Wynik dotyczy diagnostyki dysku twardego, a dokładniej urządzenia blokowego widocznego w Linuksie jako /dev/sda. Taki zapis jest typowy dla dysków SATA, SCSI, SAS, czasem też dla urządzeń USB widzianych przez system jako dyski. Komunikat Timing cached reads pochodzi najczęściej z narzędzia hdparm, używanego do sprawdzania parametrów i wydajności nośników danych. Wartość 9056.95 MB/sec nie oznacza bezpośrednio prędkości talerzy dysku, tylko szybkość odczytu z pamięci podręcznej systemu, czyli cache. Do realniejszego testu odczytu z samego nośnika używa się zwykle także parametru -t, a nie tylko -T. W praktyce administrator sprawdza tym, czy dysk działa w sensownym trybie, czy kontroler nie zaniża transferu, albo czy po wymianie dysku wszystko wygląda normalnie. Z mojego doświadczenia dobrze jest porównywać takie wyniki z danymi SMART, logami systemowymi dmesg oraz informacjami z lsblk, bo sam transfer nie mówi jeszcze całej prawdy o stanie dysku. Dobra praktyka branżowa jest taka: diagnozę nośnika opiera się na kilku źródłach, nie na jednym wyniku benchmarku.
Ten wynik nie odnosi się do karty graficznej, karty sieciowej ani pamięci RAM jako głównego badanego elementu, mimo że w komunikacie pojawia się słowo cached i bardzo duża prędkość w MB/sec. To właśnie tu często pojawia się pułapka. Ktoś może skojarzyć cache z pamięcią RAM i uznać, że testowana jest pamięć operacyjna. W rzeczywistości polecenie działa na urządzeniu /dev/sda, czyli na dysku widzianym przez Linuksa jako urządzenie blokowe. Test cached reads mierzy odczyt przez cache systemowy, więc RAM bierze udział w pomiarze, ale kontekst diagnostyczny nadal dotyczy dysku i podsystemu wejścia-wyjścia. Do badania RAM używa się raczej narzędzi typu memtest86+, stress-ng albo testów obciążeniowych, a nie poleceń wskazujących konkretny plik urządzenia /dev/sda. Karta graficzna byłaby diagnozowana przez narzędzia związane z GPU, sterownikami, OpenGL/Vulkan, temperaturami i obciążeniem, na przykład glxinfo, nvidia-smi lub benchmarkami graficznymi. Karta sieciowa z kolei ma parametry typu przepustowość interfejsu, opóźnienia, duplex, adres MAC, błędy ramek i statystyki pakietów; sprawdza się ją przez ip, ethtool, ping, iperf albo tcpdump. Tutaj nie ma nazw interfejsów typu eth0, enp3s0 czy wlan0. Moim zdaniem najważniejsza wskazówka to ścieżka /dev/sda, bo w Linuksie takie nazwy prowadzą do urządzeń dyskowych. Jeżeli w pytaniu widać /dev/sdX oraz wartości odczytu w MB/sec, to prawie zawsze trzeba myśleć o diagnostyce nośnika danych, jego kontrolera i wydajności operacji I/O.