【问题标题】:Can the APC cache be shared among multiple PHP processes running as fastcgi/fcgid?APC 缓存可以在以 fastcgi/fcgid 运行的多个 PHP 进程之间共享吗?
【发布时间】:2009-11-20 18:42:39
【问题描述】:

我正在运行一个 LAMP 盒子,其中 PHP 作为 fcgid 运行。 APC 已安装并且运行良好。但是,每个 PHP 进程都有自己的缓存。这是一个问题,因为让 10 个 PHP 进程和 300MB 共享 APC 缓存比 10 个 PHP 进程更有意义,每个 PHP 进程都有一个冗余的 30MB 非共享 APC 缓存。

8 个月前有一个关于这个主题的帖子 (How to share APC cache between several PHP processes when running under FastCGI?),我想知道从那时起这个领域是否有任何发展。

【问题讨论】:

    标签: php fastcgi apc opcode fcgid


    【解决方案1】:

    据我所知,仍然不可能在多个进程中将共享内存缓存与任何 PHP 缓存器一起使用……无论如何,除非您承受着极其沉重的负载,否则您应该可以使用单独的缓存,因为它们很快就会被填满。嘿,现在 RAM 很便宜!

    【讨论】:

    • 由于这个问题,我可以缓存 N*30 MB 更少的操作码,其中 N 是 fcgid/PHP 进程的数量。与其将最常用的文件缓存 N 次,不如缓存 N 倍的文件以减少对磁盘的影响。我关心的原因是我们的负载很重 ;-) RAM 很便宜,不是免费的!
    【解决方案2】:

    几分钟前我在 PHP https://bugs.php.net/bug.php?id=57825 的错误跟踪中读到它,它已修复,但您必须使用 spawnfcgi 或 php-fpm http://php-fpm.org/

    引自拉姆斯

    如果您使用 spawnfcgi 或 php-fpm,它工作正常。任何流程管理器 启动父进程并从中产生子进程 会正常工作的。

    【讨论】:

      【解决方案3】:

      事实证明,如果您真正使用不同的进程,这仍然是不可能的:http://pecl.php.net/bugs/bug.php?id=11988(由 APC 相关部分的作者于 2009 年 11 月 13 日更新)。

      【讨论】:

        猜你喜欢
        • 2010-10-10
        • 1970-01-01
        • 2016-04-04
        • 1970-01-01
        • 2014-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-13
        相关资源
        最近更新 更多