Mam instancję amazon ec2 (SAY S1) (pamięć 4core-7GB) przy użyciu Ubuntu 12.04, która jest uruchomiona moja aplikacja internetowa z postgresql 9.1
. Wszystkie dane PostgreS są przechowywane na innym woluminie ssd (nie root) 100 GB. (Zapisz teraz tylko obecnie 26% pełnej).Postgres tworzenie/przywracanie zajmuje dużo czasu na amazon ec2
Nagle od dnia lub dwóch kilka działań postgresowych zaczęło zabierać dużo czasu. Utwórz komendę (52 sekundy) i przywróć db (teraz 9 minut, maks. 50 sekund).
Uruchomienie iostat podczas uruchamiania komend PostgreSQL Potwierdzam, że jego IOPS woluminu ec2, który osiągnął swój limit (3 IOPS/GB równa się 300 IOPS dla woluminu 100GB). Widać to poniżej po uruchomieniu tego polecenia: iostat -d 5 -x -p xvdf
.
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.35 2.28 1.20 298.99 19.65 13082.19 87.29 23.42 78.03 64.19 78.09 3.29 98.75
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 1.80 0.00 297.40 0.00 13067.20 87.88 126.47 420.75 0.00 420.75 3.35 99.76
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 1.80 0.00 297.40 0.00 13067.20 87.88 126.32 417.95 0.00 417.95 3.35 99.76
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 1.80 0.00 297.80 0.00 13093.60 87.94 131.70 440.82 0.00 440.82 3.36 100.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 0.00 0.00 301.00 0.00 13225.60 87.88 129.36 422.97 0.00 422.97 3.32 99.84
IO characteristics na AWS mówi, że każdy IOPS zajmuje prośbę 256KiB lub mniej jest postgres użyciu mniejszych bloków danych odpisać wynikające z większej liczby życzenie IOPS?
Podczas gdy mam kolejną instancję ec2 (Say S2) z 100 GB woluminu (teraz pełne 95%) z danymi postgresowymi na woluminie root i ich wydajnością. Więc rozmiar tomu jest czymś, co na pewno nie ma znaczenia.
Podlegający tom S1 przechowuj tylko dane postgresowe Wciąż mogę zobaczyć poniższe statystyki przez iostat. Nie wiem, dlaczego statystyki są takie i jak mogę zmniejszyć czas komend postgres bez zwiększania rozmiaru woluminu. (Podczas wszystkich operacji pamięć 3GB jest zawsze za darmo)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.34 2.29 1.23 298.93 20.10 13079.03 87.28 26.19 87.26 66.96 87.34 3.29 98.78
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 2.40 0.60 299.00 4.80 13020.80 86.95 132.22 434.48 108.00 435.14 3.34 100.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 3.20 4.40 295.20 43.20 12866.40 86.18 122.18 417.09 142.00 421.20 3.34 100.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 2.80 2.40 297.20 23.20 12940.00 86.54 122.70 401.11 124.00 403.34 3.34 99.92
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
xvdf 0.00 3.40 4.80 294.80 46.40 12840.00 86.02 127.43 433.15 161.67 437.57 3.34 99.92
Uwaga: dotknięte objętość PostgreSQL zawiera 100 różnych Postgres dB przy przeciętnej wielkości 110 MB/db (ale szczerze mówiąc nie sądzę, jest to w żadnym wypadku problem)