Репликация

12
DriverCat
На сайте с 10.04.2008
Offline
116
640

Добрый день! На серваке крутится много фоновых тяжелых задач. Такие задачи обновляют таблицы MySQL, а также создают и изменяют изображения.

Есть мысль постепенно такие задачи уводить на другие сервера. Но для меня это абсолютно новая степь. Я так понимаю нужно делать репликацию MySQL? Можно ли реплицировать не всю БД, а некоторые таблицы? А как тогда передавать файлы на основной сервер? Поделитесь мыслями, у кого есть опыт!

adel92
На сайте с 04.01.2012
Offline
334
#1

Репликация это несколько другое.

Вы хотите просто MySQL на отдельный сервер перенести? А точнее несколько таблиц?

NVMe VDS (https://well-web.net/nvme-vps) с поддержкой 24/7 - от 545 руб.! Безлимитный хостинг (https://well-web.net/ssd-hosting) - от 129 руб.! Домен в подарок! Перенос бесплатно! Заказывайте сейчас, и получите скидку 50%! Заходи! (https://well-web.net/limited-offers)
Aisamiery
На сайте с 12.04.2015
Offline
305
#2

Репликация это полный аналог, и нагрузка на мастер равна нагрузка на слейв.

То есть если у вас в мастер выполнится 1000 запросов на запись/изменение, то все эти запросы выполнятся и на всех слейвах если у вас MySQL конечно. Реплики используются для чтения, например когда у вас идет 1000 запросов на чтение в секунду и 1 запрос на запись, тогда эту 1000 запросов можно раскидать на несколько серверов, задачи на запись не распарралелить в MySQL, у PostgreSQL репликация бинарная, там такое прокатит.

Вам надо смотреть и гуглить в сторону RabbitMQ

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
DriverCat
На сайте с 10.04.2008
Offline
116
#3

Есть скрипт, который делает много запросов к базе MySQL и сильно нагружает ее. Я думал как-то перенести его на другой сервак, но этот скрипт должен работать всегда со свежей инфой, которая на основном сервере. Также, результаты выполнения этого скрипта должны обновлять и базу на основном сервере. Получается, на двух серверах должны быть всегда актуальные данные.

---------- Добавлено 02.06.2017 в 16:02 ----------

А как же мне тогда быть? Фоновый скрипт дает основную нагрузку записью в таблицу, поэтому чтение медленнее происходит. Хотел вынести запись как раз. Получается надо крутое железо покупать?

Aisamiery
На сайте с 12.04.2015
Offline
305
#4
DriverCat:
Есть скрипт, который делает много запросов к базе MySQL и сильно нагружает ее. Я думал как-то перенести его на другой сервак, но этот скрипт должен работать всегда со свежей инфой, которая на основном сервере. Также, результаты выполнения этого скрипта должны обновлять и базу на основном сервере. Получается, на двух серверах должны быть всегда актуальные данные.

---------- Добавлено 02.06.2017 в 16:02 ----------

А как же мне тогда быть? Фоновый скрипт дает основную нагрузку записью в таблицу, поэтому чтение медленнее происходит. Хотел вынести запись как раз. Получается надо крутое железо покупать?

Чтож это за скрипт такой, а железку по мощнее? А оптимизировать структуру, оптимизировать запрос? Нагрузка при записи обычно создается за счет перестраивания индексов, побольше оперативки, потоньше настройки, отключить запись в лог и отдать это на откуп системе. Вообщем пошаманить и скрипт тормознуть, ну либо научить его работать с другой БД. Например NoSQL какой или с тем же Tarantool. То есть я к тому, что либо у вас железка слабая для такой задачи, либо инструменты не правильно подобраны, ну либо банально код кривой. Просто ложить MySQL это надо постараться)))

DriverCat
На сайте с 10.04.2008
Offline
116
#5
Aisamiery:
Чтож это за скрипт такой, а железку по мощнее? А оптимизировать структуру, оптимизировать запрос? Нагрузка при записи обычно создается за счет перестраивания индексов, побольше оперативки, потоньше настройки, отключить запись в лог и отдать это на откуп системе. Вообщем пошаманить и скрипт тормознуть, ну либо научить его работать с другой БД. Например NoSQL какой или с тем же Tarantool. То есть я к тому, что либо у вас железка слабая для такой задачи, либо инструменты не правильно подобраны, ну либо банально код кривой. Просто ложить MySQL это надо постараться)))

Спасибо, будем думать! Подскажите, а какой CPU лучше брать - с более высокой частотой или с большим количеством ядер?

adel92
На сайте с 04.01.2012
Offline
334
#6

Наиболее оптимально попробовать взять сначала SSD. Возможно этого будет достаточно.

Он дает серьезную прибавку в производительности.

Так же можно попробовать отдельный VPS или сервер исключительно для БД и подключаться к ней удаленно. Таким образом один сервер будет обрабатывать только мускл а второй все остальное.

Это из наиболее простых способов.

DriverCat
На сайте с 10.04.2008
Offline
116
#7
adel92:
Наиболее оптимально попробовать взять сначала SSD. Возможно этого будет достаточно.
Он дает серьезную прибавку в производительности.

Так же можно попробовать отдельный VPS или сервер исключительно для БД и подключаться к ней удаленно. Таким образом один сервер будет обрабатывать только мускл а второй все остальное.

Это из наиболее простых способов.

Про отдельный сервер для базы хорошая мысль, спасибо! А на SSD рейды можно сделать?

TF-Studio
На сайте с 17.08.2010
Offline
334
#8
Подскажите, а какой CPU лучше брать - с более высокой частотой или с большим количеством ядер?

если скрипт в 1 поток -то частота

если потоков много - то ядер больше.

но это в теории, там затык вообще не в этом может быть

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
adel92
На сайте с 04.01.2012
Offline
334
#9
Про отдельный сервер для базы хорошая мысль, спасибо! А на SSD рейды можно сделать?

Да разумеется. Чаще всего достаточно 1-го. 10-й особого прироста производительности не дает.

Рекомендую не горячится и не брать сразу дедик, а попробовать VPS. Там тоже чаще всего SSD и если там будет только БД - то проблем по идее, быть не должно. Вынесите БД на VPS и посмотрите нагрузку.

mendel
На сайте с 06.03.2008
Offline
232
#10

Опишите в общих чертах суть фоновой задачи.

Вполне вероятно что кто-то сходу увидит слабое место которое можно просто допилить.

Добавить/убрать индексы уже предлагали. Может блокировки тормозят.

Дисковая подсистема да, слабое место.

Но чую у вас что-то не так в консерватории.

Шутку любишь над Фомой, так люби и над собой. (с) народ. Бесплатные списки читабельных(!) свободных доменов (http://burzhu.net/showthread.php?t=2976) (5L.com) Сайты, All inclusive. 5* (/ru/forum/962215)
12

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