Как стать автором
Обновить
63.14

Высокая производительность *

Методы получения высокой производительности систем

Сначала показывать
Порог рейтинга
Уровень сложности

Шарды? Репликация? Part 1: Подбор БД на примере URL-сокращателя

Время на прочтение 6 мин
Количество просмотров 885
Высокая производительность *Анализ и проектирование систем *Восстановление данных *Data Engineering *
Из песочницы

Даже немножко страшно думать, что еще несколько лет назад, когда использование k8s разрасталось до сегодняшних масштабов, люди предлагали и даже пытались разворачивать в нем базы данных с прикрученными volume-ами около своих приложений. Говоря о дизайне высоконагруженных систем, хоть и с минимумом бизнес-логики, иногда задумываешься даже о bare-metal имплементации, сравнивая ее с виртуализацией (в некоторых компаниях иногда и второго порядка). Чтобы избежать подобных мыслей, я решил для себя подумать, как можно организовать что-нибудь простое, но масштабированное и к чему однозначно не подойдут требования к нагрузке в 1 запрос в секунду. Дальше - интереснее.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 2

Новости

Load2SRE: от нагрузки к доступности, без потери производительности

Время на прочтение 10 мин
Количество просмотров 593
Блог компании Samokat.tech Высокая производительность *Тестирование IT-систем *Тестирование веб-сервисов *Тестирование мобильных приложений *
Роадмэп

Привет! Меня зовут Кирилл Юрков, я SRE Team Lead в Samokat.tech. Уже более десяти лет занимаюсь ускорением и проблемами производительности, а также нагрузочным тестированием. 

Отвечая на вопрос, что делает SRE в Samokat.tech, скажу, что это те, кто занимается инцидентами и проблемами на всём их жизненном цикле, от этапа архитектуры и разработки до postmortem'а после инцидента.

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

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 0

Под капотом Госуслуг: про СМЭВ3 от первого лица

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 2.5K
Блог компании РТЛабс Высокая производительность *XML *
Обзор

Привет ИТ-сообщество! Я Анастасия Пятько, аналитик-внедренец из РТЛабс. Это компания, которая развивает всем известные Госуслуги и пытается облегчить нашу бюрократическую жизнь.

Недавно мне довелось выступить на HighLoad++ 2022 с похожей темой: «СМЭВ. Сильно проще, чем кажется. Полезные советы, как стартовать интеграцию через СМЭВ3 и СМЭВ4». Организаторы знают своё дело. В зале была заинтересованная аудитория, которая задавала вопросы с неподдельным интересом. С некоторыми разговор у стенда продолжался ещё несколько часов. Так родилась идея — зафиксировать всё текстом в этой статье.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 20

Запуск самодиагностики на платформе МТС OmniChannel

Время на прочтение 6 мин
Количество просмотров 470
Блог компании МТС Высокая производительность *IT-инфраструктура *
Из песочницы

Привет! Мы в МТС Digital умеем и любим создавать высоконагруженные IT-решения. Для вывода таких продуктов в промышленную эксплуатацию необходимо научиться решать задачи постоянного самоанализа работоспособности, мониторинга, проверки соответствия заявленным SLA.

Меня зовут Глеб Тильтиков, я технический руководитель омниканальной платформы MTC OmniChannel, и о внедрении самодиагностики в IT-продукте большой цифровой экосистемы и пойдёт речь в этой статье.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Истории

Кэш в JavaScript: не все Map'ы одинаково полезны

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 3.1K
Блог компании Тензор Высокая производительность *JavaScript *Программирование *Node.JS *
Кейс

При разработке приложений регулярно возникает задача кэширования каких-то данных, которые из хранилища должны читаться много чаще, чем писаться. Давайте рассмотрим на примере простого теста, когда и на каком механизме эффективнее организовать его для JavaScript-приложения - на Map или на Object.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 15

Как на Московской бирже работает система генерации отчетов для участников рынка

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.5K
Блог компании MOEX Высокая производительность *Анализ и проектирование систем *IT-инфраструктура *Управление продуктом *
Обзор

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

Разберемся с тем, что из себя представляют отчеты для участников рынка. Ежедневно на Московскую Биржу отправляются десятки миллионов торговых заявок, совершается несколько миллионов сделок. По результатам торговых и клиринговых сессий наши участники получают больше двух сотен отчетов об итогах торгов, оценке обеспечения, выполнении обязательств маркет-мейкеров и др. Отчеты бывают в основном торговые и клиринговые, и, соответственно, несут информацию о торгах или клиринге. На каждом из наших рынков они отличаются, хотя структурно могут хранить информацию одного типа. Отчеты рассылаются отдельно каждому участнику торгов\клиринга (включая самого главного из них – Банк России). На заре времен отчеты представляли из себя текстовые файлы с таблицами, нарисованными в псевдографике. Сейчас это XML файлы со схемами и стилями на нескольких языках. Кстати, забавный факт –  по историческим причинам один из наших отчетов до сих пор отправляется в псевдографике. Ради привычки наших клиентов, которым данный формат наиболее удобен – функционал отрисовки таблиц пришлось заботливо пронести сквозь все метаморфозы системы подготовки отчетов. Впрочем, не будем забегать вперед.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 7

От бумажной волокиты до комплексной автоматизации. Как кратно увеличить прибыль от аренды склада

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 1.4K
Высокая производительность *Анализ и проектирование систем *SaaS / S+S *Creative Commons *CRM-системы *
Из песочницы

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

Это всё к чему

Отдых, развлечения, работа, бизнес связаны с этим устройством. Про первые три пункта говорить не будем, а вот про бизнес и его автоматизацию поговорим. Причем, разговор пойдёт в ключе автоматизации складов. Ведь как ни крути, а производство, торговля, логистика без них никак не могут обойтись. Да, что там, в любой сфере жизни нужен склад, хоть маленький, похожий на кладовочку в квартире, но склад.

Бардак в кладовке члены семьи как-то переживут, не найдя среди груды вещей коньков зимой или надувного круга летом. Подумаешь беда найдут весной или осенью. Бардак же на складе торговой или логистической компании – это скорый конец бизнеса. Не нашли нужный товар покупателю, не доставили вовремя посылку получателю и всё – потеря репутации и доверия клиента.

Поэтому слад – это святое место любой связанной с физическими товарами компании. И относиться к нему нужно соответственно. А складской учет для склада – это инструмент, который всегда должен находиться в полном порядке. Трудно представить себе, например, хорошего плотника без хорошего заточенного инструмента. А тут, без учета склада никак не обойтись.

Далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 7

Серверные ARM-чипы начинают и выигрывают. Возможности 192-ядерного процессора AmpereOne от Ampere Computing

Время на прочтение 4 мин
Количество просмотров 6.6K
Блог компании Selectel Высокая производительность *Компьютерное железо Процессоры


Компания Ampere Computing — далеко не новичок в индустрии разработки многоядерных ARM-процессоров. Появившись на горизонте несколько лет назад, в 2017 году, она быстро стала известной. Во многом — благодаря своей первой успешной разработке, 128-ядерному ARM-процессору Altra Max. Он предназначался для установки в специализированное оборудование для дата-центров и индустрии сетевых технологий в целом. С тех пор компания регулярно продолжает выпускать новые чипы. Сейчас представлен чип AmpereOne, у которого уже 192 ядра и новая микроархитектура. Что это за процессор?
Читать дальше →
Всего голосов 40: ↑40 и ↓0 +40
Комментарии 9

Книга «Производительность систем»

Время на прочтение 11 мин
Количество просмотров 6K
Блог компании Издательский дом «Питер» Высокая производительность *Настройка Linux *Системное администрирование *Профессиональная литература *
imageПривет, Хаброжители!

Книга посвящена концепциям, стратегиям, инструментам и настройке операционных систем и приложений на примере систем на базе Linux. Понимание этих инструментов и методов критически важно при разработке современного ПО. Применение стратегий, изложенных в обновленном и переработанном издании, позволит перформанс-инженерам улучшить взаимодействие с конечными пользователями и снизить затраты, особенно для облачных сред.

Брендан Грегг – эксперт в области производительности систем и автор нескольких бестселлеров — лаконично, но емко излагает наиболее важные сведения о работе операционных систем, оборудования и приложений, которые позволят специалистам быстро добиться результатов, даже если раньше они никогда не занимались анализом производительности. Далее автор дает детальные объяснения по применению современных инструментов и методов, включая расширенный BPF, и показывает, как добиться максимальной эффективности ваших систем в облачных, веб- и крупных корпоративных средах.
Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 5

5-нм серверный ARM-процессор прямиком из Индии. Что это за чип и что он может?

Время на прочтение 4 мин
Количество просмотров 13K
Блог компании Selectel Высокая производительность *Производство и разработка электроники *Процессоры
image

Индия умеет удивлять. Несколько лет назад она с нуля разработала и успешно запустила спутник к Марсу. Причем весь проект, который получил название Mangalyaan, обошелся всего в $70 млн, в отличие от сотен миллионов долларов США, которые выделяются на аналогичные программы в других странах.

Теперь новый сюрприз — представлен первый индийский процессор AUM с 96 ядрами, созданный по 5-нм технологии с архитектурой ARM. Это не пользовательский чип, его предназначение — работа в высокопроизводительных системах. Разработчики уже заявили о том, что процессор поступит в продажу в конце 2023 или начале 2024 года. Подробности о процессоре — под катом.
Читать дальше →
Всего голосов 59: ↑51 и ↓8 +43
Комментарии 36

Приглашаем на Ozon Tech Community Backend Meetup

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 1.3K
Блог компании Ozon Tech Высокая производительность *Карьера в IT-индустрии Конференции IT-компании

Всем привет!

Меня зовут Михаил Кабищев, я руководитель направления «Базовые сервисы» (Платформа).

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

Go, C#, Java, Python – мы поговорим о каждом языке и расскажем, почему выбрали именно их.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 0

ThreadPool. async/await

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 2.9K
Блог компании Контур Высокая производительность *Программирование *.NET *C# *

А вы никогда не задумывались, что async и await выглядят как-то инородно среди прочего C# кода? Больше нигде не встречается такого странного синтаксиса и таких модификаторов, кроме как в методах, работающих с Task и Task<T>.

А ещё интересно, сколько вообще стоит пользоваться async/await? И когда можно (нужно?) обходиться без них?

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 4

Как я делал лучшие арифметические ядра и сделал лучший селектор (демультиплексор)

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 6.2K
Высокая производительность *Хранение данных *FPGA *Производство и разработка электроники *
Recovery mode
Из песочницы
Перевод

Небольшой рассказ о том, как я делал арифметические ядра и сделал лучший селектор (декодер адресов).

Что, опять?
Всего голосов 29: ↑25 и ↓4 +21
Комментарии 12

Масштабирование сервиса мониторинга аудио/видео-потоков в Prime Video со снижением расходов на 90%

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 3.3K
Высокая производительность *Анализ и проектирование систем *Облачные вычисления *Amazon Web Services *Serverless *
Кейс
Перевод

В Prime Video мы предлагаем нашим клиентам тысячи прямых трансляций. Чтобы гарантировать, что клиенты беспрепятственно получают контент, Prime Video создала инструмент для мониторинга каждого потока, просматриваемого клиентами. Этот инструмент позволяет нам автоматически выявлять проблемы с качеством воспринимаемого контента (например, повреждение блока или проблемы с синхронизацией аудио / видео) и запускать процесс их устранения.

У нашей команды анализа качества видео (VQA) в Prime Video уже был инструмент для проверки качества аудио / видео, но мы никогда не планировали и не проектировали его для масштабной работы (нашей целью было отслеживать тысячи одновременных потоков и увеличивать это число со временем). Подключая к сервису больше потоков, мы заметили, что масштабная эксплуатация инфраструктуры обходится очень дорого. Мы также заметили узкие места в масштабировании, которые мешали нам отслеживать тысячи потоков. Итак, мы сделали шаг назад и пересмотрели архитектуру существующего сервиса, сосредоточив внимание на стоимости и узких местах масштабирования...

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 3

yield return

Время на прочтение 7 мин
Количество просмотров 6.7K
Блог компании Контур Высокая производительность *Программирование *.NET *C# *

А вы никогда не задумывались, что yield return выглядит как-то инородно среди прочего C# кода? Больше нигде не встречается такого странного синтаксиса и такой инструкции, кроме как внутри методов, возвращающих перечисление.

А ещё интересно, сколько же на самом деле стоит перечислять элементы с помощью yield return? И можно ли лучше?

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 9

Ускоряем приложение: никаких фреймворков — только математика

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 13K
Блог компании Конференции Олега Бунина (Онтико) Блог компании Почтатех Высокая производительность *Алгоритмы *Микросервисы *

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

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

Читать далее
Всего голосов 40: ↑36 и ↓4 +32
Комментарии 10

Можно ли экспортировать макеты из Figma в готовое React приложение?

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 6.2K
Высокая производительность *Веб-дизайн *ReactJS *Будущее здесь Визуальное программирование *
Из песочницы

Последнее время из каждого утюга кричат по технологии будущего - что Chat GPT может писать код вместо программистов, а MidJourney создавать интерфейсы вместо дизайнеров. Мы полезли в Community фигмы, а там по запросу Figma to Code больше сотни плагинов, которые обещают сгенерировать чистый работающий код на основе ваших макетов и за пару кликов создать готовое web-приложение вместо ваших frontend-разработчиков. Все это звучит вдохновляюще, но так ли это на самом деле?

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

Читать далее
Всего голосов 3: ↑0 и ↓3 -3
Комментарии 8

Оптимизируем использование памяти в приложениях Python

Время на прочтение 10 мин
Количество просмотров 5.8K
Блог компании Издательский дом «Питер» Высокая производительность *Python *Процессоры
Перевод
Когда дело доходит до оптимизации производительности, чаще всего особое внимание уделяется скорости и активности использования ЦП. Гораздо реже кто-либо задумывается о потреблении памяти, конечно, пока не будут израсходованы мощности RAM. Есть много причин, по которым предпринимаются попытки лимитировать использование памяти – не только стремление избежать отказа приложения из-за ошибок, связанных с её исчерпанием.

В этой статье будет исследовано, как находить в ваших приложениях на Python такие участки, где возникает перерасход памяти, проанализировано, по каким причинам это происходит. Наконец, мы научимся снижать использование памяти и сокращать отпечаток программы в памяти, пользуясь простыми приёмами и эффективными структурами данных.
Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 0

Как мы посредством динамического троттлинга защищаем  миллионы клиентов от перегрузок

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.1K
Блог компании Nexign Высокая производительность *
Туториал

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Нахождение минимальных путей в разреженных графах, используя матрицу 5xN

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 2.5K
Высокая производительность *PHP *Алгоритмы *Go *

Введение

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

Описание алгоритма

Алгоритм использует матрицу размером 5xN для хранения информации о графе и вычисления кратчайших путей. Каждая строка матрицы содержит следующую информацию:

Читать далее
Всего голосов 8: ↑4 и ↓4 0
Комментарии 22

Вклад авторов