需要改进当前服务器配置的建议

需要改进当前服务器配置的建议

我有一台具有以下配置的 LAMP 服务器 -

  • 32 位操作系统 Debian Etch
  • Apache 2.2
  • PHP 5.2
  • MySQL 5.0.32

硬件

  • 3 GB 内存
  • 2 个 Intel(R) Xeon(R) 1.86GHz CPU

每个 Apache 进程占用大约 10mb 内存。Apache 访问日志已禁用。使用 apt-get 安装 Apache、MySQL 和 PHP。

Apache 每秒点击次数的峰值为 415 次/秒

需要知道这是否太多了,因为我的 Apache 由于内存用完和交换而需要每半小时重启一次。

它可能出了什么问题,请帮忙……

添加 Apache 配置:

Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild 100
</IfModule>
<IfModule mpm_worker_module>
    StartServers          4
    MaxClients          600
    MinSpareThreads      50
    MaxSpareThreads      150
    ThreadsPerChild      25
    MaxRequestsPerChild  0
</IfModule>

答案1

ps/top 在内存使用方面有点撒谎。您看到每个进程使用 10megs 的空闲内存,但 apache 加载了大量共享库,每个进程可能使用 9meg 的共享库。因此,您的实际使用量可能是 9megs 的共享库(假设尚未加载)+ 每个正在运行的进程的 1-1.5meg。

但要回答你的问题...如果您不显示配置和您所看到的错误,我们如何帮助调整任何东西?此外,内存/CPU 在应用程序运行时确实被占用。如果您的应用程序占用大量内存...Apache 配置无法解决这个问题。

这是我在对您的系统一无所知的情况下会做的事情。增加它可以接受的客户端数量。确保 keepalive 已关闭,或者如果您需要它,请将超时时间设置得很小。2-3 秒。

答案2

至少发布你的 phpinfo()。或者 httpd.conf/php.ini。你可以使用jsfiddle转储 phpinfo()(我建议在发布到网上之前删除域名或服务器名称等内容)并粘贴箱适用于您的 httpd.conf / php.ini。

根据给出的信息,我们几乎无法提供帮助。您可以尝试删除未使用的模块,并减少 php.ini 文件内每个 PHP 实例所需的内存量,这是第一步.....

httpd.conf 通常可以在 /etc/apache2/conf/httpd.conf 中找到

php.ini 通常可以在 /etc/php/php5/php.ini 中找到

或者类似的东西,取决于您如何编译源。

如果你必须每半小时重新启动一次 Apache 才能使其再次运行,则你尝试运行的应用程序可能有问题,它可能使用了太多内存,或者你安装了太多共享库。

答案3

  1. 升级到 Debian Squeeze。Etch 已经有一段时间不受支持了,并且不会获得安全更新。如果您正在运行 PHP,安全更新就尤为重要。
  2. 如果可能的话,用 64 位操作系统升级或替换 32 位操作系统。
  3. 放入更多 RAM。RAM 很便宜。(8-16GB 是更现实的数字)
  4. 为 PHP 安装 APC Opcode Cache。
  5. 编辑你的问题,向我们展示你的php.ini文件。认真的。

相关内容