【问题标题】:PHP APC, educate mePHP APC,教育我
【发布时间】:2010-10-28 10:22:03
【问题描述】:

我目前正在我的服务中实现 memcached,但不断出现的建议是我还应该实现 APC 以缓存实际代码。

我浏览了一些教程以及PHP documentation,但我的主要问题是,如何大规模实施它? PHP 文档谈到了存储变量,但没有那么详细。

请原谅我在这方面没有受过教育,但我想知道在实际站点中的哪个位置实现了这一点。我是从字面上缓存所有内容还是只缓存经常使用的部分,例如函数?

谢谢!

【问题讨论】:

    标签: php apc


    【解决方案1】:

    您知道 PHP 是一种解释型语言,因此每次请求到达服务器时,它都需要打开所有必需和包含的文件,解析并执行它们。 APC 提供的是跳过 require/include 和解析步骤(这些文件仍然是必需的,但存储在内存中,因此访问速度要快得多),因此只需执行脚本。在我们的网站上,我们使用 APC 和 memcached 的组合。 APC 可加快上述步骤,memcached 可实现对全局变量(可在一定时间内由多个客户端共享的预先计算的昂贵函数调用等)以及会话变量的快速和分布式存储和访问。这使我们能够拥有多个前端服务器而不会丢失任何客户端状态,例如登录状态等。

    当涉及到您应该缓存的内容时……嗯,这实际上取决于您的应用程序。如果您在某个地方需要多个前端,我会尝试使用 memcached 进行此类缓存和存储,并将 APC 用作操作码缓存。

    【讨论】:

    • 是的,这听起来像是我自己最有可能使用的系统类型。您是否设置文件在 APC 缓存中存储多长时间,APC 缓存的理想大小是多少(10mb、500mb 等?)以及如果对实际 PHP 文件进行了更改,它是重新缓存还是仅在之后为缓存设置的时间段到期?
    • 默认情况下,APC 检查每个请求所需文件的修改时间。因此,如果您进行新部署,APC 将自动解析和缓存最新文件。此处要查看的 apc 变量是 apc.stat。如果您将其关闭,您将需要重新启动 Web 服务器以使用新代码。但是,这将使 APC 更快,因为它不需要检查文件系统。记忆...我不太确定。同样,这取决于您的系统。如果仅将其用于 OpCode 缓存,则不需要那么多内存。
    • 它需要多少 psace 取决于你的代码有多大。对于一个大小合适的,我会从 64MB 开始。我倾向于留出足够的空间,比代码实际占用的空间多 2.5-3 倍,所以我可以在旁边放另一个版本。对于繁忙的站点,apc.stat=0 很有用,但您也可以通过函数调用清除缓存,而不是重新启动 Apache。
    【解决方案2】:

    APC 既是opcode cache 又是通用数据缓存。后者的工作方式与 memcached 非常相似,而操作码缓存通过缓存已解析的 php 文件来工作,因此不必在每个请求上都解析它们。这通常可以大大加快执行时间。

    【讨论】:

    • 啊,听起来 Opcode 缓存对我的服务来说是最有用的部分。您是否有任何关于在 Opcode 缓存情况下实现 APC 的更多信息?
    • 好吧..您基本上只需安装扩展程序并在 php.ini 中设置一些配置设置。如果您download the source code 来自 pecl 的扩展,则有一个随它分发的小型 Web 应用程序,您可以使用它来查看一些统计信息。否则,the manual 相当全面。
    • 这实际上只是设置它将使用多少空间并将其放入服务器的问题。对于大多数重要的网站来说,想要拥有它是一件轻而易举的事。当我将它安装在服务器上时,我看到一台机器的平均负载从 1.0+ 变为
    【解决方案3】:

    您不必实现 APC 的操作码缓存功能,只需将它们作为 php 模块启用即可。

    APC缓存大小等配置信息为here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      • 2017-01-03
      • 2015-03-21
      • 2023-03-05
      • 1970-01-01
      • 2015-12-25
      • 2020-12-06
      相关资源
      最近更新 更多