Перейти к основному содержимому
Версия: 2.0.x

Наблюдаемость Data Cache

В более ранних версиях отсутствовали богатые метрики или эффективные методы для мониторинга производительности, использования и состояния Data Cache.

В версии v1.5.2 Selena улучшает наблюдаемость Data Cache, предлагая эффективные методы мониторинга и больше метрик. Пользователи теперь могут проверять общее использование диска и памяти Data Cache, а также связанные метрики, улучшая мониторинг использования кэша.

ПРИМЕЧАНИЕ

Начиная с версии v1.5.2, запросы к внешним catalog и cloud-native таблицам (в shared-data cluster) используют единый экземпляр Data Cache. Поэтому, если не указано иное, следующие методы по умолчанию отображают метрики самого экземпляра Data Cache, который включает использование кэша запросов как к внешним catalog, так и к cloud-native таблицам.

SQL-команды

Вы можете выполнять SQL-команды для просмотра ёмкости и использования Data Cache на каждом узле BE.

SHOW BACKENDS

Поле DataCacheMetrics записывает используемое дисковое пространство и память Data Cache на конкретном BE.

mysql> show backends\G
*************************** 1. row ***************************
BackendId: 10004
IP: XXX.XX.XX.XXX
HeartbeatPort: 4450
BePort: 4448
HttpPort: 4449
BrpcPort: 4451
LastStartTime: 2023-12-13 20:09:30
LastHeartbeat: 2023-12-13 20:10:43
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
TabletNum: 48
DataUsedCapacity: 0.000 B
AvailCapacity: 280.103 GB
TotalCapacity: 1.968 TB
UsedPct: 86.10 %
MaxDiskUsedPct: 86.10 %
ErrMsg:
Version: datacache-heartbeat-c68caf7
Status: {"lastSuccessReportTabletsTime":"2023-12-13 20:10:38"}
DataTotalCapacity: 280.103 GB
DataUsedPct: 0.00 %
CpuCores: 104
NumRunningQueries: 0
MemUsedPct: 0.00 %
CpuUsedPct: 0.0 %
DataCacheMetrics: Status: Normal, DiskUsage: 0.00GB/2.00GB, MemUsage: 0.00GB/30.46GB
1 row in set (1.90 sec)

information_schema

Представление be_datacache_metrics в information_schema записывает следующую информацию, связанную с Data Cache.

mysql> select * from information_schema.be_datacache_metrics;
+-------+--------+------------------+-----------------+-----------------+----------------+-----------------+----------------------------------------------------------------------------------------------+
| BE_ID | STATUS | DISK_QUOTA_BYTES | DISK_USED_BYTES | MEM_QUOTA_BYTES | MEM_USED_BYTES | META_USED_BYTES | DIR_SPACES |
+-------+--------+------------------+-----------------+-----------------+----------------+-----------------+----------------------------------------------------------------------------------------------+
| 10004 | Normal | 2147483648 | 0 | 32706263420 | 0 | 0 | [{"Path":"/home/disk1/datacache","QuotaBytes":2147483648}] |
+-------+--------+------------------+-----------------+-----------------+----------------+-----------------+----------------------------------------------------------------------------------------------+
1 row in set (5.41 sec)
  • BE_ID: ID узла BE
  • STATUS: статус BE
  • DISK_QUOTA_BYTES: ёмкость дискового кэша, настроенная пользователями, в байтах
  • DISK_USED_BYTES: использованное пространство дискового кэша, в байтах
  • MEM_QUOTA_BYTES: ёмкость кэша памяти, настроенная пользователями, в байтах
  • MEM_USED_BYTES: использованное пространство кэша памяти, в байтах
  • META_USED_BYTES: пространство, используемое для кэширования метаданных
  • DIR_SPACES: путь кэша и его размер

Вызов API

Начиная с версии v1.5.2, Selena предоставляет два API для получения метрик кэша, которые отражают состояние кэша на разных уровнях:

  • /api/datacache/app_stat: Запрос коэффициента попадания Block Cache и Page Cache.
  • /api/datacache/stat: базовое состояние выполнения Data Cache. Этот интерфейс в основном используется для обслуживания и выявления узких мест Data Cache. Он не отражает фактический коэффициент попадания запроса. Обычным пользователям не нужно обращать внимание на этот интерфейс.

Просмотр метрик попадания в кэш

Просмотрите метрики попадания в кэш, обратившись к следующему интерфейсу API:

http://${BE_HOST}:${BE_HTTP_PORT}/api/datacache/app_stat

Возврат:

{
"block_cache_hit_bytes": 1642106883,
"block_cache_miss_bytes": 8531219739,
"block_cache_hit_rate": 0.16,
"block_cache_hit_bytes_last_minute": 899037056,
"block_cache_miss_bytes_last_minute": 4163253265,
"block_cache_hit_rate_last_minute": 0.18,
"page_cache_hit_count": 15048,
"page_cache_miss_count": 10032,
"page_cache_hit_rate": 0.6,
"page_cache_hit_count_last_minute": 10032,
"page_cache_miss_count_last_minute": 5016,
"page_cache_hit_rate_last_minute": 0.67
}
МетрикаОписание
block_cache_hit_bytesБайты, прочитанные из Block Cache.
block_cache_miss_bytesБайты, прочитанные из удалённого хранилища (промахи Block Cache).
block_cache_hit_rateКоэффициент попадания Block Cache, (block_cache_hit_bytes / (block_cache_hit_bytes + block_cache_miss_bytes)).
block_cache_hit_bytes_last_minuteБайты, прочитанные из Block Cache за последнюю минуту.
block_cache_miss_bytes_last_minuteБайты, прочитанные из удалённого хранилища за последнюю минуту.
block_cache_hit_rate_last_minuteКоэффициент попадания Block Cache за последнюю минуту.
page_cache_hit_countКоличество страниц, прочитанных из Page Cache.
page_cache_miss_countКоличество промахов страниц в Page Cache.
block_cache_hit_rateКоэффициент попадания Page Cache: (page_cache_hit_count / (page_cache_hit_count + page_cache_miss_count)).
page_cache_hit_count_last_minuteКоличество страниц, прочитанных из Page Cache за последнюю минуту.
page_cache_miss_count_last_minuteКоличество промахов страниц в Page Cache за последнюю минуту.
page_cache_hit_rate_last_minuteКоэффициент попадания Page Cache за последнюю минуту.

Просмотр базового состояния выполнения Data Cache

Вы можете получить более детальные метрики о Data Cache, обратившись к следующим интерфейсам API.

http://${BE_HOST}:${BE_HTTP_PORT}/api/datacache/stat

Результаты выглядят следующим образом:

{
"page_cache_mem_quota_bytes": 10679976935,
"page_cache_mem_used_bytes": 10663052377,
"page_cache_mem_used_rate": 1.0,
"page_cache_hit_count": 276890,
"page_cache_miss_count": 153126,
"page_cache_hit_rate": 0.64,
"page_cache_hit_count_last_minute": 11196,
"page_cache_miss_count_last_minute": 9982,
"page_cache_hit_rate_last_minute": 0.53,
"block_cache_status": "NORMAL",
"block_cache_disk_quota_bytes": 214748364800,
"block_cache_disk_used_bytes": 11371020288,
"block_cache_disk_used_rate": 0.05,
"block_cache_disk_spaces": "/disk1/sr/be/storage/datacache:107374182400;/disk2/sr/be/storage/datacache:107374182400",
"block_cache_meta_used_bytes": 11756727,
"block_cache_hit_count": 57707,
"block_cache_miss_count": 2556,
"block_cache_hit_rate": 0.96,
"block_cache_hit_bytes": 15126253744,
"block_cache_miss_bytes": 620687633,
"block_cache_hit_count_last_minute": 18108,
"block_cache_miss_count_last_minute": 2449,
"block_cache_hit_bytes_last_minute": 4745613488,
"block_cache_miss_bytes_last_minute": 607536783,
"block_cache_read_disk_bytes": 15126253744,
"block_cache_write_bytes": 11338218093,
"block_cache_write_success_count": 43377,
"block_cache_write_fail_count": 36394,
"block_cache_remove_bytes": 0,
"block_cache_remove_success_count": 0,
"block_cache_remove_fail_count": 0,
"block_cache_current_reading_count": 0,
"block_cache_current_writing_count": 0,
"block_cache_current_removing_count": 0
}

Описание метрик

МетрикаОписание
page_cache_mem_quota_bytesТекущий лимит памяти Page Cache.
page_cache_mem_used_bytesТекущая фактически используемая память Page Cache.
page_cache_mem_used_rateТекущий процент использования памяти Page Cache.
page_cache_hit_countКоличество попаданий Page Cache.
page_cache_miss_countКоличество промахов Page Cache.
page_cache_hit_rateКоэффициент попадания Page Cache.
page_cache_hit_count_last_minuteКоличество попаданий Page Cache за последнюю минуту.
page_cache_miss_count_last_minuteКоличество промахов Page Cache за последнюю минуту.
page_cache_hit_rate_last_minuteКоэффициент попадания Page Cache за последнюю минуту.
block_cache_statusСтатус Block Cache, включая:NORMAL: Экземпляр работает нормально.ABNORMAL: Данные не могут быть прочитаны или записаны в кэш. Проблема должна быть локализована с помощью логов.UPDATING: Экземпляр обновляется, например, состояние обновления во время онлайн-масштабирования.
block_cache_disk_quota_bytesЁмкость дискового кэша Block Cache, настроенная пользователями, в байтах.
block_cache_disk_used_bytesИспользованное пространство дискового кэша Block Cache, в байтах.
block_cache_disk_used_rateФактический процент использования дискового кэша Block Cache, в процентах.
block_cache_disk_spacesИнформация о дисковом кэше Block Cache, настроенная пользователями, включая каждый путь кэша и размер кэша.
block_cache_meta_used_bytesПространство памяти, используемое для кэширования метаданных Block Cache, в байтах.
block_cache_hit_countКоличество попаданий Block Cache.
block_cache_miss_countКоличество промахов кэша.
block_cache_hit_rateКоэффициент попадания Block Cache.
block_cache_hit_bytesКоличество байтов, попавших в Block Cache.
block_cache_miss_bytesКоличество байтов, пропущенных в Block Cache.
block_cache_hit_count_last_minuteКоличество попаданий Block Cache за последнюю минуту.
block_cache_miss_count_last_minuteКоличество промахов Block Cache за последнюю минуту.
block_cache_hit_bytes_last_minuteКоличество байтов, попавших в Block Cache за последнюю минуту.
block_cache_miss_bytes_last_minuteКоличество байтов, пропущенных в Block Cache за последнюю минуту.
block_cache_buffer_item_countТекущее количество экземпляров Buffer в Block Cache. Экземпляры Buffer относятся к общим кэшам данных, например, при чтении части исходных данных из удалённого файла и кэшировании данных непосредственно в памяти или на дисках.
block_cache_buffer_item_bytesКоличество байтов, используемых для кэширования экземпляра Buffer в Block Cache.
block_cache_read_disk_bytesКоличество байтов, прочитанных из Block Cache.
block_cache_write_bytesКоличество байтов, записанных в Block Cache.
block_cache_write_success_countКоличество успешных записей Block Cache.
block_cache_write_fail_countКоличество неудачных записей Block Cache.
block_cache_remove_bytesКоличество байтов, удалённых из Block Cache.
block_cache_remove_success_countКоличество успешных операций удаления из Block Cache.
block_cache_remove_fail_countКоличество неудачных операций удаления из Block Cache.
block_cache_current_reading_countКоличество операций чтения, выполняемых в данный момент в Block Cache.
block_cache_current_writing_countКоличество операций записи, выполняемых в данный момент в Block Cache.
block_cache_current_removing_countКоличество операций удаления, выполняемых в данный момент в Block Cache.