问题标签 [apc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
453 浏览

php - 使用 apc_compile_file 手动填充整个应用程序的操作码缓存,然后切换到新版本

有没有人有一个很棒的系统或任何想法,可以按照标题所说的那样做?

我想将 Web 应用程序的生产版本(用 PHP 编写并由 Apache 提供服务)从 1234 版切换到 1235 版,但在此之前,所有文件都已经在操作码缓存 (APC) 中。然后在切换之后,从版本 1234 中删除文件的旧缓存条目。

据我所知,有三种简单的方法可以原子地从一个版本切换到下一个版本。

  1. 有一个符号链接,例如 /live,它始终是文档根目录,但更改为从一个版本指向下一个版本。
  2. 同样,有一个目录/live 始终是文档根目录,但使用

    mv live oldversion && mv newversion live

    切换到新版本。

  3. 编辑 apache 配置以将文档根目录更改为 newversion,然后重新启动 apache。

我认为最好不要做 3,但无论如何我都想不出预编译所有 php 文件并使用 1 或 2 来切换版本。

那么有人可以说服我可以依赖选项 3,或者告诉我如何使用 1 或 2,或者透露一些我没有想到的其他选项吗?

0 投票
1 回答
409 浏览

php - APC 没有按预期工作?

我有以下功能:

我正在使用以下代码对其进行测试:

这是输出:

不应该是这样的:

我不明白,谁能帮我弄清楚这种奇怪的行为?

0 投票
1 回答
558 浏览

php - 安装了 APC 的 LAMP 堆栈 - WordPress 站点 - WP 操作码是否与 APC 一起缓存?

我有一个安装了 APC 的 LAMP 堆栈。我在这台服务器上有一个 WordPress 网站。WP 是否利用了操作码缓存?我没有做任何 WP 配置。我的理解是,仅仅安装 APC 就意味着所有 PHP 代码都被缓存了。如果这是不正确的,请指出我可以配置 WP 以利用 APC 的方向。

注意:我认为这是一个 ServerFault 问题,但由于解决方案与代码相关,我在 Stackoverflow 上发布。

0 投票
2 回答
381 浏览

php - 调用 apc_delete() 后 PHP 的 APC 会回收内存吗?

更一般地说,有谁知道 APC 内部工作方式的记录在哪里?

0 投票
1 回答
3822 浏览

php - PHP:apc_store 没有按预期工作

我已经开始尝试 APC 在每个网络服务器上存储一些特定的数据,作为对 memcached 的补充。

但是,下面的代码片段让我很头疼:

内存缓存示例:

为什么 apc_store 不能正常工作?

编辑: 为了确保没有其他人花费两个小时寻找解决方案,当这是由错误引起时,这里是一个:http ://pecl.php.net/bugs/bug.php?id=16894&edit= 1(虽然不是最有效的)

0 投票
1 回答
1291 浏览

php - 使用 memcached/APC 进行会话存储?

我之前有过一些关于使用 memcached 进行会话存储的想法,但得出的结论是,如果 memcached 池中的一个或多个服务器即将关闭,这将是不够的。

混合版本是将主数据库(mySQL)从读取引起的负载中拯救出来,它将制定一个尝试从缓存池中获取数据的函数,如果失败则从数据库中获取数据。

在考虑了更多之后,我开始考虑使用 APC 缓存来处理与会话相关的数据。如果我们的 Web 服务器出现故障,无论哪种方式,会话都会丢失,因此将它们存储在本地 APC 或 localhost memcached 服务器中可能不是那么糟糕吗?

你有什么经验?

0 投票
3 回答
1022 浏览

php - APC 降低 php 性能???(php 5.3, apache 2.2, windows vista 64bit)

我有一个 Apache/2.2.15 (VC9) 和 PHP/5.3.2 (VC9 线程安全) 在 Vista 64 位机器上作为 apache 模块运行。一切运行良好。

我进行基准测试的项目(使用 apache 的 ab 实用程序)基本上是标准的 Zend Framework 项目,不涉及任何数据库连接。平均(中值)apache 响应时间约为0.15 秒

在我使用标准设置安装 APC(3.1.4-dev VC9 线程安全)后,请求响应时间突然提高到1.3 秒(!),这是不可接受的......所有 apc 设置看起来总是很好(通过 apc.php脚本:足够的 shm 内存,没有缓存满,碎片 0%)。

唯一的区别是禁用统计查找 (apc.stat = 0)。然后响应下降到0.09 秒,这最终比没有 apc 更好。IIRC,显然统计查找会产生一些开销,但是与完全没有 apc 扩展的运行相比,它是否应该仍然具有更高的性能?

或者换一种说法,为什么 apc.stat 会产生如此多的开销?

0 投票
1 回答
102 浏览

php - Windows 上的 APC 使服务器终止连接

我有一个小问题,我一生都无法弄清楚发生了什么。我在启用 APC 的服务器上运行 Linux 机器。一切正常。

现在,当我在 Windows 上启用 APC 时,服务器开始终止连接。您知道,Firefox 会吐出“站点当前不可用”消息。

我尝试了访问日志、错误日志,但没有任何内容表明错误。APC 怎么会影响这样的服务器?

顺便说一句:我的本地服务器/实时服务器上有一个 CMS。在实时服务器上,它与 APC 配合得很好。在开发服务器上,连接终止。奇怪的是,更简单的脚本执行得很好。CMS 使用的是 CakePHP。

任何帮助将不胜感激。

0 投票
1 回答
12221 浏览

php - 在 Apache httpd 进程中定位内存泄漏,基于 PHP/Doctrine 的应用程序

我有一个使用这些组件的 PHP 应用程序:

  • Centos 5.4 上的 Apache 2.2.3-31
  • PHP 5.2.10
  • 启用远程调试的 Xdebug 2.0.5
  • APC 3.0.19
  • Doctrine ORM for PHP 1.2.1 通过 APC 使用查询缓存和结果缓存
  • MySQL 5.0.77 使用查询缓存

我注意到当我启动 Apache 时,我最终有 10 个子进程。随着时间的推移,每个进程都会在内存中增长,直到每个进程接近 10% 的可用内存,这开始使服务器慢下来,因为它们一起增长到占用 100% 的内存。

这是我的顶级输出的快照:

我没有长时间运行的脚本(它们最终都会终止,最长的可能是 2 分钟),并且我假设一旦每个脚本终止,它使用的内存就会被释放。(也许有人可以纠正我)。

我的预感是它可能是 APC,因为它在请求之间存储数据,但与此同时,它将数据存储在 httpd 进程中似乎很奇怪。

如何追踪我的应用程序的哪个部分导致内存泄漏?

我可以使用哪些工具来查看 httpd 进程内的内存使用情况如何增长,以及导致它的原因是什么?

0 投票
2 回答
1038 浏览

php - APC 3.1.x 有多稳定?

有人在大容量站点上使用 APC 3.1.x 吗?3.1 系列被标记为“测试版”版本,但它有一些我们真正想要拥有的功能(特别是对 apc_clear_cache('user') 的性能改进,这在 3.0.19 中没有)

那么:您是否在一个非常活跃的站点上成功使用了 APC 3.1.x?(每秒超过 1 个 PHP 请求 [不包括图像/js/css])有任何不稳定迹象吗?