getRecentPerformanceSamples предоставляет снимок последних показателей производительности сети Solana. Он возвращает список выборок, которые формируются примерно каждые 60 секунд и содержат сведения о количестве транзакций и слотов, обработанных за эти периоды. Эти данные особенно полезны для мониторинга пропускной способности и состояния сети. Подробнее о таких показателях производительности Solana, как TPS и время слота, читайте в руководстве по использованию Solana в корпоративной среде.
Распространенные сценарии использования
- Мониторинг состояния сети: Отслеживайте скорость обработки транзакций и создания слотов, чтобы оценивать общее состояние сети и выявлять возможную перегрузку или замедление работы.
- Анализ производительности: Анализируйте исторические данные о производительности, чтобы понимать поведение сети в различных условиях.
- Панели мониторинга: Отображайте ключевые показатели эффективности (KPI), такие как количество транзакций в секунду (TPS) и слотов в минуту, на панелях мониторинга.
- Планирование ресурсов: Отслеживайте тенденции изменения нагрузки на сеть, чтобы принимать обоснованные решения о масштабировании приложений или инфраструктуры.
Параметры запроса
limit(usize, необязательный):- Количество последних выборок производительности, которые требуется вернуть.
- Максимальное значение:
720(соответствует примерно 12 часам данных, поскольку выборки формируются каждые 60 секунд). - Если параметр не указан, RPC-узел вернет количество выборок по умолчанию (точное значение зависит от провайдера RPC).
Структура ответа
Полеresult ответа JSON-RPC представляет собой массив объектов выборок производительности, возвращаемых в обратном хронологическом порядке (сначала самая последняя выборка). Каждый объект имеет следующую структуру:
slot(u64): Номер слота, в котором была зарегистрирована эта выборка производительности.numTransactions(u64): Общее количество транзакций (включая голосующие и неголосующие транзакции), обработанных в течение периодаsamplePeriodSecs, предшествующего этому слотуslot.numSlots(u64): Количество слотов, обработанных в течение периодаsamplePeriodSecs, предшествующего этому слотуslot.samplePeriodSecs(u16): Продолжительность периода формирования этой выборки в секундах (обычно60).numNonVoteTransactions(u64): Количество обработанных в течение периодаsamplePeriodSecsтранзакций, которые не являлись транзакциями консенсусного голосования.
Примеры
1. Получение последних 5 выборок производительности
В этом примере запрашиваются пять последних выборок производительности сети.2. Получение количества выборок производительности по умолчанию
В этом примере параметрlimit не указывается, поэтому у RPC-узла запрашивается количество выборок по умолчанию.
Рекомендации разработчикам
- Интервал выборки: Выборки обычно формируются каждые 60 секунд, но это приблизительное значение. Поле
samplePeriodSecsв ответе указывает фактическую продолжительность каждой выборки. - Ограничение исторических данных: Максимальное значение
limit, равное 720 выборкам, охватывает примерно 12 часов исторических данных. Для долгосрочного анализа производительности необходимо использовать внешнее журналирование и агрегирование данных. - Голосующие и неголосующие транзакции:
numTransactionsвключает все транзакции, аnumNonVoteTransactionsучитывает только транзакции, не являющиеся частью процесса консенсусного голосования. Последний показатель часто лучше отражает активность пользователей в сети. - Различия между узлами: Точные данные на разных RPC-узлах могут немного различаться в зависимости от состояния их синхронизации и локального представления сети на момент формирования выборки.
getRecentPerformanceSamples, разработчики и наблюдатели сети могут получать ценную информацию о рабочем состоянии и пропускной способности сети Solana.