Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день.
Есть несколько вопросов.
У меня стоит три сервера. На каждом Galera 10. Запускаю скрипт на проверку производительности. он создает 5 миллион записей в таблице. Это занимает некоторое время. До этого теста я специально выключаю одну ноду. И, после запуска теста с интервалом в несколько сек, чтобы уже успели записаться записи в БД я запускаю, ту ноду, которую держал выкл. Она не запустится до тех пор, пока не будет остановлена нагрузка на репликацию. Т.е. если брать это в боевых условиях. Я настроил три сервера. Один сломался, когда я его сделаю, то не смогу подключить к реплике, потому, что она постоянно будет в нагрузке или ждать ночи, когда людей будет мало?
сам скрипт на создание записей:
sysbench --test=oltp --oltp-table-size=5000000 --mysql-db=dbtest --mysql-user=user_test --mysql-password=csoo45968jngRG prepare
ошибка при подключение к уже нагруженной реплике у галеры такова:
service mysql start
[ ok ] Starting MariaDB database server: mysqld . . . . ..
[info] Checking for corrupt, not cleanly closed and upgrade needing tables..
root@host:~# ERROR 1047 (08S01) at line 1: WSREP has not yet prepared node for application use
syslog:
[Warning] WSREP: RBR event 1 Query apply warning: 1, 50412
[Warning] WSREP: Ignoring error for TO isolated action: source: f4b840c5-d0c9-11e5-bc97-8fd627a231f3 version: 3 local: 0 state: APPLYING flags: 321 conn_id: 187 trx_id: -1 seqnos (l: -1, g: 50412, s: 50411, d: 50411, ts: 182337983948901)
Когда отработает скрипт по созданию записей, тогда свободно подключается новая нода(мастер).
Реплика сделана так, что у меня три мастера.
Видимо я не до понимаю, как устроенна эта Galera. Так, что подскажите куда копать.
Неактивен
Насколько я понимаю, у Вас три одинаковых сервера. Если да, то два, на которые Вы пишете, — работают на пике производительности, потому что их sysbench нагружает на 100%. Третьему серверу нужно взять слепок с одного из серверов (это занимает некоторое время) и потом догнать транзакции за это время. А вот догнать он не сможет, потому что мы знаем, что первые два сервера работают на полную мощность, то есть они за это время напишут столько же транзакций.
Просто уменьшите нагрузку при таком тестировании, и случится магия.
Неактивен
Спасибо! ))
А, что можете посоветовать из производительности относительно Галеры?
Неактивен
Меня интересуют UPDATE, INSERT
Неактивен
Если честно, не понял вопроса. Вы имеете в виду, чем нагружать?
Нагружать стоит прямо своим приложением с прогнозируемой нагрузкой. Это идеальный случай. Если вас устроят какие-то абстрактные чиселки, то можно написать программу, которая будет писать абстрактные запросы. Тот же jmeter неплохо должен справляться.
Для решения задачи «поднимется ли третья реплика, если я пишу в первые две», отлично подойдет что-нибудь типа
while true; do mysql -e 'insert into table values (now())' test; sleep 0.1; done
Неактивен
Я имею ввиду, что частыми запросами у меня на сервисе являются те команды. Какие вы можете посоветовать улучшения для галеры. Так как для нее есть специфичные парамметры. Которые скажем подойдут для чистой mysql, но вредными будут для галеры. А, вопрос с поднятием кластера мне понятен теперь. После возникновения ошибки все же запускается галера и проц под 100ню пока не догонит реплику. Потом можно reload бд сделать и все будет норм.
Неактивен
Галера — это только обвязка для упрощения масштабирования. Внизу стоит обычный InnoDB, поэтому все настройки, которые Вы делаете для обычного MySQL, будут работать и для галеры. Из специфичного для галеры, пожалуй, только то, что одновременно писать в несколько мастеров может быть плохо (и снижается производительность, и в более ранних версиях это вызывало проблемы вплоть до падения), писать в один сервер — можно без каких-либо ограничений.
Неактивен