|
|
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Народ, приветствую! У меня есть такой вопрос. Какая архитектура даст лучшую производительность для работы веб-сайта? Первый вариант. Имеем два сервера на каждом стоит стандартный пакет, типа apache, php, mysql. Сервера синхронизированы rsync-ом (причем, в целом, такая синхронизация даже и не требуется, т.е. контет, касательно файлов, в целом, неизменен) и базы mysql настроены по схеме master-master реплткации (а здесь идет постоянное изменение). Все это дело работает через балансер, т.е. 50% запросов идет на один сервер 50 - на другой. Второй вариант. Имеем те же два сервера. Но apache с сайтом сложены на одном сервере, а mysql вынесен на другой. Я понимаю, что при средних настройках второй вариант как бы стабильней. Меня интересует исключительно производительность таких конфигураций. Для конкретизации условий, если кому надо. Примем Linux CentOS. Ну и все вместе с железом пусть будет таким, что если взять просто один сервер, обслужтвающий работу веб-сайта, то при нагрузке, сажем, в 100 одновременно подключеных пользователей возникает перегрузка mysql. Вот для этой сотни какая схема даст лучшие показатели производительности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 22:54 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Считай так: Х пользователей в любом случае сожрут все ресурсы обеих серверов. Но в первом случае с ними будет конкурировать ещё и репликация. Т.е. Х1+репликация = Х2. Отсюда следует, что Х1 < Х2 без вариантов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 23:08 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Кстати, во втором варианте не нужен балансировщик. Но не угадаешь, что загнется раньше - вебсервер или мускуль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 23:12 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Спасибо Dimitry! Быстро и по делу. Принял к сведению. Но, извини не все тонкости работы сервера пока просекаю сразу, можешь добавить пару слов про то, почему X съедают все ресурсы. Ведь при X/2 сервер летает, а при X уже падает. Извини, если вопрос глупо звучит - учусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 23:20 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
almav X съедают все ресурсы Я имел вводу X1=X/2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 23:23 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
vkleНо не угадаешь, что загнется раньше - вебсервер или мускуль. Зато и наращивать ресурсы им можно независимо. Как говорится в классике: "буде мало - добавить, лишко - отрезать". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 23:42 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
и еще репликация master-mastre в MySQL является "грязным хаком", официально она не поддерживается. Оно конечно работает какое-то время, но до первого мало мальски значимого сбоя. После чего идет рассинхронизация баз. Поэтому рекомендую либо искать другие СУБД, либо сменить схему работы с MySQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 10:07 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Для небольшой-средней посещаемости второй тип архитектуры предпочтительнее, имхо. В плюсах независимое наращивание мощностей при желании, возможность тонко настраивать ОС относительно специфики сервера, отсутствие накладных расходов на репликацию и отсутствие потенциальных косяков с Master<-->Master (говорят это вообще фиговая идея на MySQL) Первых подход же будет правильным если вы целитесь на очень хайлоад, т.к. возможно потом будет трудно перестроиться. но тут нужно подумать не сменить ли MySQL на какую-нить перкону, марию или постгрес. Не холивара ради, сам люблю мускуль. У меня как раз по второму сценарию работает динамический сайтик на 150к хитов в сутки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 10:13 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Третий вариант, вообще-то. Когда у тебя два сервера, они разделены между пользователями. Грубо говоря - все четные пользоователи идут на сервер2, нечетные - на сервер1 Базы данных две (по два инстанса на сервер), и они настроены в режиме master-slave. Чем меньше межсетевого взаимодействия, тем лучше. А если не в режиме "детский сад", а грамотно - то не два сервера, а, допустим, 16-ть. 16 заранее преднастроенных виртуальных серверов, но в текущем режиме развернутых на двух машинах. Если будет рост числа пользователей, то добавление мощности будет банальным процессом - просто добавляете физический сервер, виртуальный целиком перевозите на новое место. Разброс пользователей балансировщиком, если вы конечно можете в GET/POST запросы встроить user_id, чтоб nginx правилами мог выбрать нужный apache back_end --- Но мне кажется вы останетесь в режиме "детский сад1" или "детский сад2", из тобой озвученных выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 14:21 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацБазы данных две (по два инстанса на сервер), и они настроены в режиме master-slave. Чем меньше межсетевого взаимодействия, тем лучше. 16 заранее виртуальных серверов Взаимоисключающие параграфы детектед. Хорошо, у нас есть перекрестный Master-->Slave, а как мы синхронизируем базы между собой ? Или вообще не синхронизируем и называем это подобием шардинга ? Это два сервера. А 16 ? 16 слейвов у каждого мастера ? Мы требуем продолжения банкета ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 15:18 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
krevedko13Или вообще не синхронизируем и называем это подобием шардинга ? Это не подобие, это и есть шардинг в чистом виде. krevedko1316 слейвов у каждого мастера ? Нет. Просто 16 шард. Шарда подразумевает slave базу в качестве эдакого DR. Вынеси второй сервер за 50км от первого - будет чистый DR. krevedko13Мы требуем продолжения банкета ! Решил блеснуть ослоумием? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 19:17 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Я правильно понимаю что в конечном итоге мы получим кучу цепочек "web <--> master --> slave" которые друг о друге не в курсе и ни одна из Mysql нод не будет иметь доступ к полным данным ? Мне как-то более реальным кажется схема нескольких web-нод с балансировщиком (или парой балансировщиков) которые на запись обращаются к мускульному мастеру, а на чтение - к куче его слейвов (среднестатистический сайт все же должен сильно больше селектов генерить). Правда сходу не смог придумать как оперативно и автоматически заменять выбывшего мастера, но думаю это решаемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 19:59 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
krevedko13Я правильно понимаю что в конечном итоге мы получим кучу цепочек "web <--> master --> slave" которые друг о друге не в курсе и ни одна из Mysql нод не будет иметь доступ к полным данным ? Зачем одной mysql ноде иметь доступ к другой ноде? Надо ходить в соседнюю ноду - просто допиши свой чудный код на PHP, пусть выбирает нужный ему mysql сервер автоматически (типо отравить сообщение другу, который сидит на соседней группе серверов). krevedko13Мне как-то более реальным кажется схема нескольких web-нод с балансировщиком (или парой балансировщиков) которые на запись обращаются к мускульному мастеру, а на чтение - к куче его слейвов (среднестатистический сайт все же должен сильно больше селектов генерить). Я и не против. Колхозники с 5-40 тысячами пользователей в день так и поступают. Потом упираются в потолок роста и уходят с рынка. krevedko13Правда сходу не смог придумать как оперативно и автоматически заменять выбывшего мастера, но думаю это решаемо. есть средства - от ucarp и heartbeat до tivoli. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 20:10 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Ну это если мы сами пилим свой продукт и можем там что-то менять, то да, можно на уровне приложения закладывать маршруты выборки и т.д. но так бывает очень не всегда, а если и бывает - то далеко не сразу. Я понимаю что вы сильно на глаз прикинули посещаемость, но это было дико мимо. Предоставите данные о посещаемости и архитектуре вашего детища ? Чтобы ваши оскорбления были как-то подкреплены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 20:18 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
bga83и еще репликация master-mastre в MySQL является "грязным хаком", официально она не поддерживается. Оно конечно работает какое-то время, но до первого мало мальски значимого сбоя. После чего идет рассинхронизация баз. Поэтому рекомендую либо искать другие СУБД, либо сменить схему работы с MySQL ето неправда. сейчас появились другие надежные СИНХРОННЫЕ репликационные механизмы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 14:39 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
netwindСИНХРОННЫЕ репликационные механизмы Синхронность имеет свою цену. Очень высокую. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 14:50 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, а вода очень мокрая. я помню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 15:06 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
в контексте этой темы - одного веб-сайта, сервера которого, близко расположены друг к другу и имеют невысокую задержку передачи, синхронные механизмы репликации вполне разумны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 15:08 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
netwindа вода очень мокрая. я помню. Ну так вспомни заодно, что система у ТСа планируется высоконагруженная, то есть лишних ресурсов, которые можно выкинуть в трубу - нету. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 15:09 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, где больше общая производительность у master+master или master + ничего ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 15:34 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
netwindгде больше общая производительность у master+master или master + ничего ? Хороший вопрос. Вот только ответ зависит от многих факторов, включая характер нагрузки. Даже если не принимать во внимание условия стартового поста, где описаны ровно два сервера, на которые надо напихать весь стэк LAMP, и брать два исключительно сервера БД... Весы могут качнуться в любую сторону. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 16:22 |
|
||
|
архитектура web-сервера
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВесы могут качнуться в любую сторону. Нет, ну нельзя было остановится после первого ответа. Как хорошо получить твердый ответ - делай так! :)) Народ, спасибо за обсуждение. Если у кого есть еще какие мысли по поводу на что смотреть и как думать, чтобы сделать верный выбор, буду только рад. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 20:37 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=38078622&tid=1483201]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 501ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...