Архив метки: performance

Утилита isolcpus для изолирования ядер процессора в Linux

В данной статье я расскажу, как на Linux изолировать ядро процессора с помощью утилиты isolcpus.

В результате изоляции планировщик ОС Linux не будет размещать на указанных ядрах никакие пользовательские процессы. Запустить нужный процесс на изолированном ядре возможно будет только с помощью утилиты taskset. В результате изоляции на выделенных ядрах будут работать потоки только вашего процесса, планировщик не будет пытаться перенести их на другие ядра, а также не будет пытаться запустить на указанных ядрах другие процессы, которые бы вытесняли и прерывали потоки исполнения вашего процесса.

Читать далее

Руслан Черемин: Когда имеет смысл передавать IO в отдельный поток?

Допустим, у нас есть простая система, которая принимает запросы из сети, как-то их обрабатывает («бизнес-логика»), и отправляет результат назад, в сеть. Мы заинтересованы в быстром отклике (=latency), а отправка – это IO, так что возникает идея ее снести в отдельный поток.

Но тогда придется передавать данные из основного потока в поток отправки – а межпоточная коммуникация это какие-то накладные расходы (копирование, инструкции синхронизации, т.п.)

Стоит ли вообще игра свеч, и если стоит – то когда?

Тонкости устройства биржевого шлюза

Мартин Томпсон в своей презентации о совеременных биржевых технологиях поднял интересную тему «честности» доступа к бирже.

Читать далее

Что надо знать программисту об устройстве современного процессора

Данная статья — всего лишь краткое введение в основные концепции устройства современного процессора. Цель статьи — дать основы, чтобы при объяснении каких-то нюансов в других статья я не повторялся. Все отсылки из тех статей к техническим подробностям и деталям будут вести сюда.

Читать далее

Замеры производительности, сбор статистики и персентили

В low-latency торговых системах важна не средняя оценка jitter/latency, а оценка в персентилях. Значения задержек по персентилям является важным показателем скорости работы вашей торговой системы. Почему? Для начала, что такое персентиль? Это понятие из статистики, которое объяснено в Википедии вполне точно.

Если, скажем, наша система из 1000 событий 999 событий обрабатывает за 1 секунду каждое, а какое-то одно за 100 секунд, наше среднее арифметическое значение latency составит 1,099 секунды ([999х1 + 1х100]/1000). Но в реальной жизни это значение не имеет никакого смысла, как и средняя температура по больнице или средняя зарплата по стране.

Читать далее