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

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

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

Если микросервис перестает отвечать на запросы в результате аварии, его клиенты должны быть мгновенно перенаправлены на резервный. Для управления потоком запросов часто используют так называемые очереди сообщений (message queues).

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

Читать полностью »

Масштабируя TLS - 1

Хабр, это доклад с одного из «не главных» залов Highload++ 2016. Артём ximaera Гавриченков, технический директор Qrator Labs, рассказывает про прикладное шифрование, в том числе, в высоконагруженных проектах. Видео и презентация в конце поста — спасибо Олегу Бунину.

Приветствую! Мы продолжаем находиться на сессии про HTTPS, TLS, SSL и всё такое.
То, о чём я сейчас буду говорить — не какой-то туториал. Как говорил мой преподаватель в университете по базам данных, Сергей Дмитриевич Кузнецов: «Я не буду учить вас настраивать Microsoft SQL сервер — пусть это делает Microsoft; не буду учить вас настраивать Oracle — пусть это делает Oracle; не буду учить вас настраивать MySQL — делайте это сами».

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

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

Начнем с математики. Векторизация вычислений в реализации технологии RAID-6 - 1
Читать полностью »

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

Производительность приложений под Android - 1

Читать полностью »

Дилетантское ЧПУ? - 1

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

Однажды нам понадобилось организовать управление для самодельной штамповочной линии. Линия самодельная, а значит и управление, сделаем самодельное. Мы не использовали промышленные стандарты для передачи данных. Было решено, всё сделать из подручных материалов и ненужного старого компьютера. Главные условия: просто, дёшево, быстро. Надёжность – как получиться. Расскажу, как мы это сделали.
Читать полностью »

Сравнение производительности версий PHP - 1

В этой статье мы рассмотрим результаты нескольких бенчмарков, начиная с PHP 5 и вплоть до экспериментальной JIT-ветки (сейчас в разработке). На момент написания не было известно, появится ли до PHP 8 ещё какая-то основная версия, например PHP 7.2. Но логично предположить, что возможности экспериментальной ветки как минимум будут включены в PHP 8.

Читать полностью »

Жирные программы — факторы скорости - 1 Картинка из фильма «Размер имеет значение», 2009

Данная статья была начата в апреле 2016г в результате того, что компьютер опять стал работать медленнее, чем я щелкаю мышкой. Собственно, она является компиляцией многих тестов (некоторых еще с 2010г) и обсуждений с моим участием. Ее нельзя назвать полностью законченной, поскольку это не окончательные выводы, а некие промежуточные точки, показывающие на что обратить внимание и куда копать дальше.

Название частично позаимствовано из статьи Никлауса Вирта «Долой „жирные“ программы», которой в 2016г было ровно 10 лет, и актуальности она не утратила — а скорее вышла на новый уровень, кто не знаком — почитайте.

Рассмотрим разные аспекты, влияющие на производительность систем и программ.

Языковой аспект
Аспекты памяти
Аспекты реального мира
Неязыковые факторы
Аспект человеческого фактора
Читать полностью »

Недавно мы писали приложение на Shiny, где нужно было использовать очень большой блок данных (dataframe). Это непосредственно влияло на время запуска приложения, поэтому пришлось рассмотреть ряд способов чтения данных из файлов в R (в нашем случае это были csv-файлы, предоставленные заказчиком) и определить лучший.

Цель этой заметки — сравнить:

  1. read.csv из utils — стандартный способ чтения csv-файлов в R
  2. read_csv из readr, который в RStudio заменил предыдущий метод
  3. load и readRDS из base, и
  4. read_feather из feather и fread из data.table.

Читать полностью »

Centrifugo – 3.5 миллиона оборотов в минуту - 1

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

Клиентам, внедряющим твердотельные накопители текущего поколения, такие как Intel DC NVMe серии P3700, приходится справляться со сложной проблемой: поскольку пропускная способность гораздо выше, чем у дисковых накопителей, а задержки гораздо ниже, большая часть общего времени транзакций теперь приходится на работу программного обеспечения хранилища. Другими словами, производительность и эффективность всей системы хранения данных все сильнее зависят от производительности и эффективности используемого программного набора. При этом носители данных постоянно совершенствуются, в ближайшие годы их мощность превзойдет возможности программных архитектур, используемых в системах хранения данных.

Введение в Storage Performance Development Kit (SPDK) - 1

Для помощи ОЕМ-производителям и поставщикам программного обеспечения в интеграции такого оборудования корпорация Intel создала набор драйверов и разработала полную архитектуру хранилища под названием Storage Performance Development Kit (SPDK). Цель SPDK — подчеркнуть высокую эффективность и производительность, достигаемые совокупностью технологий Intel в области сетей, вычислений и хранения данных. С помощью SPDK удалось продемонстрировать, что можно достичь великолепных показателей в миллионы операций ввода-вывода в секунду, используя несколько процессорных ядер и несколько накопителей NVMe без какого-либо дополнительного оборудования для разгрузки. Intel предоставляет полный исходный код эталонной архитектуры для Linux на условиях более широкой и либеральной лицензии BSD, он распространяется в сообществе через GitHub. По адресу spdk.io находятся блог, список рассылки и дополнительная документация.
Читать полностью »


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