Архив метки: low-latency

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

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

Читать далее

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

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

Читать далее

Привязываем процесс к процессору с помощью taskset

Данный простой пример запускает два Java-процесса на Linux-машине. Один процесс посылает сообщения, а второй получает эти сообщения через UDP-протокол через сетевой loopback-интерфейс. Пример призван показать, что привязка процесса к ядру процессора (affinity) позволяет увеличить производительность процесса, уменьшить разброс (jitter) значений latency. В конце статьи я объясняю, почему это происходит.

Читать далее

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

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

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

Читать далее

Что такое нестабильность latency (jitter), и как с нею бороться

При написании low-latency приложения мы боремся не только за low-latency, но и за стабильность этой low-latency.

Читать далее