Диск Google Compute Engine VM очень медленный

Мы только что перешли на Google Compute Engine и у нас возникли серьезные проблемы со скоростью диска. Это было около 5% Linode или хуже. Он никогда не превышал 20 м / с для записи и 10 м / с для чтения. В большинстве случаев это 15 М / с для записи и 5 М / с для чтения.

В настоящее время мы работаем n1-highmem-4 (4 vCPU, 26 ГБ памяти) машина. Процессор и память не являются узким местом. Просто запустите скрипт, который читает строки из базы данных PostgreSQL, обрабатывает их, а затем записывает обратно в PostgreSQL. Это просто для обычной работы, чтобы обновить строку базы данных в пакетном режиме. Пробовал запустить 20 процессов, чтобы использовать преимущества многоядерности, но общий прогресс все еще медленный.

Мы думаем, что диск может быть узким местом, потому что трафик ненормально низкий.

Наконец мы решили сделать бенчмаркинг. Мы обнаружили, что это не только медленно, но, похоже, имеет серьезную ошибку, которая воспроизводима:

  1. создать и подключиться к экземпляру
  2. запустите тест по крайней мере три раза:

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

Мы обнаружили, что он становится очень медленным и не в состоянии завершить бенчмаркинг вообще.

1 ответ

Производительность постоянного диска пропорциональна размеру самого диска и виртуальной машины, к которой он подключен. Чем больше диск (или ВМ), тем выше производительность, поэтому, по сути, цена, которую вы платите за диск или ВМ, платит не только за диск / ЦП / ОЗУ, но также за IOPS и пропускную способность.

Цитирование документации по постоянному диску:

Постоянная производительность диска зависит от размера тома и типа выбранного диска. Большие объемы могут достигать более высоких уровней ввода / вывода, чем меньшие объемы. Нет отдельной платы ввода / вывода, так как стоимость возможности ввода / вывода включена в стоимость постоянного диска.

Постоянная производительность диска может быть описана следующим образом:

  • Пределы производительности IOPS растут линейно с размером постоянного дискового тома.
  • Пределы пропускной способности также растут линейно, вплоть до максимальной пропускной способности для виртуальной машины, к которой подключен постоянный диск.
  • Большие виртуальные машины имеют более высокие пределы пропускной способности, чем меньшие виртуальные машины.

На странице также есть более подробная диаграмма цен, в которой показано, сколько вы получаете за ГБ места, которое вы покупаете (данные ниже действительны на август 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

и конкретный пример на странице того, что даст вам конкретный размер диска:

В качестве примера того, как вы можете использовать диаграмму производительности для определения требуемого объема диска, рассмотрим, что стандартный постоянный диск объемом 500 ГБ даст вам:

  • (0,3 х 500) = 150 небольших случайных чтений
  • (1,5 х 500) = 750 небольших случайных записей
  • (0,12 x 500) = 60 МБ / с для больших последовательных операций чтения
  • (0,09 x 500) = 45 МБ / с для больших последовательных записей
Другие вопросы по тегам