Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распределение нагрузки на несколько серверов, для социальной сети 
:(
    Опции темы
begin
Дата 5.11.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Планируем сделать небольшую социальную сеть (такая посещаемость как Вконтакте или Одноклассники не будет, да и не нужна). Но несколько тысяч уников в день планируется. Насколько я понимаю, один выделенный сервер такую посещаемость не выдержит и ляжет. Читал в сети, что когда разрабатывали движок Одноклассников, то писали специально мультисерверное ПО, и что данный сайт сейчас распределен аж на 400 серверах.
Нам конечно такое решение не понадобится, но все же нужно заранее подумать о том, чтобы обеспечить нормальную работу сайта при посещении - максимум 10 тыс. уников в сутки.
Вначале была задумка такая:
1. купить виртуальный хостинг
2. по мере увеличения объема сайта и посещений переехать на VPS
3. потом (при дальнейшем росте сайта и его посещаемости) переехать на выделенный сервер.
Но я так понимаю, что и это может не решить проблему. Тогда возникла такая схема:
1. при разработке движка заранее заложить возможность указания в конфиге движка IP-адресов для папок галереи, и для баз данных разных групп таблиц.
2. когда нагрузка на сайте достигнет критического уровня, то перейти например на три выделенных сервера у разных (для надежности) хостинг-провайдеров и держать на первом - картинки, на втором - базу, на третьем - скрипты. 
3. По мере роста сайта делить нагрузку еще дальше - разные папки картинок на разных серверах, разные группы таблиц базы - на разных серверах.
Подскажите, в правильном ли направлении я мыслю.

PM MAIL   Вверх
Simpliest
Дата 5.11.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Цитата(begin @  5.11.2009,  18:47 Найти цитируемый пост)
 три выделенных сервера у разных (для надежности) хостинг-провайдеров 

Не совсем верно.

Для начала отдели статику от динамических страниц.

Статику можешь выложить на CDN.

Динамику разносить по разным провайдерам не выгодно. Лучше подберите хороший ДЦ и в нем разместите/арендуйте требуемое количество серверов.

Добавлено через 1 минуту и 22 секунды
Цитата(begin @  5.11.2009,  18:47 Найти цитируемый пост)
один выделенный сервер такую посещаемость не выдержит и ляжет

Смотря что будешь отдавать.
Видео - может и не выдержит. А блоги... вполне.


--------------------
user posted image
PM   Вверх
Ипатьев
Дата 5.11.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(begin @  5.11.2009,  19:47 Найти цитируемый пост)
о несколько тысяч уников в день планируется. Насколько я понимаю, один выделенный сервер такую посещаемость не выдержит и ляжет. 

Вы хотели сказать несколько сот тысяч уников?

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

Добавлено через 6 минут и 51 секунду
Послушайте.
Вы только что научились с куками работать.
Не рановато на социальные сети замахиваться?
Я понимаю, не боги горшки обжигают. Но, может, сначала элементарного опыта поднабраться?
Ваши рассуждения, извините, смехотворны.
Цитата(begin @  5.11.2009,  19:47 Найти цитируемый пост)
три выделенных сервера у разных (для надежности) хостинг-провайдеров 

в чем тут будет надежность? Что толку, если будет работать сервер с картинками, но не будет работать БД?
что за странная идея, ходить в базу данных к другому провайдеру? это, по-вашему, увеличивает время отклика?

Вы не имеете ни малейшего представления о распределении нагрузки. Ну хотя бы форум почитайте. Какие на самом деле проблемы возникают, в реальных проектах. А не в воображаемых.


PM MAIL   Вверх
begin
Дата 5.11.2009, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата

Для начала отдели статику от динамических страниц.
Статику можешь выложить на CDN.

Спасибо за отличный совет. До этого моменты я не знал о такой технологии как CDN. Уже поискал и нашел украинского CDN-провайдера. Такой вариант действительно в разы дешевле, чем платить за несколько своих серверов. Огромное спасибо.

Цитата

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

Вы знаете, а я даже рад, что заблуждался насчет количества. Но цифра взята не с потолка - у меня и моих клиентов несколько сайтов на разных украинских и российский виртуальных хостингах. Так вот время от времени везде возникает проблема то с большим количеством запросов к базе (аж 200  smile ), то еще с чем-то. И это при посещаемости максимум 1 тысяча уников в сутки.

Цитата

Вы только что научились с куками работать.
Не рановато на социальные сети замахиваться?
Я понимаю, не боги горшки обжигают. Но, может, сначала элементарного опыта поднабраться?

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

Цитата

Ваши рассуждения, извините, смехотворны.
три выделенных сервера у разных (для надежности) хостинг-провайдеров 

Да, я уже начинаю понимать, что дополнительной стабильности такая схема явно не даст.

Цитата

Вы не имеете ни малейшего представления о распределении нагрузки.

Ну вот поэтому и советуюсь здесь, с Вами.

PM MAIL   Вверх
Ипатьев
Дата 5.11.2009, 21:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Ну сами подумайте. 
Допустим, вся эта тысяча ходит в течение 10 часов. Это сто человек в час. То есть, в одну минуту на сайте находятся 2-4 человека максимум. Это вообще не нагрузка. Поисковики создают и то большую.
Цитата(begin @  5.11.2009,  20:46 Найти цитируемый пост)
Понимаю Вашу иронию

Это не ирония.
Это констатация факта. Сложные проблемы вам пока не по зубам.
Вы просто не понимаете, за что беретесь. Вам кажется, что все просто. Посоветуюсь на форуме, полгодика попишу и бац - все готово!
Цитата(begin @  5.11.2009,  20:46 Найти цитируемый пост)
Ну вот поэтому и советуюсь здесь, с Вами.

Понимаете, какое дело.
Не всему можно научиться, "советуясь на форуме".
Вам кажется, что разработать хайлоад проект не сильно сложнее ленты новостей.
Это не так. 
Нужно очень много знаний и практического опыта. Которые советами на форуме не приобретаются.

Цитата(begin @  5.11.2009,  20:46 Найти цитируемый пост)
меня и моих клиентов несколько сайтов на разных украинских и российский виртуальных хостингах. Так вот время от времени везде возникает проблема то с большим количеством запросов к базе (аж 200  smile ), то еще с чем-то. И это при посещаемости максимум 1 тысяча уников в сутки.

Вот чем вам надо заняться.
Сначала надо сделать так, чтобы эти сайты вообще не замечали нагрузки. 
Именно этим вам надо заниматься, если вы хотите в перспективе делать хайлоад. 
Если у вас сайты на 1000 падают, то вам никаких серверов не хватит. ни 3, ни 33.

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

PM MAIL   Вверх
begin
Дата 5.11.2009, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата

Сначала надо сделать так, чтобы эти сайты вообще не замечали нагрузки. 
Именно этим вам надо заниматься, если вы хотите в перспективе делать хайлоад. 


Да, согласен с Вами. И мне очень хочется узнать именно теорию того, как в php и в MySql писать скрипты и запросы, чтобы минимизировать нагрузку на сервер. Т.е. мне хочется выработать в себе культуру написания ресурсоНЕемких php-скриптов и sql-запросов.
Существует ли какая-нибудь специализированная литература по этой теме? В сети нашел лишь разрозненные упоминания этой проблемы, в своих книгах по php и mysql такого не нахожу и подавно.
PM MAIL   Вверх
Simpliest
Дата 5.11.2009, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 625
Регистрация: 1.9.2009

Репутация: 1
Всего: 3



Для начала стоит начать с 
http://xdebug.org/docs/profiler

Т.е. узнать что именно тормозит работу.


--------------------
user posted image
PM   Вверх
Ипатьев
Дата 5.11.2009, 22:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



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

В первую очередь надо научиться оптимизировать работу с БД.
Разобраться с индексами.
Научиться пользоваться командами benchmark и explain.

Находить, с помощью профайлинга, медленные запросы, и учиться их оптимизировать. 
Уже по одной этой теме нужно прочесть пару учебников. А дальше ведь пойдут следующие уровни - загрузка диска, оперативной памяти, процессора. Выбор веб-сервера. И многое другое.
Но начать стоит с БД.

Плюс посмотреть на оптимальность своих алгоритмов. Часто бывают ненужные циклы. РНР не должен работать с графикой в режиме отдачи контента ни под каким видом. Графику отдает только веб-сервер.
PM MAIL   Вверх
brother79
Дата 6.11.2009, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



Цитата(begin @  5.11.2009,  19:47 Найти цитируемый пост)
Вначале была задумка такая:
1. купить виртуальный хостинг
2. по мере увеличения объема сайта и посещений переехать на VPS
3. потом (при дальнейшем росте сайта и его посещаемости) переехать на выделенный сервер.



Для твоего случая - ИМХО это оптимальный вар-нт. Нужен опыт - набирайся, но вбухивать бабло раньше времени - смысла не вижу. Если опыта мало - почему не начать с простых вещей?  Если сайт грамотно построен - ничего не мешает его потом оптимизировать и распределять нагрузку. Если есть желание - можно заранее об этом подумать, но начать всётаки с виртуального хостинга. Вообще что-то слабо верится, что сразу прям будет пиковая посещаемость, всёравно этот процесс будет занимать какое-то время, пока народ узнает. 


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0614 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.