Почему Ubuntu настраивает несколько устройств ZRAM для подкачки

Я планирую использовать Zram в качестве устройства для обмена.

Скрипт init-zram-swapping, поставляемый с Ubuntu 18.04 LTS Bionic в пакете zram-config, создает одно устройство zram для каждого процессора. https://packages.ubuntu.com/bionic/zram-config

Пакет без изменений до эо .

Почему это делается? Есть ли какое-то преимущество в том, что несколько устройств zram сконфигурированы для подкачки?

Я могу себе представить, что это поможет не блокировать сжатие при работе со свопом, но, начиная с ядра 4.7, оно всегда будет иметь несколько потоков сжатия. Один на онлайн процессор. https://github.com/torvalds/linux/commit/43209ea2d17aae1540d4e28274e36404f72702f2

Даже для более старых ядер я ожидал увидеть использование атрибута max_comp_streams с одним устройством zram.

Так что сценарий просто не был настроен с более новыми версиями ядра или есть еще одно преимущество наличия нескольких устройств zram?

0
задан 9 September 2019 в 15:07

1 ответ

Когда подкачка происходит в памяти, принадлежащей данному ЦП (особенно в конфигурации NUMA — представьте современные процессоры EPYC с их 8-канальными контроллерами памяти и узлами NUMA), наиболее эффективно не копировать это памяти в память другого процессора (и нарушать его потоки). Так что держу пари, что это из соображений производительности.

0
ответ дан 24 October 2019 в 15:32

Другие вопросы по тегам:

Похожие вопросы: