Утилита DataGrid Page Analyzer#

page-analyzer — утилита командной строки для анализа страниц с данными, которые хранятся на диске.

Запуск утилиты#

Для начала работы с утилитой запустите скрипт pageAnalyzer.sh с параметром page-statistics и аргументом -d, в котором укажите путь к данным для анализа:

./pageAnalyzer.sh page-statistics -d /path/to/data/

Утилита перейдет по указанному пути в директории с кешами и просканирует страницы внутри партиций. Результат работы утилиты выведется на экран и в лог-файл page-analyzer.log.

Разбор вывода утилиты#

Пример вывода утилиты

[DD.MM.YYYY 14:19:01.107][INFO][PageStatistic]   *** FULL STATISTICS FOR CACHETEST ***
[DD.MM.YYYY 14:19:01.111][INFO][PageStatistic]      1 T_DATA                                394241 pages,    25,14M free,  1,63% unused
[DD.MM.YYYY 14:19:01.112][INFO][PageStatistic]           0- 10%:        1 pages
[DD.MM.YYYY 14:19:01.112][INFO][PageStatistic]          80- 90%:     1024 pages
[DD.MM.YYYY 14:19:01.112][INFO][PageStatistic]          90-100%:   393216 pages
[DD.MM.YYYY 14:19:01.113][INFO][PageStatistic]     13 T_PAGE_LIST_NODE                       20728 pages,    76,70M free, 94,72% unused
[DD.MM.YYYY 14:19:01.113][INFO][PageStatistic]           0- 10%:    18680 pages
[DD.MM.YYYY 14:19:01.113][INFO][PageStatistic]          30- 40%:     1024 pages
[DD.MM.YYYY 14:19:01.113][INFO][PageStatistic]          40- 50%:     1024 pages
[DD.MM.YYYY 14:19:01.113][INFO][PageStatistic]  (9 type(s) without free-space tracking hidden, 108549 pages - use --verbose to show)
[DD.MM.YYYY 14:19:01.113][INFO][PageStatistic]   ------------------
[DD.MM.YYYY 14:19:01.114][INFO][PageStatistic]   Full size   1620,97M
[DD.MM.YYYY 14:19:01.114][INFO][PageStatistic]   Free size   101,84M
[DD.MM.YYYY 14:19:01.114][INFO][PageStatistic]   Free percent  6,28%

По указанному в примере пути утилита сделала вывод по кешу CACHETEST:

1 T_DATA 394241 pages,    25,14M free,  1,63% unused

Тип страницы T_DATA (тип страниц, в которых физически хранятся записи кеша) насчитывает 394 241 страницу. Из общего объема этих страниц не занято 25,14 МБ или 1,6% страниц — это хороший пример плотно расположенных данных.

Ниже в выводе утилиты указана гистограмма распределения страниц по их заполнению:

[DD.MM.YYYY 14:19:01.112][INFO][PageStatistic]           0- 10%:        1 pages
[DD.MM.YYYY 14:19:01.112][INFO][PageStatistic]          80- 90%:     1024 pages
[DD.MM.YYYY 14:19:01.112][INFO][PageStatistic]          90-100%:   393216 pages

Пояснения по гистограмме:

  • 0-10%: 1 pages — количество страниц, которые заполнены на 0–10%;

  • 80-90%: 1024 pages — количество страниц, которые заполнены на 80–90%;

  • 90-100%: 393216 pages — количество страниц, которые заполнены на 90–100%.

В финальной части вывода утилиты по кешу CACHETEST указана суммированная информация по всем типам страниц и рассчитаны общий занимаемый объем, объем свободного места на выделенных страницах и процентное соотношение свободного места ко всему занимаемому страницами объему на диске:

  • Full size 1620,97M — общий объем занимаемого страницами места;

  • Free size 101,84M — выделенное на страницах, но не занятое данными место;

  • Free percent 6,28% — процент свободного места ко всему занимаемому страницами объему.

В выводе утилиты видно, что основное количество страниц CACHETEST хранится в T_DATA. Гистограмма распределения страниц показывает их плотное заполнение, что является хорошим результатом.

Интерпретация результатов#

В первую очередь стоит смотреть на заполнение страниц из T_DATA, так как они хранят наиболее полезные данные. Остальные типы — это системные страницы или страницы с индексами. Размер страницы по умолчанию — 4 КБ.

Интерпретация результатов вывода утилиты:

  • Free % <20% — нормальная работа кластера.

  • Free % ~20-40% — рекомендуется следить за тем, как меняется процент свободного места.

  • Free % ~40-60% — есть вероятность, что данные хранятся не оптимально. Стоит попробовать:

    • изменить размер записываемых данных;

    • изменить размер страницы по умолчанию;

    • воспользоваться плагином Cache objects compression Plugin для сжатия данных;

    • выполнить дефрагментацию данных.

  • Free % ~80% — большая часть занимаемого страницами места не используется. Если недавно было выполнено большое количество удалений данных из кеша, эти страницы будут в дальнейшем переиспользованы. Если происходили только вставки данных — это явный знак, что данные на страницах хранятся не оптимально и стоит воспользоваться рекомендациями из предыдущего пункта.