- PVSM.RU - https://www.pvsm.ru -

Тестируем PostgreSQL на SSD RAID-0 массиве с таблицей в 10 миллиардов записей. (Часть 3, заключительная)

Тестируем PostgreSQL на SSD RAID-0 массиве с таблицей в 10 миллиардов записей. (Часть 3, заключительная) - 1

Пора провести финальные тесты и подвести итоги цикла статей. Сегодня мы рассмотрим влияние размера shared_buffers на производительность БД. Первые части можно почитать здесь [1] и здесь [2].

В ходе развития сервиса оптимизации затрат на сотовую связь Dr. Tariff [3] (iOS [4], Android [5]) для совместного пилота с одним из партнеров нам потребовалась большая и производительная реляционная база данных.

Зависимость производительности БД от параметра shared_buffers

Параметр PostgreSQL shared_buffers задает максимальный объем оперативной памяти для кэширования на уровне базы данных. Количество записей – 10 миллиардов, количество активных подключений – 64, нагрузка на чтение. В этом тесте после изменения файла конфигурации происходил перезапуск сервера БД, поэтому перед измерением данных происходил тестовый запуск на несколько минут, чтобы кэш успел заполниться.

Тестируем PostgreSQL на SSD RAID-0 массиве с таблицей в 10 миллиардов записей. (Часть 3, заключительная) - 2

Производительность чтения практически не зависит от размеров shared_buffers. Размер БД в 40 раз выше, чем количество оперативной памяти в компьютере. При таком соотношении и использовании всего объема данных практически каждое чтение требует обращения к диску.
В реальных ситуациях не следует пренебрегать этим параметром, так как Postgres будет кешировать наиболее часто используемые данные и таблицы меньшего размера.

Зависимость производительности БД от параметра fsync

В PostgreSQL есть параметр fsync, который отвечает за перенос данных из оперативной памяти на диск по завершению транзакции. По умолчанию он включен, и обеспечивает сохранность данных в случае сбоя. Сбой может быть вызван отключением питания, зависанием системы, сбоем в дисковой подсистеме… Если произошел сбой и fsync=on, то при очередном запуске БД данные будут востановлены. Если же сбой произошел, но при этом fsync=off, то скорее всего данные придется восстанавливать из последнего дампа. Отключение данного параметра позволяет существенно повысить скорость update и insert операций.

Тестируем PostgreSQL на SSD RAID-0 массиве с таблицей в 10 миллиардов записей. (Часть 3, заключительная) - 3

Производительность после отключения fsync выросла в 2-3 раза. Это очень хороший показатель.

Сравнение скорости SSD и HDD дисков

Для сравнения тестовая конфигурация была развернута на HDD диске. Скорость заполнения диска была в разы ниже в сравнении с SSD, поэтому тестирование было решено ограничить размером в 1 миллиард записей.

Тестируем PostgreSQL на SSD RAID-0 массиве с таблицей в 10 миллиардов записей. (Часть 3, заключительная) - 4 Тестируем PostgreSQL на SSD RAID-0 массиве с таблицей в 10 миллиардов записей. (Часть 3, заключительная) - 5

Как видим скорость работы БД на HDD диске замедлилась в сотню раз в сравнении с одиночным SSD при таком характере нагрузки. Подобная нагрузка требовательна к iops дисков. Iops для SSD и HDD как раз отличаются на два порядка. Для баз данных традиционно используется рейд массив из быстрых HDD дисков. Быстрые HDD диски имеют iops в 1.5-2 раза выше, чем HDD, который участвовал в тестировании. Еще в несколько раз можно увеличить скорость за счет рейд массива.

Резюме

Несмотря на все преимущества у SSD есть недостатки:

  • более высокая цена
  • ограниченный ресурс на запись

Высокая цена оправдывается высокой производительностью. Современные SSD диски обладают достаточным ресурсом записи, даже для таких применений как база данных. Есть хорошая статья [6] по тестированию ресурса SSD дисков.

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

  1. PostgreSQL хорошо работает с большими таблицами с количеством строк до 10 миллиардов и с количеством клиентов до 1 тысячи
  2. При размерах БД намного больше объема оперативной памяти и простых запросах производительность ограничивается дисковой подсистемой, а shared_buffers практически не влияет на производителность. Параметр fsync позволяет в разы увеличить скорость записи в БД.
  3. SSD диски имеют намного большую производительность применительно к базам данных, чем HDD диски и занимают свою нишу.
  4. SSD диски плохо масштабируются в RAID-0 массиве для случайного чтения. Если задача позволяет, то предпочтительнее использовать несколько баз данных на отдельных дисках, чем одну большую базу данных на RAID массиве.

А наиболее выгодный тариф подскажет приложение Dr. Tariff на Android [5] и на iOS [4].

Другие статьи о возможностях Dr. Tariff и аналитике сотовых услуг из нашего блога

Подписывайтесь на наши новости и делитесь информацией с друзьями в Вконтакте [16] и Facebook [17].

Автор: DrTariff

Источник [18]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/postgresql/96969

Ссылки в тексте:

[1] здесь: http://geektimes.ru/company/drtariff/blog/260760/

[2] здесь: http://geektimes.ru/company/drtariff/blog/260818/

[3] Dr. Tariff: http://drtariff.com

[4] iOS: https://itunes.apple.com/ru/app/dr.-tariff/id813295220?l=en&mt=8

[5] Android: https://play.google.com/store/apps/details?id=ru.bandicoot.dr.tariff

[6] хорошая статья: http://www.hardwareluxx.ru/index.php/artikel/hardware/storage/31628-stress-SSD.html

[7] Тестируем PostgreSQL на SSD RAID-0 массиве с таблицей в 10 миллиардов записей: http://drtariff.com/blog/note/testiruem-postgresql-na-ssd-raid-0-massive-s-tablicejj-v-10-milliardov-zapisejj

[8] Dr. Tariff посчитал у какого сотового оператора больше 4G интернета (часть 2): http://drtariff.com/blog/note/dr-tariff-poschital-u-kakogo-sotovogo-operatora-bolshe-4g-interneta-chast-2

[9] Dr. Tariff посчитал у какого сотового оператора больше 4G интернета (часть 1): http://drtariff.com/blog/note/dr-tariff-poschital-u-kakogo-sotovogo-operatora-bolshe-4g-interneta-chast-1

[10] Осторожно! Скрытые доходы операторов — следите за опциями «Вам звонили!», «Кто звонил+», «Будь в курсе+» (теперь платные): http://drtariff.com/blog/note/ostorozhno-toksichnye-dokhody

[11] История о том, как мобильный оператор списал деньги с разработчика Dr. Tariff (захватите попкорн): http://drtariff.com/blog/note/istoriya-o-tom-kak-mobilnyjj-operator-spisal-dengi-s-razrabotchika-dr-tariff-zakhvatite-popkorn

[12] Dr. Tariff 2.0: новые возможности для абонентов Билайн, МегаФон и МТС: http://drtariff.com/blog/note/dr-tariff-20-novye-vozmozhnosti-dlya-abonentov-beeline-megafon-i-mts

[13] Решили сменить оператора? Не забудьте подобрать выгодный тариф с помощью Dr. Tariff: http://drtariff.com/blog/note/reshili-smenit-operatora-ne-zabudte-podobrat-vygodnyjj-tarif-s-pomoshhyu-dr-tariff

[14] Dr. Tariff (3 месяца спустя) — подобрать тариф можно в 80 регионах России на Android и iOS: http://drtariff.com/blog/note/zapis-2

[15] Dr. Tariff (тарифы и баланс): Как я стал помогать людям экономить на мобильных затратах: http://drtariff.com/blog/note/zapis-1

[16] Вконтакте: http://vk.com/DrTariff

[17] Facebook: https://www.facebook.com/DrTariff/

[18] Источник: http://geektimes.ru/post/260882/