我在 1und1.de 租了一个小型虚拟服务器。(链接,但仅限德语)(2GB RAM 动态,至少 512MB,20 GB 硬盘)我选择运行 Ubuntu 8.04 LTS 作为操作系统(64 位)。我通过 Ubuntu 存储库和后来的 eAccelerator 安装了 apache2 + php5 + mysql。
我运行一些开发工作和一个生产站点。这个网站是一种目录,有几个访问者(每天 250 个)和很多页面(大约 7,5k)。每隔几天,服务器就会冻结。这意味着,它已启动,可以被 ping,但任何其他操作都会导致“服务器拒绝连接”。查看管理面板,它说我kmemsize
的值很高,而且还产生了很多 apache 进程。
对我来说,我的 apache 似乎消耗了我所有的资源(而且,如果 Google 或其他爬虫开始爬取页面,这些冻结似乎也开始了)。
然后我试图避免这种冻结:
- 我在 Apache 配置中降低了 MaxKeepAliveRequests 和 KeepAliveTimeout
- 我在 prefork 设置的设置中设置了 MaxRequestsPerChild,以保持 Apache 工作人员更频繁地清理。
这似乎改善了这种情况,但仍然发生冻结。
任何人都知道可以/应该改变什么?
解决方案。