Ten artykuł ma na celu pokazać wam w jaki sposób należy zmierzyć ilość IOPS zużywanych przez aplikacje uruchomione na komputerach z systemem Windows. Informacje te są wymagane przy doborze odpowiedniego serwera NAS, który ma zastąpić taki komputer, lub na którym mają być uruchomione maszyny wirtualne.
Okazuje się, że po publikacji artykułu opisującego czym są IOPS wielu z was poinformowało nas, że nie wie jak prawidłowo należy mierzyć ilość aktualnie zużywanych IOPS na komputerach z systemem Windows. Poniżej opisaliśmy krok po kroku procedurę mierzenia ilości IOPS w systemach Windows z wykorzystaniem tylko wbudowanych narzędzi systemowych.
Procedura zbierania danych o IOPS
- Uruchom perfmon.exe
- Przejdź do WydajnośćZestawy modułów zbierających daneZdefiniowany przez użytkownika
- Kliknij prawym przyciskiem myszy na „Zdefiniowany przez użytkownika” i z rozwijanego menu wybierz NowyZestawy modułów zbierających dane
- Wpisz własną nazwę i wybierz Utwórz ręcznie (zaawansowane)
- Wybierz Utwórz dzienniki danych i zaznacz Liczniki wydajności.
- Dodaj liczniki dla swojego komputera
- Informacje o procesorzeCzas procesora (%)
- PamięćDostępna pamięć (MB)
- Dysk logiczny
- Średnia liczba bajtów dysku/Odczyt
- Średnia liczba bajtów dysku/Transfer
- Średnia liczba bajtów dysku/Zapis
- Średni czas dysku w s/Odczyt
- Średni czas dysku w s/Transfer
- Średni czas dysku w s/Zapis
- Bieżąca długość kolejki dysku
- Bajty dysku/s
- Bajty odczytu dysku/s
- Odczyt dysku/s
- Transfer dysku/s
- Bajty zapisu dysku/s
- Zapisy dysku/s
- Wybór sprzętu w sekcji „Wystąpienie wybranego obiektu”
- Dla Informacje o procesorze zaznacz Total
- Dla „Dysk logiczny” wybierz partycję, dla której chcesz wykonać pomiarUWAGA1: Zmień <Komputer lokalny> na nazwę twojego komputera w sekcji „Wybierz liczniki z komputera” zanim dodasz licznikiUWAGA2: Pamiętaj, że przy dodawaniu liczników od razu musisz wybrać odpowiedni sprzęt w sekcji „Wystąpienie wybranego obiektu”
- Po dodaniu wszystkich liczników klikamy OK i ustawiamy Interwał próbkowania na 1 sekundę.
- Teraz zapisujemy całą konfigurację, jeżeli wszystko poszło dobrze to w sekcji „Zdefiniowany przez użytkownika” powinieneś zobaczyć moduł o nazwie jaką mu nadałeś.
- Teraz klikamy lewem przyciskiem myszy na nasz nowo dodany moduł, po prawej stronie ukaże się licznik wydajności o domyślnej nazwie DataCollector01.
- Klikamy prawym przyciskiem myszy na DataCollector i z rozwijanego menu wybieramy właściwości
- We właściwościach Format dziennika ustawiamy na Rozdzielone przecinkami
- Dodatkowo ustawiamy Maksymalną liczbę próbek na 86500 sekund
- Zapisujemy nasze ustawienia
- Wszystkie dane będą zapisywane C:PerfLogsAdmin[CounterName]
- Zamykamy właściwości licznika i uruchamiamy go
Opis liczników
- Informacje o procesorzeCzas procesora (%)
- Jeżeli CPU jest wykorzystywany przez większość czasu na poziomie 80% do 95% to oznacza to, że mamy wąskigardłem jest źle skonfigurowany system, albo po prostu CPU jest za wolny.
- Zakładając, że system jest prawidłowo skonfigurowany, a zużycie procesora przez większość czasu jest na poziomie 100%, 95% to pomiary IOPS możemy uznać za zakłamane i nieużyteczne, ponieważ wąskim gardłem jest CPU, przez co nie jesteśmy w stanie zmierzyć prawdziwego zapotrzebowania na IOPS.
- PamięćDostępna pamięć (MB)
- Dostępna pamięć systemowa
- Jeżeli w systemie Windows dostępna pamięć jest poniżej 5%, to oznacza to, że mamy za mało pamięci RAM, co za tym idzie pomiar IOPS będzie niedokładny. Wynika to z tego, że wtedy bardzo wykorzystywana jest pamięć wirtualna, która przekłamuje pomiary IOPS. W takim przypadku nie mamy szans dokonać prawidłowych pomiarów.
- Dysk logiczny
- Średnia liczba bajtów dysku/Odczyt
- Liczba bajtów dysku odczytanych per IOP
- Średnia liczba bajtów dysku/Transfer
- Równoczesna liczba bajtów per IOP
- Średnia liczba bajtów dysku/Zapis
- Liczba bajtów dysku zapisanych per IOP
- Średni czas dysku w s/Odczyt
- Opóźnienie dysku przy odczycie per IOP
- Średni czas dysku w s/Transfer
- Opóźnienie dysku przy równoczensych IOP
- Średni czas dysku w s/Zapis
- Opóźnienie dysku per Zapis IOP
- Bieżąca długość kolejki dysku
- Długa kolejka oznacza wąskie gardło w systemie
- Bajty dysku/s
- Bajty odczytu dysku/s
- Liczba bajtów dysku odczytana przez sekundę
- Odczyt dysku/s
- Transfer dysku/s
- Bajty zapisu dysku/s
- Liczba bajtów dysku zapisana przez sekundę
- Zapisy dysku/s
Przygotowanie danych
Uzyskane dane najlepiej obrobić w programie Excel, ponieważ po wprowadzeniu wszystkich danych w prosty sposób możemy zaprezentować je w postaci wykresów. Przy przygotowywaniu wykresów należy zastosować zasadę analizy 95th percentile, która najlepiej pokaże czego powinniśmy oczekiwać od serwera NAS. Ta metoda jest najlepsze. Dlaczego? Prosty przykład, to, że mamy komputer z portem 1GbE nie oznacza, że przez cały czas wykorzystujemy 100% jej możliwości. Natomiast nasze metoda pokaże, że w praktyce nasza karta 1GbE jest wykorzystywana na poziomie 10%.
Jako wzór możecie pobrać testowy plik zawierający wyniki pomiarów IOPS w systemie Windows. Na jego podstawie możecie spróbować przygotować własny, plik niestety jest tylko w wersji do odczytu, więc jeżeli wyskoczy zapytanie o hasło to należy kliknąć tylko do odczytu.
Analiza danych
- IOPS over time
- Porównanie IOPS Zapisu/Odczytu w czasie
- Wykres pokazuje jakie było obciążenie IOPS na dyskach, wyniki te wykorzystujemy do doboru macierzy z odpowiednią ilością IOPS
- Block Size over time
- Porównanie IOP Zapisu/Odczytu dla wielkości bloku w czasie, przeliczone na KB.
- Pokazuje średnią wielkość bloków IOP wykorzystywaną przez dysk. Te dane pomagają ocenić jakie osiągi są wymagane od pamięci masowej.
- Throughput over time
- Porównanie Zapisu/Odczytu Bajtów/Sec w czasie, przeliczonych na MB/Sec. Te dane pokazują jakie pasmo przepustowości jest wymagane dla serwera NAS.
- Latency over time
- Porównanie Opóźnienia Zapisu/Odczytu w czasie, przeliczone na milisekundy.
- Dane te mogą być stosowane do identyfikacji błędów opóźnienia. W tym przypadku można zaobserwować spore opóźnienie bo aż 2000ms, w przypadku gdy CPU jest wykorzystywany w 100%
- Queue Length over time
- Porówanienie aktualnej kolejnki dysku w czasie
- Te dane razem z opóźnieniem pokazują jak wydajne na serwerze jest przetwarzanie instrukcji. W tym przypadku kolejka o długości 250 pokazuje, że mamy wąskie gardło, w tym przypadku jest to CPU, który jest wykorzystywany na poziomie 100%
- CPU Utilization over Time
- Ten wykres jest porównywany z każdym innym wykresem, służy do weryfikacji wykorzystania procesora w odniesieniu do innych elementów składowych macierzy
- Memory Utilization over time
- Ten wykres jest porównywany z każdym innym wykresem, służy do weryfikacji wykorzystania pamięci w odniesieniu do innych elementów składowych macierzy
- Podsumowanie Analizy
- Zgodnie z powyższymi wynikami testowany komputer nie zużywa więcej niż 30 IOPS, a najczęściej wykorzystywany blok ma rozmiar 32KB. Jedyne co może niepokoić to moment gdy wykonywany jest backup danych wtedy ilość IOPS osiąga 4000, a przepustowość osiąga 160MB/Sec. Więc jeżeli weźmiemy wolniejszy serwer to musimy się liczyć z tym, że nasza kopia danych będzie wykonywała się wolniej.
Podsumowanie
Jak już zbierzesz wszystkie dane to śmiało możesz poświęcić kilka godzin na ich analizę. Gdy już dojdziesz do tego jakie osiągi powinien mieć serwer idealny dla ciebie to dobrą praktyką jest dodanie 20% do otrzymanych wartości jako margines bezpieczeństwa.
Mam nadzieję, że teraz bez problemu będziecie w stanie dobrać serwer NAS z odpowiednią ilością IOPS. Wiedza ta powinna również być przydatna przy weryfikacji przyczyny wolnego działania komputerów z systemem operacyjnym Windows.