Том Уэллинг стал героем вирусного обсуждения после публикации фото из отеля «ПСЖ» обыграл «Манчестер Сити» со счётом 4:2 в Лиге чемпионов На фестивале «Маяк» показали фильмы Тимы Анисимова, Никиты Троценко и Павла Лунгина «Ростелеком» изучает создание корпоративного LLM-фаервола ITMS объявила о смене названия на BFT В Кемерово продолжается расследование смерти Татула Петросяна Блогер Егорик сравнил работу с зумерами и миллениалами В России насчитали 7,88 млн единиц коммерческого транспорта Зеленский согласился провести выборы при 60-дневном перемирии Что такое «Mar-a-Lago face» и почему в нём увидели политический стиль В Нигерии умерла актриса и победительница конкурса красоты Тения Абрахам Сэмюэл Л. Джексон садится за руль бронированного лимузина в боевике «Зверь» Музыкальные сервисы начали менять названия и тексты песен из-за новых требований закона «Динамо» повторило клубный рекорд по победам подряд в РПЛ Wildberries начал тестировать сервис объявлений об услугах частных специалистов Игра Cancel Your Subscription превращает отмену подписки в испытание В RuStore появился платный российский мессенджер «Молния» Конор Кеннеди и Джулия Бе сыграли свадьбу в Рио-де-Жанейро Устройство Encora получило разрешение FDA для помощи при эссенциальном треморе Юра Борисов стал членом Американской киноакадемии накануне премьеры в Лондоне
Лента новостей
Технологии

Perfscale перевёл метрики на шардинг и увеличил пропускную способность записи

В новом OSS-релизе Perfscale переработали метрики, обновили serve, CI и self-update, добавили очистку кэша и начали точечную сборку модулей.

Perfscale перевёл метрики на шардинг и увеличил пропускную способность записи
Фото: Хабр

Новый выпуск Perfscale целиком посвящён изменениям в открытой части проекта. Авторы отмечают, что почти все обновления на этот раз связаны с метриками, а выпуск тестов и изменений ограничен из-за исчерпания доступных минут GitHub Actions: сейчас используется около 90% лимита.

Шардированные метрики ускорили запись

Главным изменением стала переработка структуры хранения метрик. Вместо единого объекта Arc<Mutex<Metrics>> теперь используется шардированная структура ShardedMetrics — вектор из нескольких mutex-блокировок. Благодаря этому потоки меньше конкурируют за общий ресурс и могут работать параллельно.

На тесте с 16 потоками пропускная способность записи выросла с 14,7 млн до 118,6 млн операций в секунду. При этом разработчики предупреждают, что итоговые показатели зависят не только от Perfscale: ограничением могут стать системные значения ulimit и доступное количество сокетов в операционной системе.

Обновления serve и проверка SQL-сценариев

Команду serve и сервер постепенно расширяют. При запуске serve и открытии интерфейса в браузере теперь доступна документация на двух языках. Те же версии документации опубликованы в разделах для английского и русского языков.

В проекте также обновили ежедневный bench-профиль, который сравнивает Perfscale с Locust, k6 и JMeter в разных сценариях и помогает отслеживать утечки. После появления поддержки SQL в тестах обнаружилось, что для k6 не хватало соответствующих замеров. Теперь в сравнении используется не стандартный k6, а кастомная сборка xk6-sql с драйвером PostgreSQL.

В сценариях проверяются PostgreSQL через переменную BENCH_PG_DSN и встроенный SQLite в памяти с размером пула 1. Для Perfscale сравниваются холодные подключения с запросом SELECT 1, варианты с параметрами, постоянный пул соединений и транзакционные операции. Locust работает через psycopg2, JMeter — через JDBC-пул, а xk6-sql использует одно соединение на виртуального пользователя и выполняет запрос на каждой итерации. Для JMeter в консольном отчёте отсутствуют перцентили, поэтому значение p95 для него не выводится.

Кэш, обновления и проверки зависимостей

В командной строке появилась команда perfscale cache clean для удаления кэша скачанных модулей. Механизм self-update стал интерактивным и получил повторные попытки для медленных сетей. При необходимости автоматическое выполнение можно включить флагом --non-interactive.

Dev-сборки теперь маркируются версиями формата 0.25.0-next.N+g. По выводу команды --version можно сразу определить, что используется промежуточная сборка, а не официальный релиз.

Для CI усилили проверку контрольных сумм и добавили SHA-пины в GitHub Actions, GitLab CI и Helm-чарты. Если раньше несоответствие вызывало предупреждение, теперь такая проверка приводит к ошибке и останавливает сборку.

sdk-js архивирован, модули будут собираться точнее

Репозиторий sdk-js заархивировали: он больше не использовался, а расширения перенесли в sdk-libraries и WASM-модули.

Отдельное направление работы связано с размером бинарных файлов. В Perfscale накопилось много pro-модулей, включая SOAP, FIX, LLM, Pub/Sub и SQL, однако конкретному пользователю обычно нужна только часть возможностей. Поэтому разработчики начали переходить к точечному запеканию модулей: если сценарий использует только pro/sql, в бинарник не потребуется включать SOAP, FIX и остальные расширения.

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

Источник
404 Media

Читайте новые материалы журнала — свежие сюжеты каждый день.

На главную

На конференции разработчиков свободного ПО представили ALT Atomic, OpenTitan, LoongArch и проекты с ИИ

В Переславле-Залесском прошла XXII конференция разработчиков свободного ПО. Участники обсудили атомарные системы, новые архитектуры, робототехнику, ИИ и инструменты разработки.

На конференции разработчиков свободного ПО представили ALT Atomic, OpenTitan, LoongArch и проекты с ИИ
Технологии