2017-01-12 25 views
0

Я получаю неприемлемую низкую производительность при настройке galera, которую я создал. В моей установке есть 2 узла в активном активном состоянии, и я делаю чтение/запись на обоих узлах циклическим способом с использованием балансировщика нагрузки HA-proxy.Получение очень плохой производительности с galera по сравнению с автономным сервером mariaDB

я легко смог получить более 10000 TPS на моем приложении с одним сервером MariaDB с приведенной ниже конфигурации: 36 vpcu, 60 Гб оперативной памяти, SSD, 10Gig посвященный трубы

С Галера я вряд ли получать 3500 TPS, хотя я использую 2 узла (36vcpu, 60 GB RAM) нагрузки DB, сбалансированные ha-proxy. Для информации ha-proxy размещается как отдельный узел на другом сервере. На данный момент я удалил ha-proxy, но улучшения в производительности нет.

Может кто-нибудь, пожалуйста, предложите некоторые параметры настройки в my.cnf, я должен подумать, чтобы настроить эту строго неудовлетворительную настройку.

Я использую ниже my.cnf файл:

enter image description here

enter image description here

+0

Прежде всего, этот вопрос должен быть на dba.stackexchange.com. Кроме того, было бы проще рассказать нам о вашей конфигурации чем перечислять все возможные общие рекомендации по производительности. Как правило, кластер galera будет иметь более медленную производительность записи/транзакции, чем один экземпляр (поскольку узлы должны обмениваться данными). 35% ниже ожидаемого, но это зависит от того, что вы на самом деле делаете (дизайн таблицы/запросы), чтобы сказать, что это что-то в конфигурации или нет. Также имейте в виду, что кластер с двумя узлами фактически увеличивает вероятность отказа кластера (потому что, если какой-либо из этих двух сбоев, оба отказались). – Solarflare

+0

Спасибо Solarflare, опубликуйте это на dba.stackexchange.com. Также я предоставляю свои параметры my.cnf в вопросе. – LakshayK

ответ

0

Выключите QC:

query_cache_size = 0 -- not 22 bytes 
query_cache_type = OFF -- QC is incompatible with Galera 

Увеличить innodb_io_capacity

Как далеко друг от друга (время ping) являются t wo узлы?

Предложите вам притвориться, что это Мастер-раб. То есть, HAProxy отправляет весь трафик на один узел, оставив другой в качестве горячей резервной копии. В этом режиме некоторые вещи могут работать быстрее; Я не знаю о вашем приложении.

+0

Hi rick, узлы находятся в пределах одного и того же vpc и тех же подсети, и я думаю, что время ping составляет менее 50 мс. Единственная цель для использования galera - проверить, могу ли я использовать процессор обеих машин, сохраняя общие данные, чтобы мое приложение могло читать и писать практически на одном наборе данных. У меня такое чувство, что галера может быть не лучшим вариантом для меня. Как вы думаете? Любые предложения, как насчет NDB? – LakshayK

+0

50 мс составляет около 1500 миль/2500 км. 50 мс заметно снизит производительность. Вы на самом деле потребляли более половины ядер на одной машине? И имейте в виду, что при обработке процессоров требуется обработка репликации на принимающей стороне. –

+0

В NDB есть много других проблем, в том числе нетривиальные изменения в том, что может/не может быть выполнено в SQL. –

2

я легко смог получить более 10000 TPS на моем приложении с одного сервером MariaDB с приведенной ниже конфигурацией: 36 vpcu, 60 Гб RAM, SSD, 10Gig посвященных труб

С Галерой я нахожусь вряд ли получаю 3500 TPS, хотя я использую 2 узлов (36vcpu, 60 GB RAM) нагрузки БД, сбалансированной га-прокси.

Кластеры, основанные на Galera, не предназначены для масштабирования, как я вижу, вы намерены делать; Фактически, как упомянул Рик: отправка записей в несколько узлов для одних и тех же таблиц приведет к конфликтам сертификации, которые будут отражаться как взаимоблокировки для вашего приложения, что добавит огромные накладные расходы.

Я получаю неприемлемую низкую производительность при настройке galera i . В моей установке есть 2 узла в активном активном состоянии, и я делаю чтение/запись на обоих узлах круговым способом с использованием HA-proxy балансировки нагрузки.

Пожалуйста, отправьте все записи на один узел и проверьте, улучшает ли он их; Из-за характера практически синхронной репликации, которую использует Galera, всегда будут накладные расходы, что буквально добавляет сетевые издержки для каждой записи, которую вы выполняете (хотя истинная параллельная репликация на основе часов будет компенсировать это влияние совсем немного, но вы обязаны см. несколько более низкие объемы пропускной способности).

Также убедитесь, что ваши транзакции коротки и COMMIT, как только вы закончите с атомной единицей работы, поскольку процесс сертификации репликации является однопоточным и будет останавливаться на других узлах (если вы видите, что ваш узел записи показывает транзакции wsrep pre-commit stage, что означает, что другие узлы выполняют сертификацию для большой транзакции или что узел испытывает проблемы с производительностью какого-то типа - сбрасывание, полный диск, чрезмерно большие чтения и т.д.

Надеюсь, что помогает, и дайте нам знать, как это происходит при переходе на один узел.

+0

действительно на [странице продукта веб-сайта galera cluster] (http://galeracluster.com/products/), они ясно дают понять, что теперь он предназначен для масштабирования записей –

 Смежные вопросы

  • Нет связанных вопросов^_^