我在我的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
问题陈述:服务器一次又一次地停机,因为它达到CPU 100%。当我检查哪个进程导致此问题时,我可以看到它是httpd.exe消耗所有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>
并且在浏览了一些网络链接之后又做了一次更改,其中说LDAP缓存也会导致CPU达到100%因此,我使用下面的行使缓存为零
LDAPSharedCacheSize 0.
经过上述两次更改后,我的服务器运行正常一个月。
看起来它有副作用。我得到了我的用户的抱怨:每天第一次获取存储库都需要时间。然后我从我的httpd.conf中删除LDAPSharedCacheSize 0
但是,第二天CPU再次达到100%。
如果配置错误或我需要修改httpd.conf中的配置,有人可以帮助我吗?