问题标签 [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.
php - 使用 apc_compile_file 手动填充整个应用程序的操作码缓存,然后切换到新版本
有没有人有一个很棒的系统或任何想法,可以按照标题所说的那样做?
我想将 Web 应用程序的生产版本(用 PHP 编写并由 Apache 提供服务)从 1234 版切换到 1235 版,但在此之前,所有文件都已经在操作码缓存 (APC) 中。然后在切换之后,从版本 1234 中删除文件的旧缓存条目。
据我所知,有三种简单的方法可以原子地从一个版本切换到下一个版本。
- 有一个符号链接,例如 /live,它始终是文档根目录,但更改为从一个版本指向下一个版本。
同样,有一个目录/live 始终是文档根目录,但使用
mv live oldversion && mv newversion live
切换到新版本。
- 编辑 apache 配置以将文档根目录更改为 newversion,然后重新启动 apache。
我认为最好不要做 3,但无论如何我都想不出预编译所有 php 文件并使用 1 或 2 来切换版本。
那么有人可以说服我可以依赖选项 3,或者告诉我如何使用 1 或 2,或者透露一些我没有想到的其他选项吗?
php - APC 没有按预期工作?
我有以下功能:
我正在使用以下代码对其进行测试:
这是输出:
不应该是这样的:
我不明白,谁能帮我弄清楚这种奇怪的行为?
php - 安装了 APC 的 LAMP 堆栈 - WordPress 站点 - WP 操作码是否与 APC 一起缓存?
我有一个安装了 APC 的 LAMP 堆栈。我在这台服务器上有一个 WordPress 网站。WP 是否利用了操作码缓存?我没有做任何 WP 配置。我的理解是,仅仅安装 APC 就意味着所有 PHP 代码都被缓存了。如果这是不正确的,请指出我可以配置 WP 以利用 APC 的方向。
注意:我认为这是一个 ServerFault 问题,但由于解决方案与代码相关,我在 Stackoverflow 上发布。
php - 调用 apc_delete() 后 PHP 的 APC 会回收内存吗?
更一般地说,有谁知道 APC 内部工作方式的记录在哪里?
php - PHP:apc_store 没有按预期工作
我已经开始尝试 APC 在每个网络服务器上存储一些特定的数据,作为对 memcached 的补充。
但是,下面的代码片段让我很头疼:
内存缓存示例:
为什么 apc_store 不能正常工作?
编辑: 为了确保没有其他人花费两个小时寻找解决方案,当这是由错误引起时,这里是一个:http ://pecl.php.net/bugs/bug.php?id=16894&edit= 1(虽然不是最有效的)
php - 使用 memcached/APC 进行会话存储?
我之前有过一些关于使用 memcached 进行会话存储的想法,但得出的结论是,如果 memcached 池中的一个或多个服务器即将关闭,这将是不够的。
混合版本是将主数据库(mySQL)从读取引起的负载中拯救出来,它将制定一个尝试从缓存池中获取数据的函数,如果失败则从数据库中获取数据。
在考虑了更多之后,我开始考虑使用 APC 缓存来处理与会话相关的数据。如果我们的 Web 服务器出现故障,无论哪种方式,会话都会丢失,因此将它们存储在本地 APC 或 localhost memcached 服务器中可能不是那么糟糕吗?
你有什么经验?
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 会产生如此多的开销?
php - Windows 上的 APC 使服务器终止连接
我有一个小问题,我一生都无法弄清楚发生了什么。我在启用 APC 的服务器上运行 Linux 机器。一切正常。
现在,当我在 Windows 上启用 APC 时,服务器开始终止连接。您知道,Firefox 会吐出“站点当前不可用”消息。
我尝试了访问日志、错误日志,但没有任何内容表明错误。APC 怎么会影响这样的服务器?
顺便说一句:我的本地服务器/实时服务器上有一个 CMS。在实时服务器上,它与 APC 配合得很好。在开发服务器上,连接终止。奇怪的是,更简单的脚本执行得很好。CMS 使用的是 CakePHP。
任何帮助将不胜感激。
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 进程内的内存使用情况如何增长,以及导致它的原因是什么?
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])有任何不稳定迹象吗?