Стоит выносить mysql на отдельный сервер?

12 3
K
На сайте с 12.07.2006
Offline
295
Kpd
8145

Есть сайт (~500 килохитов/сутки) на средненьком дедике (Core 2 Duo E6400 2.13ГГц и т.д.). Всё настроено и работает (тьфу-тьфу-тьфу), но посещаемость постепенно растёт и по моим прогнозам через 3-6 месяцев сервер начнёт захлебываться. Планирую, как буду решать эту проблему. Есть идея вынести mysql на отдельный дедик. Теоретически всё просто - поднять mysql на голом сервере, сделать удаленный доступ и прописать в скриптах адрес нового сервера. Но что получится на практике? Если предположить, что второй сервер будет стоять в той же стойке, то какую задержку будет давать TCP/IP ? Есть какие-нибудь другие (бюджетные) способы соединения серверов?

З.Ы. nginx+fastcgi+memcached уже используются, возможностей для внутренней оптимизации мало.

V
На сайте с 05.08.2007
Offline
87
#1

Kpd, как по мне, ~500 килохитов/сутки для Вашего дедика - не такая уж и большая нагрузка, хотя, наверно, много зависит от конкретной ситуации.

1) У Вас сейчас основную долю в нагрузку вносит MySQL?

2) Кеширование nginx уже настроено и используется на все 100%?

С уважением, Victor (http://adm-lib.ru)
L1
На сайте с 13.10.2009
Offline
23
#2

mysql стоит переносить в первую очередь если дисковая система не справляется с нагрузкой, которою дает сервер БД. Возможно у вас в основном скрипты загружают процессор, а не БД дисковую систему. Хотя если вынести mysql на второй сервер - результат будет заметен. Бюджетней варианта видимо нет. Есть много хостеров которые так и используют БД на отдельном сервере, по обычному каналу.

K
На сайте с 12.07.2006
Offline
295
Kpd
#3
VGrey:
1) У Вас сейчас основную долю в нагрузку вносит MySQL?

mysql и php примерно 50/50 (есть несколько экзотических библиотек, которые хорошо грузят процессор).

VGrey:
2) Кеширование nginx уже настроено и используется на все 100%?

В смысле кэширование картинок? Вообще не использую, но сомневаюсь что это даст заметный эффект (основную нагрузку на диск создает большая база данных).

local123:
Есть много хостеров которые так и используют БД на отдельном сервере, по обычному каналу.

В абсолютных цифрах сколько времени тратится на обмен пакетами (например, скрипт выполняет 15 запросов к базе данных)?

M
На сайте с 28.02.2006
Offline
236
#4

У меня один проект через Round robin работает. Нагрузка делится примерно поровну. Раньше тоже хотел один сервер под базу выделить, но склонился все таки к Round robin. Хотя конечно зависит от ситуации.

K
На сайте с 12.07.2006
Offline
295
Kpd
#5
mihas:
У меня один проект через Round robin работает. Нагрузка делится примерно поровну.

Смутно представляю, что это такое. У вас два сервера с одинаковым контентом? Как происходит синхронизация, например, почты?

pupseg
На сайте с 14.05.2010
Offline
364
#6

у меня работает на соседнем.

без всяких проблем.

в стойке 11 серверов и гиговый коммутатор между ними.

LVS

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

рано или поздно вам это делать придется все равно

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
K
На сайте с 12.07.2006
Offline
295
Kpd
#7
pupseg:
mysql на отдельном сервере, задержек и проблем не наблюдается.

Можете в абсолютных цифрах сказать? На сколько милисекунд дольше проходит запрос к соседнему серверу, по сравнению с localhost (без учета что на соседнем сервере mysql отработает быстрее).

V
На сайте с 05.08.2007
Offline
87
#8
Kpd:

В смысле кэширование картинок? Вообще не использую, но сомневаюсь что это даст заметный эффект (основную нагрузку на диск создает большая база данных).

Нет, я имел ввиду не отдачу статики средствами nginx, что тоже дает какие-то крохи, а именно кеширование, смотрите http://dklab.ru/chicken/nablas/56.html.

Kpd:
В абсолютных цифрах сколько времени тратится на обмен пакетами (например, скрипт выполняет 15 запросов к базе данных)?

В интернете упорно ходит мысль о том, что использование MqSQL через сокет на процентов 10 быстрее, чем через сеть, возможно, со ссылкой на сайт mysql. Даже, если реально цифра потери производительности несколько меньше, ее не стоит сбрасывать со счетов. С учетом этого Round robin выглядит предпочтительнее по производительности. Плюс надежность, что тоже немаловажно.

M
На сайте с 28.02.2006
Offline
236
#9
Kpd:
Смутно представляю, что это такое. У вас два сервера с одинаковым контентом? Как происходит синхронизация, например, почты?

2 сервера с одинаковым контентом, синхронизация по rsync. Почта и база на одном сервере находятся.

zexis
На сайте с 09.08.2005
Offline
388
#10

Сейчас один сайт с посещаемостью 1-1,5 миллина хитов в сутки работает на одном сервере.

Торможений нет.

Сервер 3-х летней давности, но очень мощный.

2-х процессорный Xeon 5140 2.33GHz

8 Гб ram.

Диски SAS 15 000 об/мин в 10-м рейде.

Рекомендую.

1) Если есть возможность то MySQL держать на том же сервере, что и PHP, так как меньше задержки пересылки данных между MySQL и PHP.

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

3) Оптимизируйте запросы к mysql и структуру таблиц mysql. Делайте кеширование сайта в виде статических HTML страниц, обновляемых через определенный период времени. – Это даст больший выигрыш в производительности, чем апгрейд железа.

12 3

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