Звіт про інциденти продуктивності

2020-02-22

 

Останній тиждень був складним. Це був хороший тиждень для криптовалюти і біржового бізнесу. Bitcoin і інші криптовалюти росли так само, як об’єми торгів і доходи бірж. Але для ряду наших користувачів і для наших розробників це був важкий тиждень. Ми зіткнулися із низкою проблем з продуктивністю, які негативно вплинули на доступ до нашої платформи. Ми вважаємо, що завжди варто дотримуватися прозорості, тому публічно розкриваємо все, що відбувалося за лаштунками.

Різниця між ціною BTC в 10 000 доларів зараз і моментом, коли ціна досягла цього значення востаннє, полягає в тому, що зараз користувачів набагато більше. Хоча це однозначно явна ознака відновлення криптовалютного ринку, але це створює значне навантаження для наших систем.

За останні кілька днів ми зіткнулися із двома основними проблемами:

1. Періодичні помилки інтерфейсу для користувача: «Too many requests», «5xx internal error» і помилки тайм-ауту API. Це сталося через те, що система середнього рівня стала досить швидко перевантажена. Кожен користувач, якого торкнулася ця проблема, став намагатися кілька разів виконати ордер, що ще більше збільшило навантаження на систему. Проблема була вирішена у короткостроковій перспективі за рахунок збільшення рівня ресурсів. Однак і у цього підходу є свої обмеження. Через складну природу даного модуля він не може автоматично масштабуватися, в той час як новий екземпляр вимагає близько 30-40 хвилин для синхронізації вихідного знімка, щоб мати можливість обробляти нормальний трафік. Роботи з усунення проблеми вже велися, але не були закінчені до того, як кілька днів тому назад сильно зріс трафік. Зараз ми підвищили пріоритет цієї проблеми і орієнтуємося на те, щоб закінчити у найближчі дні. Також з'явиться додаткова оптимізація на стороні клієнта у вигляді поліпшення обробки помилок і запобігання подальшого збільшення навантаження на систему.

2. Затримки оновлення ринкових даних/ордерів/балансу. У нас також були деякі проблеми із брокерськими повідомленнями. Один із підкомпонентів таких повідомлень, який зазвичай видає 2.5ГБ+ даних в секунду, раптово знизив пропускну здатність в 100 разів, викликаючи резервне копіювання повідомлень, що призводило до затримок у книзі ордерів, а також до затримок оновлення балансу користувача. В іншому випадку під навантаженням, коли працював лише один вузол, впав кластер Kafka. Перезапуск вирішив негайну проблему/основні причини. В даний час ведуться середньострокові поліпшення для подальшого їх поділу на окремі теми, які будуть оброблятися декількома кластерами Kafka. Передбачається, що це збільшить пропускну здатність цього компонента приблизно в 10 разів і ми реалізуємо цю функцію на цьому тижні. Довгострокові рішення також знаходяться у розробці для подальшого збільшення потужності і будуть реалізовані найближчим часом.

Дивлячись на ширшу картину, ми впровадили безліч корисних функцій під час ведмежого ринку, і, хоча ми багато разів проводили тестування на баги у нашому тестовому середовищі, тестова платформа не завжди відображає реальність, в якій ми маємо десятки мільйонів користувачів по всьому світу. Були проблеми із "падінням продуктивності", наприклад при додавані навантаження/стресу до існуючого повідомленням брокера. Ми вважали, що у нас все ще є запас продуктивності в 10-100 разів, в той час як у дійсності він становив 3-5 разів. При цьому з точки зору системних навантажень ринок зростає великими сплесками, не в 3-5 разів, а в 10+ раз.

Позитивним моментом є те, що всі ці проблеми ми можемо вирішити. Наша архітектура надійна, і у нас одна із кращих і здатних команд у всій криптовалютній індустрії. Ми вирішимо ці проблеми швидко, в середній і довгостроковій перспективі. Але я не в змозі гарантувати плавну роботу системи на даний момент. Ми обов'язково зіткнемося із труднощами і в майбутньому, але вже знаючи, що швидко їх вирішимо.

За свою коротку історію Binance зіткнулася із багатьма проблемами, всі вони були успішно вирішені. Вирішуючи прості завдання, Binance не стала б лідером галузі - ми пишаємося тим, що вирішуємо складні завдання, забезпечуючи при цьому надійний захист користувачів.

Якщо ви відчуваєте, що на вас недобросовісно вплинули проблеми, які нещодавно виникали на Binance.com, будь ласка, надішліть якомога детальнішу інформацію у підтримку тут, і команда перегляне її якнайшвидше.

Ми завжди віримо, що прозорість є основою світу блокчейну. Ми не боїмося викликів і труднощів; що ще більш важливо, у нас є мужність і здатність нести відповідальність. Захист користувачів є нашою основною цінністю. Хоча ми старанно працюємо над подальшою оптимізацією наших систем, ми продовжимо прозоро розкривати інформацію.

Я прошу вибачення за заподіяні незручності, ми дуже цінуємо вашу підтримку. Як завжди, я буду активний у Твіттері, де ви можете зі мною зв'язатися.

- CZ, CEO @Binance