【问题标题】:Vps slow responseVps 响应慢
【发布时间】:2017-12-02 10:19:32
【问题描述】:

我已经购买了一个 vps,以便将我的后端从共享主机转移到它。我已经安装了 apache2、php、mysql 服务器。我的 vps 配置:

  • 内存:6 GB
  • cpu:6 核
  • 固态硬盘:150 GB
  • 端口:1 Gbps
  • 操作系统:Ubuntu 16.04

当我发出测试请求时,一切都在高速运行,我在 100 毫秒内收到响应。但是当我的用户(每天 25-35k)开始使用这个服务器时,它变得非常慢。有时我需要一两分钟才能得到回复,有时根本没有回复。

我正在使用我的管理面板来检查服务器负载。它向我表明,所有请求每 5-10 分钟只有 400 KB 的传出数据,而传入数据不到 50 KB。服务器使用的 RAM 不到一半。

我的 apache 配置是:

<IfModule mpm_prefork_module>
StartServers       2
MinSpareServers    25
MaxSpareServers    75
ServerLimit        40
MaxClients         1000
MaxRequestsPerChild 0
        MaxRequestWorkers        500
        MaxConnectionsPerChild   100
</IfModule>

我真的不明白,是什么原因导致如此低的响应速度。谁能帮帮我?

【问题讨论】:

  • 您需要分析应用程序并查看问题所在,向其投掷更多火箭不会加快速度。服务器负载指标是什么?我的一个网站每天有 15 万次以上的点击量(json/rpc),在 1 核/1GB 内存上没有问题。
  • 我的服务器负载指标:1 分钟(当前:0.03,平均值:0.01,最大值:0.03),5 分钟:(当前:0.01,平均值 0.00,最大值:0.01)。内存使用量:250 mb。流量:100 KB。是的,我明白,我的脚本中有一些东西,但问题是具有有限 cpu/ram/带宽的共享主机工作正常,问题只发生在 vps
  • 在 serverfault.stackexchange.com 上发布此内容并希望得到解决方案!

标签: php apache2 vps


【解决方案1】:

您的配置文件令人困惑,您运行的是哪个版本的 Apache?

MaxRequestsPerChild 从 2.3.9 变为 MaxConnectionsPerChild

MaxClients 自 2.3.13 起变为 MaxRequestWorkers

旧名称仍受支持,但您不应同时拥有两者。

无论如何,我想主要问题是您的 ServerLimitMaxClients/ MaxRequestWorkers 值。

假设每个 Apache 实例使用 25MB 的 RAM(您可以使用 top 来大致了解这一点,但作为一个大概的数字,我将使用 25MB 运行)。你有 6GB 可以玩,但 mysql 需要一些,所以如果你给 Apache 3GB 3072/25 = 122.8 MaxClients

你的MinSpareServers/MaxSpareServers 值也很高,我会把它们降下来。

我会从这样的东西开始,然后修改 MaxClients / ServerLimit(两者使用相同的值)以及 MaxRequestsPerChild 的值:

<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
MaxClients 100
ServerLimit 100
MaxRequestsPerChild 100
</IfModule>

然后重新启动 Apache 并对其进行压力测试。

【讨论】:

    猜你喜欢
    • 2016-02-20
    • 1970-01-01
    • 2015-04-14
    • 2015-07-04
    • 2016-12-18
    • 2021-01-12
    • 2012-03-09
    • 2013-05-22
    • 2019-05-07
    相关资源
    最近更新 更多