Skip to main content
Метод RPC getRecentPerformanceSamples предоставляет снимок последних показателей производительности сети Solana. Он возвращает список выборок, которые формируются примерно каждые 60 секунд и содержат сведения о количестве транзакций и слотов, обработанных за эти периоды. Эти данные особенно полезны для мониторинга пропускной способности и состояния сети. Подробнее о таких показателях производительности Solana, как TPS и время слота, читайте в руководстве по использованию Solana в корпоративной среде.

Распространенные сценарии использования

  • Мониторинг состояния сети: Отслеживайте скорость обработки транзакций и создания слотов, чтобы оценивать общее состояние сети и выявлять возможную перегрузку или замедление работы.
  • Анализ производительности: Анализируйте исторические данные о производительности, чтобы понимать поведение сети в различных условиях.
  • Панели мониторинга: Отображайте ключевые показатели эффективности (KPI), такие как количество транзакций в секунду (TPS) и слотов в минуту, на панелях мониторинга.
  • Планирование ресурсов: Отслеживайте тенденции изменения нагрузки на сеть, чтобы принимать обоснованные решения о масштабировании приложений или инфраструктуры.

Параметры запроса

  1. 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.