Nowa piramida pamięci masowej
- Szymon Pomorski,
- 15.02.2010
Rosnące możliwości obliczeniowe serwerów sprawiają, że konieczne staje się zwiększanie wydajności operacji wejścia-wyjścia pamięci masowej. Miniony rok na rynku serwerów i pamięci masowych obfitował w dużą liczbę premier produktów z technologią SSD (Solid State Disk), która właśnie zapewnia zwiększoną wydajność.
Wąskie gardło
Postęp związany z nieustannie zwiększającymi się możliwościami obliczeniowymi komputerów doskonale oddaje podstawowe prawo informatyki, jakim jest "Prawo Moore’a". Sercami serwerów stają się coraz wyżej taktowane i coraz bardziej wielordzeniowe procesory. Ich układy krwionośne - szyny wewnętrzne serwerów oraz interfejsy sieciowe - również oferują coraz większą przepustowość dla przepływających bitów.
Jednak na ścieżce danych od serwera do pamięci masowej istnieje jeden, jakże kluczowy element, którego tempo wzrostu wydajności jest w zasadzie niezmienne od kilkunastu lat. Oczywiście, chodzi o dysk twardy, którego pojemność, owszem podwaja się, ale liczba oferowanych operacji wejścia/wyjścia (IOPS) już niekoniecznie i pozostaje od pewnego czasu na mniej więcej tym samym poziomie. Na przeszkodzie staje mechanika dysku twardego i wynikający z jej działania czas dostępu do danych. Ten ostatni zależy w głównej mierze od dwóch czynników charakteryzujących każdy dysk twardy: czasu wyszukiwania danych oraz opóźnienia obrotowego.
Typowy czas dostępu dla dysków twardych jest mierzony w milisekundach; w najszybszych z nich wynosi ok. 5 ms. W takim czasie obecne serwery mogą wykonać miliony operacji. Podczas gdy procesor oczekuje na dane od dużo wolniejszej pamięci masowej, nie wykonuje innych obliczeń. Powstaje "wąskie gardło" w systemie, co powoduje wydłużenie czasu odpowiedzi aplikacji, dłuższe wykonywanie zadań, a w konsekwencji obniżenie produktywności i komfortu pracy użytkowników. Jeżeli jest to aplikacja obsługująca np. klientów banku, straty z niedomagań wydajnościowych systemu łatwo można przeliczyć na konkretne pieniądze.
Z pomocą w obsłudze żądań procesora przychodzi pamięć cache i RAM - w serwerze lub w kontrolerze macierzy. Jeśli dane użytkownika rezydują w pamięci cache kontrolera, są szybko odnajdywane i dostarczane do miejsca przeznaczenia; potocznie takie zdarzenie określa się jako "trafienie" (cache read hit), a czas dostępu jest wtedy mniejszy od milisekundy. Jeżeli zaś dane użytkownika nie znajdują się w pamięci cache kontrolera, muszą zostać odczytane z dysków twardych i czas odpowiedzi odpowiednio się wydłuża, czyli występuje tzw. cache read miss. Czas dostępu do danych wynosi wtedy 6-7 ms lub nawet więcej.
Cache dla danych jest sposobem na poprawę wydajności systemu. Jednak pod względem pojemności jest ona najczęściej tylko małym procentem pojemności mechanicznych dysków backendowych, a jej zwiększenie często jest kosztowne lub architektonicznie niemożliwe. W rezultacie administratorzy aplikacji oraz pamięci masowej szukają poprawy wydajności poprzez strojenie lub rekonfigurację systemów.