Почему systemd -nspawn медленнее, чем docker, podman и qemu?! как улучшить производительность nspawn?

Не существует легко читаемого способа использования DirectoryMatchдля сопоставления всех /var/www/aaa, /var/www/bbbи /var/www, но не /var/www/ccc. Это связано с тем, что /var/wwwвключает в себя все остальные три каталога.

Что может быть проще, так это использовать мод _макрос для определения общих разделов конфигурации, а затем применить их с помощью Directory, как в исходном примере.

a2enmod macro                # Enable the mod_macro module
systemctl restart apache2    # YMMV but this is the systemd way

Затем вы можете определить свой макрос. Вот один из них, который я использую

# Logging
#

    ServerSignature On
    LogLevel warn
    ErrorLog "|/usr/bin/cronolog /home/www/$vHost/logs/%Y/%m/%d/public-error.log"
    CustomLog "|/usr/bin/cronolog /home/www/$vHost/logs/%Y/%m/%d/public-access.log" combined

и я включаю его в такое определение виртуального хоста

Use CronoLogger www.contoso.com

В вашем случае с примером макроса StandardStuff param1 param2вы можете использовать его следующим образом


    Use StandardStuff /var/www /



    Use StandardStuff /var/www /aaa



    Use StandardStuff /var/www /bbb



    # Do non-standard stuff here
    #

2
25.01.2021, 11:54
1 ответ

Проблема с производительностью заключалась в том, что я думал, что добавление в белый список системных вызовов en nspawn с --system-call-filterулучшит производительность, но, как мне объяснили в списке systemd mail , я должен использовать export SYSTEMD_SECCOMP=0, потому что nspawn будет по-прежнему обрабатывать системные вызовы, когда я внесу их в белый список.

SYSTEMD_SECCOMPбыл добавлен в systemd v247 (debian buster имеет v241, но репозиторий backport имеет v247 ).

чтобы сделать nspawn таким же быстрым, как хост baremetal:

export SYSTEMD_SECCOMP=0
systemd-nspawn --capability=all -D./bbusterboot --boot

это эквивалентно --privilegedв docker/podman, и нет необходимости использовать --system-call-filter, если мы используем SYSTEMD_SECCOMP.

Конечно, это плохо для безопасности, поэтому делайте это в безопасной среде, запуская только доверенный код.

и если вам нужна максимальная производительность, которая повысит производительность baremetal, nspawn, docker, podman или чего-то еще, что вы используете, отключите все меры по смягчению spectre/meltdown, как я сделал в вопросе выше (, но это не так. также хорошо для безопасности, если вы запускаете ненадежный код, такой как браузеры с рекламой, например ).


прочтите это для более подробной информации:https://github.com/systemd/systemd/issues/18370

4
18.03.2021, 22:34

Теги

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