Обновление PHP в док-контейнере

Не существует общего способа отключить потоки ядра по отдельности, поскольку они существуют для поддержки определенных API-интерфейсов ядра (, таких как [kworker/*]потоки для рабочих очередей)или подсистем (, таких как потоки, участвующие в сброс и другие фоновые задачи в блочной подсистеме )или модулях (, такие как потоки, используемые для управления файловыми системами, устройство отображения устройств и т. д.)

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

В некоторых случаях можно отключить некоторые потоки, но обычно только отключив вместе с ними всю подсистему ядра или модуль. Например, у вас не будет потоков ядра ext4, если вы больше не используете ext4...

Я думаю, что вы задаете здесь неправильный вопрос... Потоки ядра не являются причиной накладных расходов. Обычно все наоборот. Некоторые процедуры и обратные вызовы были перемещены в потоки ядра, чтобы их можно было запускать более эффективно, повторно используя планировщик ядра, чтобы заставить их периодически выполняться в фоновом режиме, вместо того, чтобы придумывать отдельные механизмы для того, чтобы делать то же самое.

Потоки ядра на самом деле не занимают дополнительной памяти, они просто совместно используют адресное пространство ядра. (Хорошо, технически вам понадобится дополнительный task_structдля каждого потока, но в основном это не имеет значения, даже во встроенной системе.)

Отключение функций ядра для встроенной системы имеет смысл, но вы должны сосредоточиться на определенных конфигурациях ядра, которые вам не нужны, или конфигурациях, которые вы можете настроить, а не на запущенных потоках ядра. Они могут быть очень заметны (, когда вы запускаете psи т. д. ), но, как объяснялось выше, это не означает, что они действительно используют ресурсы вашей системы.Поэтому, если вы ищете повышения эффективности, вы, скорее всего, найдете полезные в другом месте, а не сосредоточитесь на потоках ядра.

2
06.02.2021, 15:53
1 ответ

Измените свой Dockerfile на целевую версию, например

FROM php:7.4-fpm

или

FROM php:8.0-fpm

и вы настраиваете свою библиотеку с помощью этого документа для 7.xxx

или для версий с 7.xxx по 8.xxx этот документ

0
07.10.2021, 08:04

Теги

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