LINUX.ORG.RU

Высокая нагрузка на сервер


1

2

Hi. Можете подсказать? как организовать функционирование веб портала с > 100kk одновременных пользователей. Интересуют такие вопросы.

1) Какой инет канал необходим для комфортной работы всех пользователей, с учётом того что могут проходить сильные DDOS. А также пользователи могут создавать свои видео-трансакции и загружать много графических изображений.
2) Какая система необходима в плане железа?
3) Как организовать защиту от DDOS ?
4) Как организовывается работа с СУБД ? В плане, есть очень много таблиц (которые по сути хорошо спроектированы) каким образом распределить нагрузку при работе по различным системам? + как организовать дублирование произведённых транзакций на удалённой системе.(сохранение бд)
5) Как уменьшить скорость загрузки сайта? В плане статических данных, которые получаются несколькими запросами к серверу? Например сервера стоят в РФ , и есть три пользователя, из РФ, Сша, ЮАР . И время запроса, у РФ — 20мс, сша — 500мс , ЮАР — 250мс. Мне следует разместить статические данные на серверах, которые территориально(физически) находятся ближе к клиенту? А в своём приложении указывать, пользователям откуда брать данные? (для пользователей сша, статические данные брать с сервера сша, пользователи из юар, берут данные с сервера расположенного в юар..и тд.)
6) Если есть ещё какие то подводные камни, или интересные мысли по поводу функционирования подобного сервера, Высказывайтесь.

Deleted
Ответ на: комментарий от Deleted

А я не по делу написал чтоли?

Тебе нужно CDN, технологии против DDoS, датацентры со специалистами которые знают как организовать работу с СУБД.

Помимо технарей, не забывай про юр. отдел и правильную организационно-правовую форму твоего «бизнеса». Должна быть куча денег, потому что в начале ты будешь работать в большой минус.

Поэтому, если у тебя есть куча денег, то проще это всё уже купить готовым и настроенным. Как я и советовал выше.

shrub ★★★★★
()
Последнее исправление: shrub (всего исправлений: 1)

курсовик?

anonymous
()
Ответ на: комментарий от shrub

насчтё CDN спасибо, почитаю

anonymous - не курсовик...

Deleted
()

1) Какой инет канал необходим для комфортной работы всех пользователей, с учётом того что могут проходить сильные DDOS. А также пользователи могут создавать свои видео-трансакции и загружать много графических изображений.

Статистика использования канала на шлюзах, канал расширяется по мере необходимости и наличию средств

2) Какая система необходима в плане железа?

Любая, можно дорогую, можно дешёвую, можно виртуальные сервера, тот же амазон и ему подобные, главное пиши масштабируемое распределённое приложение.

3) Как организовать защиту от DDOS ?

Договориться с предоставителем услуг размещения сервиса, чтоб он занимался этим. Hанять админов, поставить дорогие железки, широкий канал.

4) Как организовывается работа с СУБД ? В плане, есть очень много таблиц (которые по сути хорошо спроектированы) каким образом распределить нагрузку при работе по различным системам?

Горизонтальное, вертикальное разбиение таблиц для РСУБД, использование репликации. избавляться от распределённых транзакций, по возможности меньше блокировок, транзакций и где-то жертвовать целостностью. Где возможно - использовать решения NoSQL, с возможностью добавления узлов на лету для перераспределения нагрузки. Где возможно использовать решения в памяти, а то и чистый кеш(ets, redis, memcached) как бд.

+ как организовать дублирование произведённых транзакций на удалённой системе.(сохранение бд)

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

5) Как уменьшить скорость загрузки сайта?

Профилирование и кеширование на клиенте, вынесение логики отрисовки на клиентский слой, благо яваскрипт в современных бродилках очень быстрый и кростплаформенных фреймворков масса.

На сервере так же, профилирование и оптимизация запросов, узких мест, кэширование.

Например сервера стоят в РФ, и есть три пользователя, из РФ, Сша, ЮАР . И время запроса, у РФ — 20мс, сша — 500мс , ЮАР — 250мс. Мне следует разместить статические данные на серверах, которые территориально(физически) находятся ближе к клиенту? А в своём приложении указывать, пользователям откуда брать данные? (для пользователей сша, статические данные брать с сервера сша, пользователи из юар, берут данные с сервера расположенного в юар..и тд.)

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

Кроме статики, есть и много всякого контента, который генерят массово пользователи(фотки, видео) и также массово их смотрят, тут подойдёт CDN, как стронний, так и самописный.

6) Если есть ещё какие то подводные камни, или интересные мысли по поводу функционирования подобного сервера, Высказывайтесь.

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

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

anonymous
()

Я думаю тебе в Amazon или Google Cloud. Эти люди думаю даже о ударах метеоритов в континеты. В них есть специализированые решения для размещения приложений в разных регионах с глобальным балансировщиком и умными DNS. Еще есть нереляционные хранилища как сервис, ну и можно свои поставить на виртуалки. Есть свои CDN.

И есть главное - возможность отказаться от услуги, отключить все виртуалки, купить кабриолет и уехать жить на юг Франции

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

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

Komintern ★★★★★
()
Ответ на: комментарий от Komintern

Зато своя реализация - это весело. Не забывай о хороших сторонах ))

vertexua ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.