0

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

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

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

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

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

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

4

2 回答 2

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。

于 2013-01-07T21:44:52.013 回答
-1

您可以安装 apache-mod_ratelimit。此外,请参阅使用 httpd.conf 控制 Apache

于 2013-01-08T10:38:51.723 回答