Перейти к основному содержимому

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

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

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

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: идентификатор BE
  • STATUS: статус BE
  • DISK_QUOTA_BYTES: емкость дискового кэша, настроенная пользователями, в байтах
  • DISK_USED_BYTES: используемое пространство дискового кэша, в байтах
  • MEM_QUOTA_BYTES: емкость кэша памяти, настроенная пользователями, в байтах
  • MEM_USED_BYTES: используемое пространство кэша памяти, в байтах
  • META_USED_BYTES: пространство, используемое для кэширования метаданных
  • DIR_SPACES: путь кэша и его размер кэша

Вызов API

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

  • /api/datacache/app_stat: фактический коэффициент попаданий в кэш запросов, рассчитываемый как Remote Read Bytes / (Remote Read Bytes + Data Cache Read Bytes).
  • /api/datacache/stat: базовое состояние выполнения Data Cache. Этот интерфейс в основном используется для обслуживания и выявления узких мест Data Cache. Он не отражает фактический коэффициент попаданий запроса. Обычным пользователям не нужно обращать внимание на этот интерфейс.

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

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

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

Возврат:

{
"hit_bytes": 4008,
"miss_bytes": 2004,
"hit_rate": 0.67,
"hit_bytes_last_minute": 4008,
"miss_bytes_last_minute": 2004, "hit_rate": 0.67, "hit_bytes_last_minute": 4008,
"hit_rate_last_minute": 0.67
}
МетрикаОписание
hit_bytesКоличество байт, прочитанных из кэша.
miss_bytesКоличество байт, прочитанных из удаленного хранилища.
hit_rateКоэффициент попаданий в кэш, рассчитываемый как (hit_bytes / (hit_bytes + miss_bytes)).
hit_bytes_last_minuteКоличество байт, прочитанных из кэша за последнюю минуту.
miss_bytes_last_minuteКоличество байт, прочитанных из удаленного хранилища за последнюю минуту.
hit_rate_last_minuteКоэффициент попаданий в кэш за последнюю минуту.

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

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

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

На следующем рисунке показаны возвращаемые метрики.

img

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

МетрикаОписание
statusСтатус экземпляра Data Cache, включая:NORMAL: Экземпляр работает нормально.ABNORMAL: Данные не могут быть прочитаны или записаны в кэш. Проблема должна быть локализована с помощью логов.UPDATING: Экземпляр обновляется, например, состояние обновления во время онлайн-масштабирования.
mem_quota_bytesЕмкость кэша памяти, настроенная пользователями, в байтах.
mem_used_bytesИспользуемое пространство кэша памяти, в байтах.
mem_used_rateФактическое использование кэша памяти, в процентах.
disk_quota_bytesЕмкость дискового кэша, настроенная пользователями, в байтах.
disk_used_bytesИспользуемое пространство дискового кэша, в байтах.
disk_used_rateФактическое использование дискового кэша, в процентах.
disk_spacesИнформация о дисковом кэше, настроенная пользователями, включая каждый путь кэша и размер кэша.
meta_used_bytesПространство, используемое для кэширования системных метаданных, в байтах.
hit_countКоличество попаданий в кэш.
miss_countКоличество промахов кэша.
hit_rateКоэффициент попаданий в кэш.
hit_bytesКоличество байт, попавших в кэш.
miss_bytesКоличество байт, не попавших в кэш.
hit_count_last_minuteКоличество попаданий в кэш за последнюю минуту.
miss_count_last_minuteКоличество промахов кэша за последнюю минуту.
hit_bytes_last_minuteКоличество типов, попавших в кэш за последнюю минуту.
miss_bytes_last_minuteКоличество типов, не попавших в кэш за последнюю минуту.
buffer_item_countТекущее количество экземпляров Buffer в кэше. Экземпляры Buffer относятся к общим кэшам данных, например, при чтении части исходных данных из удаленного файла и кэшировании данных непосредственно в памяти или на дисках.
buffer_item_bytesКоличество типов, используемых для кэширования экземпляра Buffer.
read_mem_bytesКоличество байт, прочитанных из кэша памяти.
read_disk_bytesКоличество байт, прочитанных из дискового кэша.
write_bytesКоличество байт, записанных в кэш.
write_success_countКоличество успешных записей в кэш.
write_fail_countКоличество неудачных записей в кэш.
remove_bytesКоличество удаленных байт.
remove_success_countКоличество успешных удалений.
remove_fail_countКоличество неудачных удалений.
current_reading_countКоличество текущих чтений из кэша.
current_writing_countКоличество текущих записей в кэш.
current_removing_countКоличество текущих удалений из кэша.