Рубрика «высокая производительность» - 35

Наконец-то в России вышел учебник по SystemVerilog уровнем выше чем для начинающих. Учебник описывает технологии и приемы, которые спрашивают на интервью в NVidia, Intel, AMD, Apple и другие электронные компании: использование concurrent assertions и functional coverage, что сейчас требуют не только от инженеров по верификации, но и от дизайнеров микросхем; алгоритм работы симулятора с дельта-циклами; вменяемое объяснение static timing analysis; схемы коммуникации аппаратных блоков через аппаратные очереди; реализацию этих коммуникаций с помощью конечных автоматов с трактами данных и т.д.

В главе про последнее российского читателя может озадачить упоминание «политкорректной системы». Что бы это значило? Это вероятно намек на казус, который произошел в округе Лос-Анжелес в 2003 году. Чиновники Лос-Анджелеса попросили производителей, поставщиков и подрядчиков прекратить использование терминов «master/slave» («хозяин» и «раб») в отношении компьютерного оборудования, так как одному из работников округа эти термины напомнили про рабовладельческое прошлое.

Сейчас авторы технической литературы избегают терминов master/slave. В современной Америке работают и афро-американские инженеры (например София Мвокани из Камеруна — на фото слева), и использование старых терминов выглядит архаично, как выглядели бы например термины «пан/холоп» в украинской технической литературе вместо принятых «провідний/ведений» (рус. «ведущий/ведомый»).

Это не первый раз, когда в российском электронном образовании появляется тема борьбы афро-американцев за гражданские права. Например Татьяна Волкова, известный специалист по образованию в электронике, носит маечку с эмблемой «Черных Пантер», калифорнийского движения, которое в свое время сочло мирный протест недостаточным, и занялось вооруженным протестом.

Политкорректность проникает в Россию через книги про проектирование чипов на SystemVerilog для не-начинающих - 1

Полное изображение эмблемы под кожанкой Татьяны Александровны — под катом, но в основном я буду рассказывать про дельта-циклы и конечные автоматы:
Читать полностью »

Tarantool Kubernetes Operator - 1

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

Тarantool может выполнять роль сервера приложений, исполняя stateless-приложения. Но по-настоящему его можно оценить только воспользовавшись им как базой данных и сервером приложений одновременно. Tarantool не используется там, где можно обойтись парой MySQL-серверов. Он используется там, где от нагрузки трещит сеть, где одно лишнее поле в таблицах выливается в сотни гигабайт потраченного места, и где шардинг — это не задел на светлое бизнес-будущее, но суровая необходимость.

Мы занимаемся разработкой решений на базе Tarantool, Tarantool Cartridge и их экосистемы. Как мы докатились до запуска базы данных на Kubernetes? Все очень просто: скорость доставки и стоимость эксплуатации. Сегодня мы представляем Tarantool Kubernetes Operator, за подробностями прошу под кат.
Читать полностью »

Тarantool Cartridge: шардирование Lua-бекенда в три строчки - 1

У нас в Mail.ru Group есть Tarantool — это такой сервер приложений на Lua, который по совместительству ещё и база данных (или наоборот?). Он быстрый и классный, но возможности одного сервера всё равно не безграничны. Вертикальное масштабирование тоже не панацея, поэтому в Tarantool есть инструменты для горизонтального масштабирования — модуль vshard [1]. Он позволяет шардировать данные по нескольким серверам, но придётся повозиться, чтобы его настроить и прикрутить бизнес-логику.

Хорошие новости: мы собрали шишек (например [2], [3]) и запилили очередной фреймворк, который заметно упростит решение этой проблемы.

Тarantool Cartridge — это новый фреймворк для разработки сложных распределённых систем. Он позволяет сфокусироваться на написании бизнес-логики вместо решения инфраструктурных проблем. Пот катом я расскажу, как этот фреймворк устроен и как с его помощью писать распределённые сервисы.
Читать полностью »

Всем привет!

Я Павел Мурзаков, тимлид серверной команды Badoo. Мы обожаем PHP, вкладываемся в его развитие и развитие сообщества вокруг него. 21 сентября планируем провести третий Badoo PHP Meetup. Приглашаем спикеров и гостей!
21 сентября Badoo PHP Meetup #3: производительность - 1
В этот раз в качестве общей темы встречи выбрали производительность PHP-кода и PHP-бэкенда в целом. Для нас эта область важна, так как, с одной стороны, у нас большая инфраструктура на PHP, и вопрос производительности — это вопрос экономии денег.  С другой — нам важно предоставлять пользователям сервис высокого качества, поэтому бэкенд должен отвечать достаточно быстро, ведь от этого зависит активность пользователей и их впечатления от сервиса.

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

Регистрация по ссылке, начало в 12:00, гостей встречаем с 11:00. 
Читать полностью »

Почему const не ускоряет код на С-C++? - 1

Несколько месяцев назад я упомянул в одном посте, что это миф, будто бы const помогает включать оптимизации компилятора в C и C++. Я решил, что нужно объяснить это утверждение, особенно потому, что раньше я сам верил в этот миф. Начну с теории и искусственных примеров, а затем перейду к экспериментам и бенчмаркам на реальной кодовой базе — SQLite.
Читать полностью »

Как Badoo добился возможности отдавать 200k фото в секунду - 1

Современный веб практически немыслим без медиаконтента: смартфоны есть практически у каждой нашей бабушки, все сидят в соцсетях, и простои в обслуживании дорого обходятся компаниям. Вашему вниманию рассказ от компании Badoo, как она организовала отдачу фотографий с помощью аппаратного решения, с какими проблемами производительности столкнулась в процессе, чем они были вызваны, ну и как эти проблемы были решены с помощью софтового решения на основе Nginx, обеспечив при этом отказоустойчивость на всех уровнях. Благодарим авторов рассказа Олега Ефимова и Александра Дымова, которые поделились своим опытом на конференции Uptime day 4.

— Вначале небольшое введение про то, как мы фотографии храним и кэшируем. У нас есть слой, на котором мы фотографии храним, и слой, где мы фотографии кэшируем. При этом, если мы хотим добиваться большого хитрейта и мы хотим снижать нагрузку на стораджи – нам важно, чтобы каждая фотография какого-то отдельного пользователя лежала на одном кэширующем сервере. Иначе нам пришлось ставить во столько раз больше дисков, во сколько у нас больше серверов. Хитрейт у нас в районе 95%, то есть мы в 100 раз снижаем нагрузку на наши storage, и для того, чтобы это сделать, еще 10 лет назад, когда все это строилось, мы имели 50 серверов. Соответствено, для того, чтобы эти фотографии отдавать, нам нужно было по сути 50 внешних доменов, которые по сути эти серверы обслуживают. И сразу естественно встал вопрос: а если у нас один сервер упадет, будет недоступен, мы по сути теряем какую часть трафика? Мы посмотрели, что есть на рынке, и решили купить железку, чтобы она решила все наши проблемы. Выбор пал на решение компании FX-network (которая купила NGINX, Inc).
Читать полностью »

image

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

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

Тысячи вещей, которые в Java стоило бы поправить с первой версии: большое интервью с Сергеем Куксенко из Oracle - 1

Сергей Куксенко — перформанс-инженер, видевший Java еще версии 1.0. За это время успел поучаствовать в разработке мобильных, клиентских, серверных приложений и виртуальных машин. Производительностью Java занимается c 2005 года и в данный момент в Oracle работает над улучшением производительности JDK. Один из самых популярных докладчиков на Joker и JPoint.

Этот хабрапост — большое интервью с Сергеем, посвященное следующим темам:

  • Культ Производительности;
  • Когда и что нужно оптимизировать, изначальный дизайн языка и библиотеки;
  • Перспективные направления для дальнейшей оптимизации;
  • Как можно поучаствовать в разработке и что можно сломать оптимизациями;
  • Компиляторные трюки, размещение регистров;
  • Можно ли собрать кошку из фарша;
  • Когда тесты работают пять дней подряд и прочая бытовуха;
  • Как стать перформанс-инженером;
  • Подготовка доклада на следующий Joker.Читать полностью »

Перед каждым сервисом, генерирующим хотя бы 1 Мбит/сек трафика в интернете возникает вопрос: «Как? по TCP или по UDP?» В прикладных областях, в том числе и платформах доставки уже сложились предпочтения и традиции принятия подобных решений.

По идее, если бы, к примеру, однажды один ленивый разработчик не попробовал развернуть свой ML на Python (потому что только его и знал), мир скорее всего никогда не проникся бы такой любовью к презренному «супер-джава-кодерами» языку. А сегодня слабости этого языка в прошлом контексте применения безоговорочно обеспечивают ему первенство в развертывании и запуске многочисленных майнерских А/Б.

Сравнивать можно многое: ARM с Intel, iOS и Android, а Mortal Combat с Injustice. И нарваться на космический холивар, поэтому вернемся к теме доставки огромных объемов разноформатного контента.

Десять лет назад все были абсолютно уверены, UDP — это что-то про негарантированную доставку. Если нужен надежный протокол — это TCP. И вопреки традициям в этой статье мы будем сравнивать такие, кажущиеся несравнимыми вещи, как TCP и UDP.

TCP против UDP или будущее сетевых протоколов - 1
Осторожно, под катом 99 иллюстраций и схем и все важные.
Читать полностью »

Видео и доклады со SmartMail Meetup: Frontend - 1

Лето выдалось холодным, а это хороший повод потратить дождливые деньки на просмотр пары-тройки лекций по frontend-разработке. 27 июня прошел первый SmartMail Meetup, посвященный фронтенду. С техническими докладами выступили сотрудники команды frontend-разработки Почты. Вместе с ними и еще 300 участниками мы обсудили, чем живут фронтендеры Mail.ru Group и каково это, работать с высоконагруженными сервисами.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js