我有一个在 ARM 盒上运行的 thttpd 服务器,我使用它通过 cgi 提供图像。
我观察到的是,随着每个图像的提供,可用内存量越来越低,而在 psoutput 中,thttpd 的 VSZ 列不断增长。
有一次,当我为 CGI 执行 asng 时,thttpd 给出了一个 500 错误,并且日志显示“无法分叉”
vsz 增长的内存量与所服务图像的大小差不多。thttpd 是否在进行某种缓存,但在分叉时无法回收内存?内存泄漏?
我如何才能禁用此缓存行为?
答案1
有两个指令可以让你限制 thttpd 的 mmap 缓存,它们是所需最大映射文件数和DESIRED_MAX_MAPPED_BYTES。