22.04.2024

В ядре Linux 6.5 появится системный вызов cachestat

В кодовую базу, на основе которой формируется ядро Linux 6.5, принято изменение с реализацией нового системного вызова «cachestat«, позволяющего программам в пространстве пользователя запрашивать более детальную статистику из страничного кэша на стороне ядра.

Расширяя уже существующий системный вызов «mincore», используемый для определения, присутствуют ли страницы в памяти, вызов «cachestat» позволяет запрашивать более подробную статистику кэша страниц и стремится обеспечить большую масштабируемость. Системный вызов «cachestat» сообщает такие сведения, как количество прокэшированных страниц, грязных (dirty) страниц, вытесненных страниц, недавно вытесненных страниц и страниц, отмеченных для отложенной записи (writeback).

Предоставляемая статистика для файлов позволяет точнее принимать решения по работе с вводом-выводом, проходящим через VFS, основываясь не только на абстрактном алгоритме, но и учитывая характеристики конкретной системы в конкретный момент времени.

Возможные варианты использования cachestat() приложениями:

  • Планировщик запросов в СУБД сможет решать, выполнять ли сканирование индекса или напрямую читать данные из таблицы, основываясь на состоянии табличного индекса в страничном кэше.
  • Гранулированное и зависимое от нагрузки манипулирование наполнением и вводом-выводом страничного кэша (например «грязных» (dirty) страниц/страниц, помеченных на отложенную запись (writeback)), меняя частоту синхронизации — от очень частой при слабой нагрузке и до пакетной при всплесках нагрузки.
  • Возможность более наглядного и удобного представления информации об использовании памяти в больших файлах/директориях, аналогично тому как утилита «du» позволяет отображать использование дискового пространства.
  • Упрощение диагностики и отладки отложенной записи при проблемах с производительностью.

Источник: https://www.opennet.ru/opennews/art.shtml?num=59435 Источник.