我有一个非常慢的家用服务器(raspberry pi),700 MHz CPU。当我开发一些网站时,有时我会将一个大的(5 MB).jpg文件输入到图像缩放器(imagecreatefromjpeg()
,imagecreatetruecolor()
,imagecopy()
)中,导致服务器挂起
我说它正在处理文件,但即使我等了几分钟,它也永远不会结束。
问题是我甚至无法访问shell来停止/重启apache2;唯一的解决方案是完全关闭服务器电源。
我想知道是否有办法限制apache2的硬件资源;例如,如果我只能限制80%的CPU使用率,也许我仍然可以访问shell并停止它。
我尝试设置timeout和max_execution_time指令,但它们似乎并没有阻止apache2无限制地工作并冻结服务器。
任何想法如何解决这个问题?
答案 0 :(得分:0)
我认为你不能从自己的设置中限制apache的cpu使用。
您可以尝试使用单独的应用,例如cpulimit(请参阅:how-to):
$ sudo apt-get install cpulimit
$ man cpulimit
您也可以尝试使用这些来优化服务器的整体性能。
编辑/etc/apache2/apache2.conf并使用以下值:
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 3
MaxClients 50
MaxRequestsPerChild 0
</IfModule>
扩展/ etc / dphys-swapfile集中的交换:
CONF_SWAPSIZE=512
然后运行:
$ sudo dphys-swapfile setup
$ sudo dphys-swapfile swapon
在这里超频覆盆子(比听起来更安全):
$ sudo raspi-config
我在950MHz使用它。有一个更高的选项(1000MHz),但论坛上的一些人抱怨SD腐败。
如果您不使用图形界面,您还可以在raspi-config memory_split 中将图形内存设置为16.
答案 1 :(得分:-1)
您可以安装apache-mod_ratelimit。另请参阅Control Apache with httpd.conf。