|
|
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
1) Чем отличаются высоконагруженные веб проекты от просто сайтов ? В каком случае проект считается высоконагруженным ? 2) В чем измеряется нагрузка ? 3) Как проходит процесс разработки высоконагруженного проекта ? Чем отличается от обычного ? 4) Существуют ли инструменты позволяющие оценить какую нагрузку способен выдержать проект ? Как проходит отладка высоконагруженного проекта ? Что нужно изменить в проекте в случае если он не выдерживает нагрузку ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2016, 10:14 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
Andrey3k, готовы деньги заплатить за ответы на вопросы? Если да, то вот: запись вебинара «Пошаговый алгоритм проектирования высоконагруженной системы. Вопросы и ответы» с разбором кейсов по проектированию highload-систем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2016, 10:50 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
Andrey3k, также есть возможность посмотреть слайды презентации . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2016, 10:51 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
Andrey3k1) Чем отличаются высоконагруженные веб проекты от просто сайтов ? В каком случае проект считается высоконагруженным ? Если он тормозит, а разработчик не в состоянии что-то с этим сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2016, 13:55 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
skyANAAndrey3k, также есть возможность посмотреть слайды презентации . Highload++ такой междусобойчик, и термины у них свои: кардинальность назвали обратной величиной - селективностью. Эта мелочь не умаляет опыта людей, но было бы странно, например, если бы большие физики на выступлениях путали частоту и длину волны. https://docs.oracle.com/cd/B14117_01/server.101/b10752/data_acc.htm The selectivity of an index is the percentage of rows in a table having the same value for the indexed key. An index's selectivity is optimal if few rows have the same value . Селективность - это процент строк с одинаковым значением, и оптимально когда селективность мала. http://www.ibm.com/developerworks/data/library/techarticle/dm-1309cardinal/ Why low cardinality indexes negatively impact performance ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 23:44 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
Andrey3k1) Чем отличаются высоконагруженные веб проекты от просто сайтов ? В каком случае проект считается высоконагруженным ? Это красивая поэтическая метафора. Даже если мы условно определим сколько "попугаев или слонов" определяют хай-лоадность и если вы искусственно создадите сайт с таким-же числом попугаев - то это не будет означать что ваш сайт -хайлоад. Это будет просто искусственный бенчмарк. Вообще... бизнесу по большему счету все равно хайлоад он там или не хайлоад. Главное чтоб юзер был доволен. И чтоб формочки там летали и свистели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 00:24 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
Andrey3k1) Чем отличаются высоконагруженные веб проекты от просто сайтов? Стандартная формулировка - когда вертикальное масштабирование уже не работает. Где-то с 10000 rps на текущем железе, зависит от задач и технологий (хайлоад на ruby начинается при гораздо меньших нагрузках, чем на Java или C). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 00:32 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
Andrey3k1) Чем отличаются высоконагруженные веб проекты от просто сайтов ? В каком случае проект считается высоконагруженным ? 2) В чем измеряется нагрузка ? 3) Как проходит процесс разработки высоконагруженного проекта ? Чем отличается от обычного ? 4) Существуют ли инструменты позволяющие оценить какую нагрузку способен выдержать проект ? Как проходит отладка высоконагруженного проекта ? Что нужно изменить в проекте в случае если он не выдерживает нагрузку ? 1) проект считается высоконагруженным при более сотни операций в секунду. у гугла, к примеру, весь мир генерит всего 172к запросов в секунду. весь мир! весь гугл. отличаются сайты скорее инфраструктурно, внутри обычно такой-же LAMP, как и везде. но появляются новые элементы - к примеру на входе балансирующий обратный прокси (nginx, haproxy) и кеширующий запросы-ответы к БД сервис (memcache), плюс сам софт пишется так, чтоб клиентов равномерно размазывать по оборудованию и базам данных, без необходимости ходить в соседнюю базу данных, к другим клиентам, без особой на то нужды. 2) в запросах в секунду, в чем-же еще? 3) разработка отличается от обычной тем, что она ведется в условиях 24x7, т.е. ты не можешь погасить весь сайт на час, чтоб пропатчить везде базы данных и софт. т.е. пишутся хитрожопые планы миграций, когда одновременно могут работать серверы текущей и предыдущей версии, и обновляют софт поэтапно. причем сначала обновляют резервный сервер, переключают на него поток, когда все перейдут - обновляют основной и потом переключают обратно. но так как разделение клиентов сделано на пункте 1), то это уже почти не проблема, группы клиентов обновляют поэтапно. в остальном - процесс разработки ведется как обычно, тот-же Scrum или подобное 4) инструменты - ab, httperf, и подобные. менять обычно ничего не надо, правильно написанный Highload проект просто позволяет добавлять оборудование по мере роста, дальше все само ребалансируется, ничего дописывать не надо. если написано не по правилам, то уже на начальном этапе все помрет, не выдержав нагрузки и не сумев смасштабироваться при добавлении железа. в целом там никакой космической науки, если кратко - на входе стоит балансировщик, который распихивает клиентов по заранее известным серверам (заранее известно, какой клиент на какой сервер пойдет), а дальше - все как обычно, вот и вся премудрость. самое сложное - это балансирование баз данных, ребалансирование в т.ч. решается достаточно просто - за счет master-slave, в момент расщепления-роста slave превращается в самостоятельный master, только теперь он обрабатывает свою половину клиентов, а старый мастер - другую половину, из того, что у него было. дальше оба мастера обзаводятся своими slave. да, конечно 1/2 данных остается уже никому не нужным мусором, но о нем просто забывают, со временем эти данные будут просто удалены на очередном цикле чистки исторических данных, или просто останутся жить навечно - диски выдержат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 01:16 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
DPH3Andrey3k1) Чем отличаются высоконагруженные веб проекты от просто сайтов? Стандартная формулировка - когда вертикальное масштабирование уже не работает. Где-то с 10000 rps на текущем железе, зависит от задач и технологий (хайлоад на ruby начинается при гораздо меньших нагрузках, чем на Java или C). Покажите хоть один сайт который не использует горизонтальное масштабирование и лоад балансеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 12:04 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
Интересно а физический кластер кто-нибудь использовал? С кластерной операционнкой, шареной памятью и пр.? Было бы очень интересно узнать опыт. А то что выше описано это как-то уж слишком уныло и низкотехнологично. Может кто работал на суперкомпьютерах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 12:07 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
unregesteredDPH3пропущено... Стандартная формулировка - когда вертикальное масштабирование уже не работает. Где-то с 10000 rps на текущем железе, зависит от задач и технологий (хайлоад на ruby начинается при гораздо меньших нагрузках, чем на Java или C). Покажите хоть один сайт который не использует горизонтальное масштабирование и лоад балансеры. Скруль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 12:11 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
А вообще из моего опыта любые задачи связанные с производительностью - пожалуй самые простые и "удобные". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 12:18 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
skyANA, Зачем здесь эта реклама?? Видел я его презентации, чувак явно работает капитаном очевидность. Лучше бы он обзор инструментов сделал по изменению перфоманса и мониторингу. А вообще из моего опыта любые задачи связанные с производительностью - пожалуй самые простые и "удобные". Бизнес модель его конторы мне непонятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 12:21 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
Они простые - когда у тебя есть возможность воткнуть инструмент измерения в любую часть процесса. У меня чаще всего такой возможности не было. Ну невозможно разработчику выдать права на всё. Всегда будет участок где вы не владеете полной информацией. Всегда будет черный ящик и нехватка привилегий. Всегда будут амбициозные сисадмины и DBA. И особенно - безопасники. Попробуйте с последними вступить в дискурс на тему перформанса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 12:27 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
maytonОни простые - когда у тебя есть возможность воткнуть инструмент измерения в любую часть процесса. У меня чаще всего такой возможности не было. Ну невозможно разработчику выдать права на всё. Всегда будет участок где вы не владеете полной информацией. Всегда будет черный ящик и нехватка привилегий. Всегда будут амбициозные сисадмины и DBA. И особенно - безопасники. Попробуйте с последними вступить в дискурс на тему перформанса. Мне кажется всё вышеозвученные проблемы - результат хреновых процессов в компании. Во-первых, на девелопмент серверах у разработчика должны быть все права. Это ужасно когда всем заправляют админы. Во-вторых, процесс развёртывания должен быть максимально унифицирован и включать в себя минимум конфигурации операционной системы и железа, в идеале - один rpm/deb файл. Деплоймент на различные окружения должен быть из continous integration приблуды где мы тупо выбираем тэги и сервер куда деплоить. В-третьих система должна допускать падение одного из инстансов, так что мы может отсоединить его и исследовать если надо. Ну и наконец, необходимо правильно настроить логирование, мониторинг тулы. Много ли вы видели серверов с настроенным JMX? Я - не очень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 16:54 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
unregesteredВ-третьих система должна допускать падение одного из инстансов, так что мы может отсоединить его и исследовать если надо. Ну и наконец, необходимо правильно настроить логирование, мониторинг тулы. Много ли вы видели серверов с настроенным JMX? Я - не очень. Я почти полностью согласен со всем вышеперечисленным. Однако добавлю что мне по роду деятельности случалось быть в продукте, аутсорсе, аутстаффе и везде были свои нюансы. Вам конешно очень хочется смоделировать идеальную песочницу для разработки но такое бывает редко. Тестовая БД всегда будет меньше. По поводу JMX - почти не видел. Заказчик почти никогда его не заказывал. Для админов достаточно было логгирования. Мы в основном пользовались JMX-компонентами системных или прикладных фреймворков если таковые уже были написаны. Пару раз кодили JMX-кнопочку толи "Сброс кешей" толи обновление справочников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 17:10 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
unregesteredПокажите хоть один сайт который не использует горизонтальное масштабирование и лоад балансеры. Ну, вообще все сайты, где бизнес-логика не позволяет этого сделать. Например, платежные системы, банковские транзакции, риск-менеджмент. Да и графы друзей в соцсетях все еще много где живут на одном сервере (так как делать распределенные алгоритмы на графах достаточно неочевидно и много дешевле сделать все на одном сервере с отстающей репликацией). Для большей части топовых сайтов в РФ использование балансировки вызвано или необходимостью HA или сомнительными техническими решениями, из-за которых сервер и 10rps не выдерживает. Ну да и называть размазывание stateless frontend по разным серверам "highload"-ом я бы не взялся, какой там highload, просто игрушки. А вот когда шардинг не возможен по бизнесу, а в одну машину уже не влезаешь - это да, это становится интересным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 13:47 |
|
||
|
HighLoad проекты. Высокая нагрузка
|
|||
|---|---|---|---|
|
#18+
unregesteredНу и наконец, необходимо правильно настроить логирование, мониторинг тулы. Много ли вы видели серверов с настроенным JMX? Я - не очень. Это все прекрасно. Но только никаких логов или JMX с серверов под PCI DSS, например, тебе никто дать не может (вернее, может после доп. обработки, проверок и т.д). Да и вообще есть куча информации, которой не будет в дампе с прода или которую нужно будет изменить и почистить - и опаньки, селективность по запросам другая, планы другие, cache miss другой, производительность упала и что мерить - непонятно. Еще есть прекрасные задачи, когда требуется и надежность и производительность и алгоритм очень плохо шардится. Ну, например, расчет глобальных лимитов на каждую операцию в нагруженной платежной системе. Так что да, в сайтиках задачи с производительностью решаются более-менее просто, но это не во всех задачах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2016, 14:46 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39259257&tid=1340676]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 498ms |

| 0 / 0 |
