Архив за месяц: Октябрь 2020

Рыночные данные на бумажной ленте

До появления тикера цены с бирж разносили мальчики-подростки, бегавшие от Нью-Йоркской биржи по брокерским конторам с новостями. Текущие цены на акции они записывали в блокноты (pads), поэтому их называли «pad shovers».

Эдвард Калахан (Edward Calahan), работник телеграфной компании Western Union, приехав в 1867 году в Нью-Йорк, был поражен толпами этих мальчишек, перекрикивающих друг друга в толпе возле Нью-Йоркской биржи. При такой организации ошибки, искажения, обманы были обычным делом. Он понял, что здесь для телеграфного бизнеса скрыта золотая жила. Достаточно провести в каждую брокерскую контору телеграф с биржи, и все брокерские конторы будут получать цены без ошибок и отпадет надобность в курьерах.

Читать далее

Многозадачность операционной системы и low-latency

На современной серверной машине low-latency процесс работает на многозадачной операционной системе. Это может быть Solaris, Linux, FreeBSD или Windows Server. Помимо нашего процесса в ОС работают еще и другие процессы, которым ОС тоже должна выделять машинное время. Собственно потому ОС и называется многозадачной.

Конкретный процесс работает определенное время до тех пор пока:

  • не произойдет вызов операции ввода-вывода. Тогда процесс останавливается и ждет окончания — поступления данных. Это может быть ожидание очередной порции байтов из сети или загрузка с диска каких-то данных или страницы памяти (page fault), или окончания записи данных в систему вывода: это может быть запись данных в сеть или запись их на диск (page swap);
  • не истечет выделенное ядром ОС время, после чего ядро приостанавливает исполнение процесса. Специальный модуль ядра «планировщик» (scheduler) выбирает следующий в очереди процесс и начинает его исполнять. Такое переключение происходит примерно каждые 20~50 миллисекунд.

В данной статье пойдет речь о том, как многозадачная операционная система влияет на исполнение нашего процесса и как мы можем побороть это влияние с целью достижения low-latency.

Читать далее

В помощь разработчику: Vagrant

Давно установил VirtualBox, чтобы на домашней машине под Windows играться с Linux CentOS и исследовать различные настройки, конфигурации и программные пакеты. Но заметил, что много времени уходит на создание виртуалок и установку с нуля очередного образа CentOS, пусть даже и минимального. Захотелось больше гибкости и скорости в создании вируталок и их подготовке к работе.

И вот наткнулся на Vagrant и поигрался с ним за несколько дней выходных, обращаясь за руководством к имеющимся книжкам по теме, форумам и документации.

Читать далее

Как jcmd помогает настроить JVM для low-latency

Утилиту jcmd добавили в Java 7 и с тех пор она считается главной утилитой, с помощью которой вы отныне будете заглядывать внутрь JVM и замерять все параметры ее работы. Все остальные утилиты типа jps, jstack, jinfo и проч. считаются теперь устаревшими и скоро в каком-то из будущих релизов JDK будут удалены. Предполагается, что jcmd заменит их всех. Давайте посмотрим, как работает утилита, и что полезного с ее помощью можно узнать о работающем приложении и как эта информация может нам пригодиться для настройки JVM и самого приложения с целью достижения low-latency.

Читать далее

infoq.com: Интервью с создателями Shenandoah

Информационный сайт infoq.com встретился с работниками компании Red Hat Шипилевым и Кеннке и провел с ними интервью о сборщике мусора Shenandoah, который разрабатывается в Red Hat и предназначен для быстрой сборки мусора на больших объемах памяти.