2014-05-15 12 views
7

Właśnie przełączyliśmy się na Google Compute Engine i mamy poważne problemy z prędkością dysku. To było około 5% Linode lub gorzej. Nigdy nie przekracza 20 M/s dla zapisu i 10 M/s dla czytania. Najczęściej jest to 15 M/s do pisania i 5 M/s do czytania.Dysk VM wyszukiwarki Google Engine jest bardzo wolny.

Aktualnie używamy maszyny n1-highmem-4 (4 vCPU, 26 GB pamięci). CPU & Pamięć nie jest wąskim gardłem. Po prostu uruchamia skrypt, który odczytuje wiersze z bazy danych PostgreSQL, przetwarza je, a następnie zapisuje z powrotem do PostgreSQL. Wystarczy zwykłe zadanie aktualizacji wiersza bazy danych wsadowo. Próbowałem uruchomić 20 procesów, aby wykorzystać wielordzeniowość, ale ogólny postęp jest nadal powolny.

Myślimy, że dysk może być wąskim gardłem, ponieważ ruch jest wyjątkowo niski.

Ostatecznie zdecydowaliśmy się na benchmarking. Okazało się, że nie tylko wolno, ale wydaje się mieć poważny błąd, który jest powtarzalny:

  1. tworzenia & podłączyć do instancji
  2. uruchomić benchmark co najmniej trzy razy:

    dd if=/dev/zero bs=1024 count=5000000 of=~/5Gb.file 
    

Stwierdziliśmy, że staje się on bardzo powolny i nie jest w stanie dokończyć analizy porównawczej.

+0

to oświadczenie nie kwestia i powinny być zamknięte. –

+2

Widzę oświadczenie i mam pytanie: jak to naprawić? – blackjack75

Odpowiedz

8

Trwałe działanie dysku jest proporcjonalne do rozmiaru samego dysku i maszyny wirtualnej, do której jest przyłączony. Im większy dysk (lub VM), tym wyższa wydajność, więc w istocie cena, jaką płacisz za dysk lub VM, płaci nie tylko za dysk/CPU/RAM, ale także za IOPS i przepustowość.

Cytowanie Persistent Disk documentation: Persistent wydajność dysku

zależy od wielkości objętości i rodzaju tarczy wybrać. Większe woluminy mogą osiągnąć wyższe poziomy I/O niż mniejsze woluminy. Nie ma oddzielnych opłat we/wy, ponieważ koszt opcji We/Wy jest wliczony w cenę dysku trwałego.

Trwałe wydajności dysku może być opisana w sposób następujący:

  • Granice skuteczności IOPS rośnie liniowo wraz ze wzrostem wielkości utrzymującego objętość dysku.
  • Limity przepustowości również rosną liniowo, do maksymalnej przepustowości maszyny wirtualnej, do której jest podłączony dysk stały.
  • Większe maszyny wirtualne mają większe ograniczenia przepustowości niż mniejsze maszyny wirtualne.

Jest też bardziej szczegółowy schemat cenowa na stronie, która pokazuje, co można dostać za GB wolnego miejsca, że ​​można kupić (dane poniżej są aktualne od sierpnia 2014):

        Standard disks  SSD persistent disks 

Price (USD/GB per month)    $0.04    $0.025 
Maximum Sustained IOPS 
    Read IOPS/GB       0.3     30 
    Write IOPS/GB       1.5     30 
Read IOPS/volume per VM     3,000    10,000 
Write IOPS/volume per VM    15,000    15,000 
Maximum Sustained Throughput 
    Read throughput/GB (MB/s)    0.12     0.48 
    Write throughput/GB (MB/s)    0.09     0.48 
Read throughput/volume per VM (MB/s)  180     240 
Write throughput/volume per VM (MB/s) 120     240 

oraz Konkretnym przykładem na stronie co dana wielkość dysku da wam:

Jako przykład, jak można wykorzystać wykres wydajności w celu ustalenia wolumin na dysku, który chcesz, rozważaniach r, że 500 GB standardem persistent dysku daje:

  • (0,3 x 500) = 150 małej losowej odczytuje
  • (1,5 x 500) = 750 małej losowej zapisuje
  • (0,12 x 500) = 60 MB/s dla dużych sekwencyjnego czyta
  • (0,09 x 500) = 45 MB/s sekwencyjnego z dużą pisze