Я собираюсь настроить сервер базы данных (MySQL) в контейнере OpenVZ, и мне было интересно, сколько процессоров я должен назначить для него. Я решил сравнить его. Я сравнил два дистрибутива OS / MySQL и проверил, как они работают с 1, 2, 3 и 4 процессорами.
Первая конфигурация программного обеспечения была:
- CentOS релиз 6.5 (финал)
- mysql Ver 14.14 Distrib 5.1.71, для redhat-linux-gnu (x86_64) с использованием readline 5.1
Второй:
- Debian GNU / Linux 7 \ n \ l
- mysql Ver 14.14 Distrib 5.5.31, для debian-linux-gnu (x86_64) с использованием readline 6.2
Оба работали на одном и том же ядре - 2.6.32-openvz-042stab083.2-amd64 # 1 SMP пт 8 ноября 17:59:25 MSK 2013 x86_64 GNU / Linux.
Все программное обеспечение было установлено из пакетов и использовалось без каких-либо настроек.
Аппаратное обеспечение: 6 ГБ ОЗУ, 1-4 ЦП 3,5 ГГц.
Для тестирования я использовал sysbench со следующим сценарием:
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --db-driver=mysql --mysql-password=d --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
В обоих случаях движок стола был InnoDB.
Результат, на который я смотрел, был числом транзакций в секунду. Результаты были достаточно стабильными - ошибка была менее 1%.
Результаты были хорошими и ожидаемыми для CentOS / MySQL5.1, но очень странными для Debian / MySQL5.5:
Как вы можете видеть, MySQL5.5 в Debian не может должным образом использовать преимущества нескольких процессоров. Хотя производительность с 2 процессорами выше, чем с 1, она явно ниже, чем в CentOS / MySQL5.1. Более того, он падает, когда мы добавляем больше процессоров поверх 2, что действительно странно.
Может кто-нибудь объяснить, что там происходит? Почему на Земле MySQL будет работать хуже, когда мы добавляем процессоры?