Perfscale news #13. Выжигание WASM модулей, http3 и первый postmortem

Всех категорически приветствую, любители больших количеств девяток! [прим. — количество девяток означает, сколько сервис у нас доступен. Например, когда говорят «три девятки», то имею ввиду 99,9% доступность сервиса. Если переводить на человеческий, то это означает, что допускается простой в ~8-9 часов в год]

Сегодня в выпуске у нас будет интересности, ну а начнем мы как всегда с истории прошлых выпусков

Прошлые выпуски

  • Новости Perfscale № 1

  • Perfscale news #2: Fix Protocol, Magic metrics и MCP

  • perfscale news #3 Websocket, Inference, NPM

  • Perfscale news #4. GRPC, Fixed Triggers, Child Process

  • Perfscale news #5. SQL, Thresholds, неработающие Linked Accounts

  • Perfscale news #6. GraphQL, поддержка Import, и метрики

  • Perfscale news #7. Fix Import, SOAP, and more HTTP metrics

  • Perfscale news #8. WS Benchmark, Jmeter open sourced & fixed linked accounts

  • Perfscale news #9. GPU, LLM, Docker images

  • Perfscale news #10. Shared variables, Pub/Sub load testing & live metrics

  • Perscale news #11. Fine‑grained token, SQID, stdout log streaming

  • Perfscale news #12. WASM-библиотеки, SDK для авторов и «живые» логи

Итак, начинам как и всегда с OSS

Perfscale OSS

Выжигание модулей

Для тех, кто пропустил — мы добавили возможность писать свои библиотеки, выпустили SDK на Rust и TS (GoLang еще в пути, тут есть шероховатости, признаю). Внимательный зритель припомнит фразу с прошлого выпуска:

Да, мы потеряем в «скорости», но ждите следующей недели, там будет интересно!

И вот мы дождались. Чтобы не терять вы скорости так сильно и приблизится к более «нативному» вызову внешних библиотек мы сделали имбу — Теперь wasm модули «выжигаются» прямо в бинарник самого perfscale, что приводит к тому, что мы почти не теряем в скорости, по сравнению с хардкодом. Ну т.е. мы все равно теряем в скорости, но не так катострофично. «На глаз» были такие метрики, которые мы проводили на примере random.

Примечение: В perfscale этот этап называется burn. Есть и обратный процесс, называется deburn, когда мы внешний модуль «отсоединяем» от самого бинарника perfscale.

Модуль perfscale

Speed

native random

1 (эталонные значения)

wasm (no burn, cold run)

1.11 ± 0.01 (~10-12%)

wasm (no burn, hot run)

1.09 ± 0.01 (~9-11%)

wasm (burn)

1.01 ± 0.01 (~1-3%)

Кстати, вам же доступен еще helm chart для perfscale oss. Этот момент я упустил в прошлый раз, поэтому сообщаю сейчас!

Ну и помелочи: поправили formatter в CI и dependabots алерты, CVE также не должны пройти 🙂

Perfscale platform

Выжигание модулей

Да, мы не забыли и про платформу, чтобы вам было удобнее пользоваться, модули выжигаются прямо в машине напрямую и этот процесс автоматизирован. Т.е. добавили wasm модуль -> бинарник уже обновился на машине автоматом. Выжигание также доступно и по API запросам.

machines -> machine details.std/random — уже предустановлен и удалить его нельзя, а вот внешние библиотеки можно спокойно удалять » title=»admin -> machines -> machine details.std/random — уже предустановлен и удалить его нельзя, а вот внешние библиотеки можно спокойно удалять » width=»2276″ height=»288″ decode=»async»>admin -> machines -> machine details.std/random — уже предустановлен и удалить его нельзя, а вот внешние библиотеки можно спокойно удалять

HTTP3

Да, теперь сайт perfscale.ru теперь отдает HTTP3 запрос. Кстати, Cloudflare сам умеет «заворачивать» HTTP2 в HTTP3, это приятный бонус, который требует ровно 0 усилий, поэтому perfscale.su изначально поддерживал HTTP3 и даже не требовал деплоя

https://http3check.net/?host=perfscale.ruhttps://http3check.net/?host=perfscale.ru

ну и переходим на самое сладкое, что вы и ждете: феилы и postmorterms

Postmortem

При рестарте keycloak и nginx одновременно мы столкнулись с тем, что при пересоздании nginx потерялся LE-сертификат → и логин .ru был сломан. Сломан был он примерно ~20 часов! А все дело было в том, что агент мне нашел проблему но в этот момент я не был у компа физически и не смог быстро отреагировать, а вернувшись в нетрезвом состоянии — я решил чинить проблему только на трезвую голову(о чем ни на секунду не пожалел, мудрое решение). Посмотрев логи сервера, я понял, что никто кроме агента не стучался на эту ручку, повезло!

Кстати, этот инцедент никак не задел .su домен. Все дело в том, что это разные сервера и соотвественно есть отличия для деплоя, поэтому если вы пользовались .su у вас ничего не поменялось.

Ну а на этом все в этой неделе все! Традиционно желаю вам не болеть в столь прохладную осень и быть в добром здравии не только вам, но и сервисам быть на уровне пяти девяток(99,999%)!

Ссылки

  • perfscale charts: https://github.com/Perfscale/charts

  • perfscale github: https://github.com/Perfscale/perfscale

  • perfscale docs [.ru]: https://perfscale.ru/docs/getting-started

  • perfscale docs [.su]: https://perfscale.su/docs/getting-started

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев