Выбор сервера(-ов): ставить MySQL на отдельный сервер или нет?

12 3
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
3775

Уважаемые форумчане, прошу Вас помочь в теоретическом решении возникшего вопроса.

На данный момент необходимо определиться с железом, и с тем, как оно будет связано(а может и не будет).

Варианты которые рассматриваем мы:

Вариант №1(1 сервер под все службы):

-----Процессор: 2шт 6-core Intel Xeon E5-2620V2(НТ)

-----RAM: 32GB/64GB

-----Диски: 4 х SAS 15k 300GB в RAID 10 аппаратный

Вариант №2(2 сервера):

-----1-ый сервер(чисто под MySQL):

----------Процессор: 6-core Intel Xeon E5-2620V2(НТ)

----------RAM: 16GB/32GB

----------Диски: 2 х SAS 15k 300GB в RAID 1 аппаратный

-----2-ой сервер(под все остальные службы):

----------B]Процессор: 6-core Intel Xeon E5-2620V2(НТ)

----------RAM: 16GB/32GB

----------Диски: 2 х SAS 15k 300GB в RAID 1 аппаратный

-----2 сервера будут соединены по локалке на скорости 1Гбит/сек.

Чем это все навеяно...

-----1) Человек(Evas) с форума подсказал, что есть плюсы(быстродействие) при реализации варианта№2.

-----2) Знание проекта позволяет мне предположить(?), что мускул хавает ресурсов больше чем все остальные службы вместе взятые, ну или столько же(то есть 50% мускул).

-----(?) - конечно, хотелось бы конкретики. Например кол-во потраченных ресурсов(процессор, RAM, пиковая нагрузка и т.д.) каждым процессом за сутки. Evas мне показал команду top, но она показывает в реал-тайме.

Ну а пока(надеюсь кто-нибудь добрый человек подскажет, как эти статистические данные добыть) нет конкретных данных, давайте предположим 3 возможных варианта:

-----1) MySQL кушает 25% от общего кол-ва потребленных ресурсов

-----2) MySQL кушает 50% от общего кол-ва потребленных ресурсов

-----3) MySQL кушает 75% от общего кол-ва потребленных ресурсов

вопрос№1:

-----Если рассматривать 3 вышеописанных случая, то в каком из них логичней/полезней/правильней использовать вариант№1, а в каком вариант№2?

вопрос№2:)

-----I) Насколько это логично, учитывая тот факт, что вариант№2 будет стоить дороже процентов на 30-50?

-----II) Что мы получим(плюсы и минусы) при реализации варианта№1 и варианта№2?

вопрос№3:)

-----1) Как узнать сколько в сутки на диск записано и сколько прочитано, ну или сколько было операций записи/чтения. От этого зависит будем ли выбирать для варианта№1 между RAID10 и RAID15, и для варианта№2 между RAID1 и RAID5, или же остановимся на RAID10 и RAID1 соответственно.

Если написано сумбурно и непонятно - поймите, простите, задавайте вопросы;)

Всем заранее большое спасибо за участие в дискуссии:beer:

Подпись))
zexis
На сайте с 09.08.2005
Offline
388
#1

Если для mysql использовать отдельный сервер, то возникают минусы.

1) Между серверами скорость обмена данными значительно ниже, чем при запросах к mysql на этом же сервере.

2) При использовании 2-х серверов в 2 раза снижается надежность системы.

Если есть возможность, то лучше все держать на одном мощном сервере, чем на нескольких слабых.

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#2

Я лично за 1 мощный сервер.

И не нужно гнаться, чтобы всё было в RAID.

Я конечно со своим взглядом. Но если уж база нужно так сильно использовать, то лучше на отдельный диск её скоростной на том же сервере.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
N
На сайте с 06.05.2007
Offline
419
#3

Почему же текущую конфигурацию и уже замеченные узкие места не описали ?

Так-то гадать и теоретизировать можно очень долго.

Если mysql вытащить на отдельный том lvm, то такие программы как munin,atop,iostat покажут оценку загруженности очереди (Disk utilization) тома в процентах от 100. Начиная с каких-то версий ядра появились счетчики очереди не только на физические устройства, но и по томам. Только ядро нужно не очень старое. Можно ли этим цифрам доверять? Сам точно не знаю.

Если вообще все на LVM лежит, а части сайта разложены по отдельным томам, то можно сравнивать эти цифры друг с другом и делать вывод о относительной доли того или иного компонента в общей нагрузке на диск.

LEOnidUKG:
Я конечно со своим взглядом. Но если уж база нужно так сильно использовать, то лучше на отдельный диск её скоростной на том же сервере.

Для "среднестатистического веба" - один из самых выгодных вариантов. Не жрет mysql обычно много процессорного времени процессора. А вот большое количество простых и мелких запросов случается. Загрузку процессора вы легко оцените через top. Или лучше atop в режиме просмотра истории.

Кнопка вызова админа ()
[umka]
На сайте с 25.05.2008
Offline
456
#4

Два сервера — в два раза больше точек отказа.

Два сервера потребуют от вас в два раза больше внимания.

Нельзя будет отдать 100% вычислительной мощности MySQL-ю, в случае необходимости поворочать что-то тяжёлое.

И, как верно было замечено, unix-сокеты работают гораздо быстрее TCP, и прирост производительности, скорее всего, будет отрицательный.

Лог в помощь!
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#5

zexis, спасибо за уделенное время.

Леня, не тока база, но и сервер в целом должны жить. Час простоя сайта = ущерб 300$+ для нашей кампании в целом. Про потерю данных вообще молчу - это ппц как критично, поэтому решили делать 100500 бэкапов на разные сервера.

netwind:
Почему же текущую конфигурацию и уже замеченные узкие места не описали?

Сейчас узких мест нету(все запросы к БД оптимизированы). Любой из запросов на сайте выполняется не более 0.1 секунды. В совокупности любая страница открывается максимум за 0.5(редко при нагрузках) секунд.

Вот конфиг текущий

Процессор:Intel® Core™ i3-2130 4x3.4Ghz (HT)

Индекс производительности процессора: 4016

Память: 16 Gb

Диск: 2x750GB

Канал: до 1Gbit/s

Разрядность ОС:64 Bit

Операционная система:CentOS 6.x

В принципе, во 2-ой версии скрипта(то, для чего берем новый сервер) еще больше оптимизации нежели в первой(текущей) версии.

Единственный момент: после запуска v2 мы выйдем в паблик и нагрузка увеличиться в разы, отсюда и опасения. ну и соответственно если сейчас час простоя = 300$, то дальше будет этот показатель только расти.

netwind, как это вытащить в lvm?

[umka], спасибо!

Ну и еще 1 вопрос публике: лучше РЕЙД10 или РЕЙД15(переплата на 120$ в месяц)?

T
На сайте с 11.08.2005
Offline
181
#6

Мой админ, чтобы побыстрее БД работала, для БД создал виртуальный диск в памяти и все запросы идут к нему + репликация на физический диск.

На практике были проблемы в начале, но сейчас все шустро и стабильно.

И да, я тоже за один сервер, если можно им обойтись...

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#7

Timen, спасибо. Скажите пожалуйста, репликация идет в режиме реал-тайм, или с каким-то интервалом? Также интересует объем Вашей БД и RAM'ки, ну и загруженность.

У нас на данный момент база 2Гб+

Из 64Гб оперативы можно будет половину отдавать базе?

N
На сайте с 06.05.2007
Offline
419
#8
Милованов Ю.С:
netwind, как это вытащить в lvm?

Ясно. Вам это не нужно.

[umka]
На сайте с 25.05.2008
Offline
456
#9
Милованов Ю.С:

Ну и еще 1 вопрос публике: лучше РЕЙД10 или РЕЙД15(переплата на 120$ в месяц)?

"Лучше" для чего?

Не бывает лучше сразу для всего.

RAID 1+0 лучше для производительности, RAID 1+5 лучше для кошелька.

T
На сайте с 11.08.2005
Offline
181
#10
Милованов Ю.С:
Timen, спасибо. Скажите пожалуйста, репликация идет в режиме реал-тайм

Вроде как в реальном времени, не вникал... Мне не критична потеря последних данных (которые не успели записаться на физический диск - речь о данных за 1-2 мин). На практике скажу, что потери были в самом начале, когда, как оказалось, возникли проблемы с БП нового сервера.

Памяти в моих серверах, по 16Гб, БД около 4-5Гб. Сколько точно выделено для виртуалки не знаю, не вникал...

В такой конфиг. работет 2 сервера больше года.

БД крутится очень быстро!

12 3

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