gpt4 book ai didi

linux - 在服务一定数量的请求后杀死旧服务器线程/进程并启动新线程/进程的原因是什么

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:12 25 4
gpt4 key购买 nike

例如,apache httpd 提供了一个指令 MaxConnectionsPerChild,它通过杀死旧进程和启动新进程来控制服务器回收进程的频率。

在服务一定数量的连接后完全杀死旧线程的原因是什么。

这不会使 cpu 缓存不必要地变冷吗?

最佳答案

来自 the docs :

Setting MaxConnectionsPerChild to a non-zero value limits the amount of memory that process can consume by (accidental) memory leakage.

因此,如果每个请求(malloc() 而不是 free())泄漏 1 MB,您将逐渐用完越来越多的内存,直到您运行出来,apache 被杀死。但是,如果您设置 MaxConnectionsPerChild 100, child 将逐渐使用多达 100 MB 的内存,然后被杀死并回到 0。

“热缓存”适用于此,设置 MaxConnectionsPerChild 会降低 apache 的速度。这就是为什么默认值是无限的。 MaxConnectionsPerChild 意味着对内存泄漏的不雅管道胶带。时间紧迫的程序员可能更愿意花 1 分钟来设置 MaxConnectionsPerChild,而不是花 1 周时间寻找 malloc() 调用。

关于linux - 在服务一定数量的请求后杀死旧服务器线程/进程并启动新线程/进程的原因是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34622264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com