У меня есть сервер thttpd, работающий на коробке ARM, и я использую его для обслуживания изображений через cgi.
Я наблюдаю, что с каждым обслуживаемым изображением объем свободной памяти меньше, а в psoutput столбец VSZ увеличивается для thttpd.
В какой-то момент thttpd выдает ошибку 500 при запросе CGI, и в журнале написано «невозможно выполнить вилку».
Объем памяти, который увеличивается vsz, примерно равен размеру обслуживаемого изображения. Thttpd выполняет какое-то кеширование, но не может освободить память при разветвлении? Утечка памяти?
Как я могу отключить это кеширование?
Есть две директивы, которые позволяют ограничить кеш mmap для thttpd, они DESIRED_MAX_MAPPED_FILES и DESIRED_MAX_MAPPED_BYTES.