【问题标题】:Where does APC store its opcode and user variable cache?APC 在哪里存储它的操作码和用户变量缓存?
【发布时间】:2010-11-10 08:10:37
【问题描述】:

我问的原因是因为在使用top 时,我没有看到像 APC 这样的进程。所以我假设内存使用量将在 apache 进程中计算。

是这样吗,这是否意味着 APC 正在使用的内存在每个 apache 进程中都被复制,从而占用的内存可能比最初分配给它的内存要多得多?

如果是这种情况,memcache 是否会是更好的解决方案,即使它没有在多个负载平衡服务器上使用?

【问题讨论】:

    标签: php apache memcached apc


    【解决方案1】:

    APC 使用共享内存来存储其操作码缓存。在 mod_php 的情况下,此内存在所有 Apache 进程之间共享。所以一个 30MB 的缓存即使有 5 个 Apache 进程也只占用 30MB。

    但是,当使用 mod_php 时,每个 Apache 进程确实会浪费大量资源,因为每个进程都包含 PHP 解释器。因此,当 Apache 提供静态内容(html、css、js、图像文件等)时,它使用一个加载了完整 PHP 解释器的进程。为了解决这个问题,有些人通过 mod_fastcgi 或 mod_fcgi 使用 FastCGI。 Using an opcode cache with FastCGI 变得有点棘手。

    目前没有办法将 memcache 用作操作码缓存。即使有,它也可能会比预期的要慢。

    【讨论】:

      【解决方案2】:

      除了作为操作码缓存之外,APC 还提供共享内存。这强烈表明它有自己的内部共享内存系统,类似于 memcached。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多