Aimfund: HFT, low latency, мониторинг и Ко.

В этом выпуске Артем Верхоглядов из компании Aimfund рассказывал, как построена разработка и эксплуатация в проекте их высокочастотной торговой системы.

Специфика low-latency HFT (High Frequency Trading) в том, что система, определившая возможность получения выгоды на бирже, должна среагировать настолько быстро, насколько это возможно. При этом играет роль практически все: даже удаленность сервера от биржи. Например, round trip меньше 1 мс получить невозможно, если это расстояние больше ~150 км, какое бы оборудование у вас ни было. Причина - скорость света.

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

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

Дальше поговорили о том, как анализировать логи и метрики, собранные с таким высоким временным разрешением. Например, Riemann, который мы как-то обсуждали в выпуске про мониторинг, имеет временное разрешение в 1 мс. А необходимо обрабатывать последовательные события с наносекундными интервалами. Здесь тоже было сделано свое решение, идеалогически похожее на Riemann.

Ну и, конечно, поговорили про специфический процесс разворачивания. Из-за того, что почти все серверы, предоставляемые биржами, разные, и в разных регионах требуются различные стратегии и оптимизации, то сборка C++ кода производится прямо на production машинах, непосредственно перед запуском.

Обязательно посмотрите презентацию, которую подготовил Артем: https://www.slideshare.net/secret/3ZOoKnyKLFaFwq

Участники выпуска:

comments powered by Disqus