我打算在我的服务器上安装 APC 来增强 Drupal 的性能,但是我在网上看到,如果我的内存很少,这可能会有风险,性能可能会变差。
我有 256MB 的 RAM,所以我想知道安装 APC 是否有意义以及应该为其分配多少 RAM。
附言:我正在运行 lighttpd 作为 Web 服务器
谢谢
答案1
从http://www.php.net/manual/en/apc.configuration.php
... apc.php 脚本 ... 缓存已满计数(左侧)将显示缓存已达到最大容量并必须强制清除过去 apc.ttl 秒内未访问的任何条目的次数。在配置良好的缓存中,此数字最小。如果缓存不断被填满,并因此被强制释放,则由此产生的混乱将对脚本性能产生不利影响。最小化此数字的最简单方法是为 APC 分配更多内存。除此之外,应使用 apc.filters 来缓存更少的脚本。
在处理测量问题时,测量工具和定量方法(问自己“多少?”)比“尝试和失败”更有效,因此你可以花一些时间找到一个合理的工具来准确测量问题,比如
free -mot
和一个测试环境,比如说你的发行版在一个 VirtualBox 实例中被快照以记住合理的配置,然后在使用不同配置的测试下监控内存使用情况,即。
ab -n 500 -c 30 http://example.com/mytestapp/myheavyloadaction
如果您尝试静态 html 页面或 php 中的 helloword,测试就毫无意义,您需要测试真正的应用程序,并可能修改应用程序本身以记录它花时间做什么。
无论如何,我们都无法达到每个请求 0 毫秒的速度,因此我们应该为用户定义什么是“足够快”。对我来说,500 毫秒就足够了,因为我知道下载模板中的一个 gif 将会使服务器端的数小时的努力化为乌有。此外,在软件配置上花费真正的精力不会、也永远不会达到增加 RAM 所能达到的效果。
以我使用 LAMP 堆栈的个人经验来说,但由于上述原因,我们无法概括,mysql 对 RAM 的使用是瓶颈,而不是 php 本身(也不是 apache)。
当且仅当您被迫使用如此少的 RAM 并且您无法坚持购买更多(2Gb 对我的用途来说是合理的)时,这可能是较便宜的情况(请坚持认为在没有实际利益的情况下损失开发时间的经济方面对我来说是有效的...),了解此优化所需的实际工作和专业知识,使用您的 Web 框架文件缓存(@see drupal.org/project/filecache),@see drupal.org/project/memcache 或 sqlite 也值得尝试。