Jump to content

MySql Cluster


gbdesign

Recommended Posts

Здравейте колеги, някой правил ли е MySql Cluster? При мен пуснах 1 с 2 лоад балансера, 2 Mysql сървъра и мениджмънтският сървър. Инсталирани са на виртуални машини с прилични ресурси. Интересното е че пробен сайт с немалка база, работи няколко в пъти по-бавно, от колкото с един Mysql сървър на една виртуална машина, с аналогични параметри на тези в клъстера. Та се чудя къде е проблема. Знам че материята е отнесена, но някой може и да се е занимавал...

Link to comment
Share on other sites

  • Administrator

Географската репликация активна ли е?

http://cyrenity.word...nners-tutorial/

http://dbperf.wordpress.com/tag/mysql-cluster-geographical-replication/

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

Нямам идея какво имаш в предвид под "географска репликация"...


root@mysql-mgm:~# ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: localhost:1186

Cluster Configuration

---------------------

[ndbd(NDB)]	 2 node(s)

id=10   @172.16.200.23  (mysql-5.5.27 ndb-7.2.8, Nodegroup: 0)

id=20   @172.16.200.24  (mysql-5.5.27 ndb-7.2.8, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)

id=100  @172.16.200.22  (mysql-5.5.27 ndb-7.2.

[mysqld(API)]   4 node(s)

id=1    @172.16.200.11  (mysql-5.5.27 ndb-7.2.

id=2    @172.16.200.12  (mysql-5.5.27 ndb-7.2.

id=3 (not connected, accepting connect from any host)

id=4 (not connected, accepting connect from any host)

ndb_mgm>

[/code]

Това е активно... в същност всичко си работи ок, но е бавноооо...

Link to comment
Share on other sites

Здравей,

Преди време правих разни опити с клъстер на MySQL. При мен резултата беше подобен на твоя - много по-ниска скорост.

Разбира се, има причини.

Това, което помогна при мен, но остана само теоретично (заради цената):

- Нужни са ти поне 4 нода

- Нужна ти е много рам за нодовете - 12-16GB и нагоре (с по-малко е зор)

- Нужни са ти бързи връзки между нодовете - 1Gbps е минимума (нужна е агрегация на поне 2-4 порта)

- Нужни са SAS-ове в RAID 10 (SSD го забрави, SATA прегрява).

Моите изводи от тестовете са:

- Ако 32 ядра и 256GB стигат за базата - няма нужда от клъстер.

- Ако имаш над 10 милиона транзакции в час, клъстера е решение, но го смятай в отношение поне 1:4 (реална към клъстер машина).

- По-голяма сигурност и лесно надграждане при клъстера.

За по-висока производителност - Percona, TokuDB (и винаги се подразбира 64bit системи)

И малко идеи:

- тествай с по-ниски времена на TimeBetweenGlobalCheckpoint

P.S. Малко дълго стана, но темата е интересна. А ако помогне на някой - още по-добре. :)

Edited by hgd
Link to comment
Share on other sites

  • Administrator

Географската репликация казва на клиент да се обръща към определена база а не към произволна.

Така синхронизацията на базата от входящи заявки и запитване към тях няма да чака синхронизацията.

Или поне такава е идеята.

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

Има само една база за тестовете, така че продължавам да не схващам. Репликация в буквалният смисъл не ползвам. В същност базите си се достъпват от всички MySqld сървъри, а на лод-балансерите се извършва самото синхронно репликиране. Виртуалките са с по 12 Gb RAM и са на общ Софтуерен райд масив, с обикновени SATA III дискове. Всяка от тях е със заделени 2x4 ядра по 2 Ghz. Нямам идея къде може да има тясно място а и нищо не се товари. Всичкото това е на сървър с 2 x 6 ядрени Ксеона. Ползвам KVM виртуализация.

От инсталирана на същият сървър VM със същите параметри, като тези в клъстера, външен Apache сървър си работи съвсем нормално с копие на същата БД.

Edited by gbdesign
Link to comment
Share on other sites

Разгледай този файл, ако не си:

http://www.percona.c...luster_PT_2.pdf

Сега поразгледах за 7.2.x - горещо препоръчват да се направи "ANALYZE TABLE XXX" преди изпълнение на заявките върху съответната таблица. И nbd-cluster-connection-pool трябва да е поне 2 и повече (в my.cnf).

Edited by hgd
Link to comment
Share on other sites

Остави сървъра да работи 24ч. и пусни този скрипт http://mysqltuner.pl/mysqltuner.pl След което си оптимизираш my.cnf

ААА съжалявам. Ти си намерил решение на проблема

Edited by amateur

Всеки може да опикае стените. Ако си мъж осери тавана.

Link to comment
Share on other sites

Не съм намерил решение... В същност, до колкото се разчетох, клъстеризацията на MySql изначало не е правена за Уеб, а за "по-сериозни цели". Тоест, кратките времена за респонс, хич не са гонени. А на мен ми трябва хем високо натоварване, хем скалируемост, хем сигурност, хем бързодействие, като явно за всичкото това, няма решение на база MySQL...

Link to comment
Share on other sites

като явно за всичкото това, няма решение на база MySQL...

Да, така е. Опитай с PostgreSQL и Firebird (по-добре се справя от mySQL при SELECT-и). Oracle и DB2 са доста ресурсоемки (за Informix искат пари ...)

Link to comment
Share on other sites

доста от големите компании ползват mysql без някакви сериозни промени по него, за изключително много заявки за секунда.

Прегледайте си кода, със сигурност с още една абстракция ще може да постигнете желаното и без клъстер ;)

Link to comment
Share on other sites

Кода го пишат десетина програмиста и доста ще се узоря, ако тръгна да го преглеждам. Исках да постигна високо ниво на надеждност, щото при гръмване, по каквато и да било причина на MySQL сървър, ще доведе до внимателно, ръчно преглеждане на многобройни транзакции. Държа да ползвам MySql, защото всички потенциални аномалии свързани с него, вече са се случвали и някой е намерил и публикувал решение на проблема. Пък и миграция към друг БД сървър, ще струва прекалено много излишни пари. SQL Cluster ми изглеждаше перфектният вариант и нямах и най-малка идея, че работи толкова мудно. Една седмица загубих в експерименти с конфигурации, настройки, заделяне на ресурси и резултата винаги беше отчайващ. Като се разтърсих за информация по въпроса, се оказа че това си е "нормално" и решение за ускоряване дефакто няма. Отделно има някакви безумни лимити, като размера на заявката, липса на поддръжка на Foreign keys и т.н.

Та в крайна сметка ще си ползвам обикновени MySQL сървъри, с репликации за бекъпи и ISCSI или DRDB външни сториджи и виртуализация за НА.

Link to comment
Share on other sites

ами попринцип ако сега се прави приложението не е нужно да го преглеждаш, a да се обсъди с програмистите, все пак и те са хора :-)

Ако проекта ще е голям може да разгледаш някое от платените приложения за mysql, там със сигурност ще откриеш каквото търсиш поне като идея

За лимитите не съм съгласен, всички могат да се променят включително размера на заявката и разбира се че има Foreign keys, но не и в myisam

В зависимост какъв тип са данните и как се достъпват се мислят различни тактики, като цяло е трудно да се направи универсална конфигурация валидна за всички случаи, та в този ред на мисли Mysql cluster-а е по подходящ за нещо по общо, отколкото за конкретен проект, където може с голяма точност да профилираш всичко

Link to comment
Share on other sites

Foreign keys, няма в актуалната версия 7.2.8 а ще има в 7.3, когато излезе. Таблици с MyISAM и InoDB енджин, не влизат в клъстера а си седят само на MySQLd сървъра, на който са създадени. Клъстера работи само с таблици с NDBCLUSTER енджин. Миграция към примерно Postgre, ще струва, по груба сметка, към 200 К лв., без да броим пропуснатите ползи от забавяне на проекта... тоест, не е оферта...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.