【问题标题】:Server Response Issue服务器响应问题
【发布时间】:2016-07-01 01:02:01
【问题描述】:

我正在使用 Amazon 实例来托管网站。我的亚马逊安装了 c4.4xlarge 作为 Instance Type 。当我使用 Ubuntu(不是 ubuntu 服务器)作为操作系统时。我还在为数据库使用 RDS,所以系统唯一的负载是 Apache。

我的服务器负载达到最大 50%,数据库连接达到 500-600。那时服务器的响应时间变得太慢了。目前,我的服务器负载为 2%,数据库连接在 8-10 左右,ajax 调用需要 1.2 秒来检索数据,而当我使用服务器的最大使用率时,相同的 ajax 调用需要大约 8-15 秒。

我希望网站快速。在网站上,我有 5 个 iframe,所以当我们有 500 个活跃用户时,他们将在该网页的面板内再拥有 5 个网站。iframe 中的每个网站也会在 1-5 秒后连续将请求发送到自己的服务器.那时性能很差,有时甚至 Firefox 挂起。

我通过更改内存位置和数据库连接对 apache 配置文件进行了一些更改,但这没有帮助。有没有其他方法可以提高网站的性能。

谢谢

【问题讨论】:

    标签: apache amazon-ec2 server


    【解决方案1】:

    我不太确定有关您的服务器的详细信息,但我认为您有 500-600 个与数据库的连接会很奇怪。只是问一下:你是直接从客户端连接你的数据库吗???如果不是,请检查您的服务器端代码,确保您没有创建大量连接池,您的服务器数据库驱动程序应该只有一个连接池并重用连接。

    另一件事是,请检查您的数据库的大小,并确保您已创建所有必要的索引。如果您的查询无法修复该表的任何索引,则数据库必须扫描所有数据,因此您的响应会很慢。

    【讨论】:

    • 我们有两件事正在运行,一个是使用 Codeignitor 框架制作的软件和由 wordpress 制作的网站。除此之外,用户无法访问数据库。在 codeignitor 的自动加载库中添加了数据库库。数据库大小几乎没有 4 MB。但是只有当我们有很多数据库连接时服务器响应才会变慢,因为 RDS 服务器使用率低于 50%
    • 我不确定 4MB 数据集是否会获得糟糕的性能,但我认为我不会是 1s 或 2s。我认为您正在通过服务器端的 Codeignitor 连接到数据库,因此您可能需要进行 php 分析以了解为什么您有这么多连接。这不正常。您可以使用 jmete 或其他测试工具在本地对您的服务器施加压力,然后检查分析器以查看为什么有这么多的数据库连接。即使它是 codieignitor 的自动加载库,我认为你仍然有可能会犯一些错误。深入研究一下。
    • 我添加了 DB Connections 的截图。由于页面中有 5 个 iframe,性能可能会变差,并且负载来自 apache 服务器。由于 500 -600 Db Connection 可以代表用户数量,如果每个用户在同一页面上通过 iframe 访问 5 个不同的 webstie,并且每 1-5 秒后每 5 个 iframe 网站发送请求,这可能会影响性能。我可以再次看到代码,但除了 Wordpress 和 Codeignitor 之外,没有其他连接方式
    • 我刚查了mysql文档,一个连接池默认可以有100个连接,所以我猜你为每个iframe打开5个连接池(其实我对php不是很熟悉,所以只是猜测),我认为您的框架中有一个选项可以设置连接池大小,如果您不需要那么多连接,请将其限制为较小的大小。
    • iframe 正在打开不同的网站,这些网站位于不同的域和服务器上。
    猜你喜欢
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2018-05-29
    • 2023-04-02
    • 2015-01-14
    • 2019-03-31
    相关资源
    最近更新 更多