【问题标题】:DokuWiki server-side cachingDokuWiki 服务器端缓存
【发布时间】:2016-01-24 11:53:37
【问题描述】:

我有一个 DokuWiki 站点,其中包含许多使用 Apache 2.4 作为 ELB 实例后面的 Web 服务器的页面。 ELB 健康检查在 test.html 页面上运行。

我从两个不同的 IP 地址(似乎是相关的 ELB 实例)调用了 Doku.php,然后他们似乎试图访问所有网站,例如,这些来自 Apache日志:

172.31.50.143 - - [24/Oct/2015:22:01:15 +0000] "GET /dokuwiki/doku.php?id=profile_flynnbackhaus HTTP/1.1" 200 2994

172.31.57.1​​62 - - [24/Oct/2015:22:01:15 +0000] "GET /dokuwiki/doku.php?id=profile_merrinall4982 HTTP/1.1" 200 2311

一段时间后,Apache服务器内存不足,并自行重启,但这种情况非常频繁。

我的问题是:

  1. 是否有服务器端内置缓存机制来配置或在 DokuWiki 中的代码中?如果是这样,我该如何禁用它?也许这个问题与 Apache 服务器更相关......我不确定。
  2. 如何以编程方式处理这类问题?

【问题讨论】:

    标签: php apache caching amazon-elb dokuwiki


    【解决方案1】:

    嗯,看起来你有某种内存泄漏问题。讨论了很多类似的问题,请参阅示例 - https://serverfault.com/questions/88997/how-can-i-determine-the-cause-of-an-areqest,t-memory-leak-in-my-apache-php-based-w

    这类问题没有灵丹妙药,因此通常您必须仔细调试您的应用程序 - 找出哪些要求更快地增加 apache 内存使用,查看代码,可能会尝试分析进程内存等。 ..

    如果您不希望您的网站有高负载,您可能会考虑重新配置您的应用程序以作为 cgi 应用程序运行 - 这样,操作系统会为您释放内存,但代价是在每次请求后都这样做。所以,当你有 100 个并发用户时,你可能会遇到麻烦;)

    【讨论】:

    • 首先,一旦我使用您提供的链接和 DokuWiki 代码找到导致泄漏的原因,我会将其标记为答案。我确信有超过 1.6GB 的文章在启动 Web 服务器后立即被编入索引。其次,作为一个直接步骤(如此处所推荐),我已经使用 FastCGI 在 IIS 中部署了站点,并且内存问题得到了解决,但我不得不将超时时间从 90 秒增加到 600 秒,因为对站点索引插件的请求需要大约 3.5 分钟,一段时间后到 7 分钟。严重的用户体验问题。 /现在,来分析... :-)
    • 站点索引插件在 3.5 分钟内。唔。它是否重新索引所有页面以创建一些快速搜索(内存中?)表?如果是这样,可能会将这样的表移动到 SSD 支持的存储上,这样就可以只创建一次索引并在必要时对其进行更新?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2012-09-29
    • 2023-04-08
    相关资源
    最近更新 更多