我的 Windows Server 2008 R2 标准(x64 位)上安装了 Collabnet subversion edge。我只使用 Collabnet subversion 和我手动配置的 apache。
svn 版本是 1.8.13,apache 版本是 2.4.12。
身份验证:使用 AD CPU:4 RAM:16 GB
问题陈述:服务器一次又一次地停机,因为它达到了 100% 的 CPU。当我检查导致此问题的进程时,我可以看到它正在消耗所有 cpu,而我只是杀死它 cpu 将降为零。
到目前为止,我还没有成功确定确切的根本原因是什么,但是在错误日志中我发现了一行内容[mpm_winnt:error] [pid 3448:tid 3040] AH00326: Server ran out of threads to server requests. Consider raising the ThreadsPerChild setting
。在浏览了 apache 文档后,我知道我们有一个 mpm(多进程模块)模块来处理每个子进程的线程数,所以在我的 httpd.conf 中进行了以下更改:
AcceptFilter http none
AcceptFilter https none
<IfModule mpm_winnt_module>
ThreadsPerChild 200
MaxConnectionPerChild 10000
</IfModule>
在浏览了一些 Web 链接后,还做了另一项更改,这些链接说 LDAP 缓存也会导致 CPU 达到 100%,因此,我使用下面的行将缓存设为零
LDAPSharedCacheSize 0.
经过上述两项更改后,我的服务器可以正常运行一个月。好像有副作用。我从我的用户那里得到了抱怨:每天第一次提取到存储库都需要时间。然后我LDAPSharedCacheSize 0
从我的 httpd.conf 中删除了但是,第二天 CPU 再次达到 100%。
如果我的配置错误或者我需要修改 httpd.conf 中的配置,有人可以帮助我吗?