- PVSM.RU - https://www.pvsm.ru -
Сегодня предлагаем вашему вниманию вторую часть [1] статьи Светы Смирновой [2] и Анастасии Распопиной о повышении производительности InnoDB.
Очень подробно этот вопрос также разберет Петр Зайцев [3], основатель компании Percona на своем мастер-классе 5 июля. Петр расскажет о том, как правильно использовать возможности MySQL 5.7 для того, чтобы обеспечить максимальную производительность, а также даст конкретные рекомендации относительно конфигурации сервера, схемы базы данных, архитектуры приложения и выбора оборудования. Не упустите возможность посетить этот уникальный мастер-класс [4], специально для PG Day Петр впервые в России подготовит его на русском языке!
В этой статье я расскажу, как искала узкое место, которое препятствовало повышению производительности в моём предыдущем посте [5].
Мощная машина, которую я использовала в тестах в своей предыдущей статье [5], имеет относительно медленный диск, и поэтому я ожидала, что мои тесты достигнут такого уровня, когда я не смогу больше увеличивать производительность из-за скорости диска.
Конфигурация аппаратных средств:
Процессоры: физические = 4, ядра = 72, виртуальные = 144, hyperthreading = да
Память: 3.0T
Скорость диска: около 3K IOPS
ОС: CentOS 7.1.1503
Файловая система: XFS
Протестированные версии и конфигурация: такие же, как в первой статье [5] этой серии (почитайте её, чтобы узнать детали).
Хоть я и ожидала, что мои тесты перестанут расти в производительности из-за скорости диска, высоких значений IO в результатах iostat замечено не было. Я уже проводила тестирование с полным набором данных, помещающихся в память. В этом случае производительность записи влияла только на сброс данных на диск и запись в журнал. Но мы все равно должны увидеть заметное снижение скорости. Поэтому я решила попробовать RW-тесты полностью в памяти. Я создала ramdisk [6] и установила на нем MySQL datadir. Удивительно, но результаты на SSD и ramdisk не отличались.
Я попросила моих коллег из Postgres Professional [7] протестировать PostgreSQL с помощью ramdisk. Они получили похожие результаты:
Интересно, что значение innodb_io_capacity никак не влияет на эту ситуацию. Данные для графика ниже были взяты, когда я запускала тесты на ramdisk. Я хотела посмотреть, могу ли я, используя эту переменную, контролировать активность IO на диске, который по умолчанию очень быстр.
Это полностью противоречит всему моему прошлому опыту с менее производительными машинами. Percona переназначила машину с более быстрым диском (которую я использовала ранее в этой статье [5]), поэтому я использовала аналогичную с меньшей скоростью диска.
Конфигурация аппаратных средств:
Процессоры: физические = 2, ядра = 12, виртуальные = 24, hyperthreading = да
Память: 47.2G
Скорость диска: около 3K IOPS
ОС: Ubuntu 14.04.5 LTS (trusty)
Файловая система: ext4
Опять же [5], в этом случае тесты innodb_io_capacity с меньшим количеством ядер процессора показали более предсказуемые результаты.
Заключение:
Как MySQL, так и PostgreSQL на машине с большим количеством процессорных ядер достигают пределов ресурсов CPU прежде, чем скорость диска может начать влиять на производительность. Однако мы протестировали только один сценарий. В других случаях результаты могут отличаться.
Свои вопросы Светлане вы можете оставить в комментариях, а также задать лично на ее мастер-классе [8] в рамках PG Day'17 об отладке производительности MySQL.
Автор: rdruzyagin
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mysql/253582
Ссылки в тексте:
[1] вторую часть: https://www.percona.com/blog/2017/03/01/open-source-databases-big-machines-disk-speed-innodb_io_capacity/
[2] Светы Смирновой: http://pgday.ru/ru/2017/speakers/111?utm_source=habr&utm_medium=post&utm_campaign=mysql2
[3] Петр Зайцев: http://pgday.ru/ru/2017/speakers/131?utm_source=habr&utm_medium=post&utm_campaign=mysql2
[4] мастер-класс: https://pgday.ru/ru/2017/request/registration?talkId=163&utm_source=habr&utm_medium=post&utm_campaign=mysql2
[5] моём предыдущем посте: https://habrahabr.ru/company/pgdayrussia/blog/326204/
[6] ramdisk: https://en.wikipedia.org/wiki/RAM_drive
[7] Postgres Professional: https://postgrespro.com/
[8] мастер-классе: https://pgday.ru/ru/2017/request/registration?talkId=129&utm_source=habr&utm_medium=post&utm_campaign=mysql2
[9] Источник: https://habrahabr.ru/post/327226/
Нажмите здесь для печати.