Улучшение производительности ядра Linux: внедрение «таблицы подкачки»

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

Эта инициатива связана с публикацией серии патчей Кайруи Сона из Tencent, которые внедряют «Swap Table» — кэш подкачки ядра. Данная идея была озвучена им на конференции LSF/MM/BPF и предполагает интеграцию кэша подкачки, карт подкачки и функций распределителя подкачки в ядро Linux.

Ожидается, что новая структура кода подкачки будет более перспективной, обеспечит более низкое потребление памяти и приведет к повышению производительности. Текущая структура подсистемы SWAP страдает от множества обходных путей и оптимизаций, что усложняет внедрение новых функций.

Вчера были опубликованы первые патчи, реализующие инфраструктуру «Swap Table» и ее использование в качестве серверной части кэша подкачки. Предварительные результаты показывают значительное повышение производительности:

  • Увеличение пропускной способности, RPS (количество запросов в секунду) или времени сборки на 5-20%.
  • Тестирование показало эффективность на ARM-машинах 8c / 1G и серверах 48c96t / 128G x86_64.

Достигнуты впечатляющие результаты:

  • Тест на масштабируемость виртуальных машин показал улучшение более чем на 20% в большинстве сценариев.
  • Время сборки ядра Linux сократилось на несколько процентов.
  • Пропускная способность базы данных Redis/Valkey в оперативной памяти увеличилась примерно на 6–7%.

Ожидается, что эта работа будет продолжена и остальные этапы серии патчей «Swap Table» появятся в ближайшее время.