Lighttpd был разработан как однопоточный и однопоточный веб-сервер. Это означает, что lighttpd использует только одно ядро для приема новых подключений, поиска файлов, открытия файлов, отправки данных обратно, получения данных, а также открытия, отправки и получения данных из или в серверную часть FastCGI.
Мой честный совет - использовать другой веб-сервер, например, nginx, если вы действительно видите, что lighttpd достигает 100% CPU.
Однако, если вы вынуждены использовать lighttpd (> = 1.4), вы также можете использовать:
server.max-worker = 2
, который вызовет 2 процесса lighttpd, оба принимают новые соединения. (Вы можете заменить 2 на большее число, ofc.)
Однако, это действительно только порождает два процесса без связи между ними, что приводит к различным "неправильным действиям":
- Модули, собирающие данные, собирают их только для обработки. Это означает, что на странице mod_status будет показана только статистика рабочего процесса, который установил ваше соединение.
- Журналы просто записываются из 2 (или более) процессов. Иногда смешивая журналы, когда буфер записи записывается с двумя последовательными вызовами записи.
- Любой сконфигурированный лимит для всего сервера в действительности соответствует рабочему процессу.
- Другие вещи, может быть.