我如何限制apache2的资源?

时间:2012-12-17 00:23:34

标签: php linux apache2 raspberry-pi raspbian

我有一个非常慢的家用服务器(raspberry pi),700 MHz CPU。当我开发一些网站时,有时我会将一个大的(5 MB).jpg文件输入到图像缩放器(imagecreatefromjpeg()imagecreatetruecolor()imagecopy())中,导致服务器挂起

我说它正在处理文件,但即使我等了几分钟,它也永远不会结束。

问题是我甚至无法访问shell来停止/重启apache2;唯一的解决方案是完全关闭服务器电源。

我想知道是否有办法限制apache2的硬件资源;例如,如果我只能限制80%的CPU使用率,也许我仍然可以访问shell并停止它。

我尝试设置timeout和max_execution_time指令,但它们似乎并没有阻止apache2无限制地工作并冻结服务器。

任何想法如何解决这个问题?

2 个答案:

答案 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