Вчера, 17 мая 2018 года, торговый модуль BitMEX столкнулся с несколькими отдельными и до сих пор труднопредсказуемыми проблемами, которые привели к задержкам в подаче данных, а также периодам отключения в течение дня.
Производительность жестких дисков, на которых базируется основной торговый модуль, резко ухудшилась примерно в 10:00 UTC. Это ухудшение привело к задержкам в подаче данных при выполнении запланированных работ по архивированию и ре-индексированию, в результате приведшим к значительной задержке в исполнении ордеров. Операции ввода-вывода выполнялись примерно на 1/20 производительности.
BitMEX использует резервные диски, однако, в этом случае оба резервных диска демонстрировали низкую производительность. У нас не было другого выбора, кроме как вынужденно остановить торги для их замены. К сожалению, фоновая нагрузка достигла критического уровня быстрее, чем мы рассчитывали, поэтому мы скорректировали наши планы.
Эта проблема никак не повлияла на сохранность данных, но восстановление рабочего состояния аппаратной части со штатной производительностью жестких дисков потребовало больше времени для исполнения и верификации.
После выполнения данной задачи мы восстановили функции трейдинга. К сожалению, при последующем архивировании обнаружилась другая проблема, когда работа по индексированию в сочетании с рядом редких запросов привела к неожиданному повторному пересчету индекса и повторной валидации отдельных таблиц данных. Это привело к очередному повышению фоновой нагрузки с похожими симптомами.
Мы идентифицировали и устранили все многочисленные следствия вышеописанного поведения системы. Специалисты по работе с торговым модулем будут пристально следить за его производительностью в течение дня, одновременно анализируя основные причины замедления работы.