mysql

1 234 5
Himiko
На сайте с 28.08.2008
Offline
560
#21
Andreyka:
Снимает 10-15% wa

Т.е. для MySQL лучше всё же SSD ?

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#22

А разве он не умрет быстро от перезаписи?

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
Nikolai Sokolov
На сайте с 13.03.2008
Offline
65
#23
Boris A Dolgov:
А разве он не умрет быстро от перезаписи?

Теоретически если писать в одно и то же место то может и умрет. Но контроллер будет писать всегда в разные области с чем и связано падение производительности на запись а особенно маленьких блоков.

Используя наши услуги, сервисы, оборудование и опыт работы в области информационных технологий (веб-хостинг) поможем в продвиженни вашего бизнеса www.servervk.eu (http://servervk.eu)
N
На сайте с 06.05.2007
Offline
419
#24
У дисков SSD скорость чтения просто потрясающая но скорость записи маленького блока куда-то в средину диска занимает в 10 раз больше времени поскольку блок для начала нужно очистить.

сравнительно чтения на том же SSD?

забываете, что запись на обычном HDD это тоже позиционирование и запись. Так что за счет быстрого позиционирования запись будет вполне себе быстрой по сравнению с HDD. Насчет 10 раз не уверен.

Да и SSD довольно разные на рынке.

Кнопка вызова админа ()
Nikolai Sokolov
На сайте с 13.03.2008
Offline
65
#25

У SSD запись будет быстрее чем на обыкновенный HDD. Но что мы выигрываем используя SSD с плохим временем на запись? Несколько процентов производительности? Затрачивая много денег на покупку памяти.

Смысл брать SSD есть только тогда, когда у них ОЧЕНЬ хорошая скорость на запись (а такие в продаже есть). Тогда можно поставить хороший процессор, всего 1-2 ГБ памяти и SSD.

Мы то хотим не просто потратить деньги а решить поставленную задачу...

Himiko
На сайте с 28.08.2008
Offline
560
#26

И снова я по поводу репликации :)

В общем. Как вариант, придумали схему такую:

2 сервера в режиме "мастер" <-> "мастер". Писать будем одновременно только на один диск, а читать с обоих.

Дополнительно можно будет подключать slave-сервера, если потребуется. (это не суть).

Разделять можно через haproxy. 2 разных порта для чтения и для записи.

1. Запись (к примеру, порт 3301) - указаны 2 mysql-сервера, но один из них "backup", на который запись пойдёт только после падения первого.

2. Чтение (к примеру, порт 3302) - указаны 2 mysql-сервера и балансировка roundrobin.

Теперь есть момент, как собрать чтение/запись на одном порту и распределять в зависимости от запросов.

Нашёл такую штуку, как sqlrelay. Оно умеет раскидывать на разные mysql-сервера, в зависимости от запроса. Т.е. связка sqlrelay + haproxy вполне показалась нормальной. sqlrelay только распределяет, на haproxy уже балансирует и отказоустойчивость обеспечивает.

Т.е. клиент подключается к порту sqlrelay (скажем 3306), а sqlrelay (в зависимости от запроса, на чтение он или на запись) перекидывает к haproxy либо на порт 3301 (для записи), либо на 3302 (для чтения)

Но не совсем понятно, как работает sqlrelay. Там зачем-то указываются свои юзеры для доступа и самое главное (что смутило) - это доступ к mysql-серверам и зачем-то база(!).

Может у кого-то есть опыт работы с sqlrelay или для данной цели может посоветовать что-то другое?

N
На сайте с 06.05.2007
Offline
419
#27

Himiko, почему не mysql-proxy ?

из-за отставания репликации, в общем случае, рискованно распределять запросы просто так без знания специфики приложения.

так что лучше иметь возможность воздействовать на запросы более гибко, как в mysql-proxy.

Himiko
На сайте с 28.08.2008
Offline
560
#28
netwind:
Himiko, почему не mysql-proxy ?
из-за отставания репликации, в общем случае, рискованно распределять запросы просто так без знания специфики приложения.
так что лучше иметь возможность воздействовать на запросы более гибко, как в mysql-proxy.

1. mysql-proxy не умеет разделять чтение/запись. Ей только можно указать несколько серверов только для чтения, но никогда на них она писать не начнёт. И нет понятия "бэкапный сервер", на который пойдёт запись ТОЛЬКО в случае падения основного.

Плюс под mysql-proxy всё на lua-скриптах, которые сами с кучей багов. Не хотелось бы из-за опечатки в программе поймать геморрой. haproxy всё нужное умеет "из коробки".

2. sqlrelay может легко раскидывать запросы по любому признаку. haproxy никогда не будет писать на сервер с пометкой backup, кроме случая падения основного сервера + у haproxy гибкая web-статистика и можно проводить тесты на одном mysql-сервере на разных портах haproxy, чтобы смотреть, куда пошёл запрос.

Ну и haproxy умеет обалденно определять доступность сервисов сама + через мной написанный скрипт.

3. В смысле "отсутствие репликации"? Сервера будут master <-> master и реплицировать друг на друга. Точнее всегда будут работать как master -> slave, но легко меняться ролями, если запросы начнут идти на другой master при проблемах первого.

P.S.: При первом же тесте mysql-proxy завалилась с кучей ошибок и только после обновления с каким-то багфиксом стала работать :)

Сейчас главный вопрос: С помощью какого ПО можно проксировать запросы на разные порты в зависимости от того, на чтение он или на запись. Нужно просто ТУПОЕ проксирование. Остальное будет делать haproxy.

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#29

master-master ведет к проблемам, просто поверьте.

mysqlproxy, вроде бы, умеет брать обработчик на lua и в зависимости от него обрабатывать запрос.

Himiko
На сайте с 28.08.2008
Offline
560
#30
Boris A Dolgov:
master-master ведет к проблемам, просто поверьте.

mysqlproxy, вроде бы, умеет брать обработчик на lua и в зависимости от него обрабатывать запрос.

1. Не ведёт, если не писать на оба диска одновременно. Он просто будут настроены как master <-> master, но работать всегда будут как master -> slave. Master <-> master нужно, чтобы менять роли без телодвижений

2. Это скорее бага, чем фича. Куча непонятных кривых скриптов, которые иногда стегают. Не хочется ещё код писать и тестировать... или тем более не хочется брать чужие.

Хотя, если просто как-то заставить идти на определённый порт в зависимости от запроса, то может прокатить связка mysql-proxy + haproxy. Хотя не хочется громоздить.

1 234 5

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий