Добавление процессоров снижает производительность MySQL 5.5 (Debian)

8

Я собираюсь настроить сервер базы данных (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 будет работать хуже, когда мы добавляем процессоры?

Greendrake
источник
Конфликт ресурсов может быть здесь. У вас есть много других виртуальных серверов / контейнеров, работающих на этом хосте? Возможно ли, что физические процессоры были загружены во время вашего теста установки Debian?
черный свет
Результаты были / вполне воспроизводимы. Это был мой собственный голый металлический сервер, и я не загружал его ничем другим во время теста.
Гриндрейк
Я имею в виду, конечно, на сервере было несколько других виртуальных машин, но они работали на холостом ходу.
Greendrake
Я бы сказал ядро, но оно одинаковое ... Не могли бы вы попробовать использовать одну и ту же версию в обеих системах?
miniBill
один другой, debian использует eglibc en.wikipedia.org/wiki/Embedded_GLIBC , возможно, это не проблема
c4f4t0r

Ответы:

1

Что ж, это действительно главный вопрос, не зная сначала что-то об архитектуре, которую вы используете ... но, как правило, экспоненциальный удар по пропускной способности шины при добавлении процессорной мощности, особенно архитектуры, которая поддерживает несколько многоядерных процессоров, просто остановитесь и подумайте немного последствия для цикла прерываний при любом установленном ограничении пропускной способности шины ... в любом случае производительности ... понимая, что ваша архитектура будет либо узким местом ввода-вывода, либо битами на цикл, снова имейте в виду, что для нескольких процессоров требуется многопоточность ... поэтому независимо от скорости вашей FSB ... если у вас аппаратное обеспечение только 64-битное, то физическое электрическое соединение должно будет разделить это ограничение на столько ядер в одном такте ...Теперь остановитесь и подумайте о положительных последствиях перехода с 64-разрядной системной платы на 256-разрядную. При полном наклоне пропускная способность может увеличиться в 3 раза, учитывая, что x1 будет потрачен на многопоточность / поддержание накладных расходов на работу. Однако во время обычных операций могут возникнуть неудобная реальность, связанная с накладными расходами, когда вам нужен только один процессор / оператор. Я думаю, это уравновешивающее действие или, точнее, правильная лошадь для правильного курса. Steveo Reedo nextfriend@live.co.ukЯ думаю, это уравновешивание или, точнее, правильная лошадь для правильного курса. Steveo Reedo nextfriend@live.co.ukЯ думаю, это уравновешивание или, точнее, правильная лошадь для правильного курса. Steveo Reedo nextfriend@live.co.uk

user37008
источник
0

Когда вы добавляете процессоры, эта вещь будет выполнять больше операций параллельно. Если вы не увеличили количество ОЗУ, то может произойти подкачка, особенно если вы используете более толстую (а в большинстве случаев более толстую) версию тестируемого программного обеспечения.

Торстен Стэрк
источник