Answers:
我们在SVN推送环境中运行,因此我们仅使用脚本清除apc文件缓存。
APC设置:
apc.ttl=604800
apc.user_ttl=3600
apc.shm_size=192M
apc.include_once_override=1
auto_globals_jit=Off
apc.num_files_hint = 2048
apc.stat_ctime = 0
apc.file_update_protection = 2
apc.stat = 0
PHP脚本:
<?php
$return = apc_clear_cache('opcode');
echo var_export($return);
604800 = 1周。
此后,启动xdebug / xhprof并运行并对该站点进行缓存搜索,应该让您知道正在使站点变慢的原因。简而言之,分析缓存研磨输出是加快Drupal的最佳方法。下面我列出了我们使用哪些补丁和模块来加速它;在您的情况下,很有可能会有所不同。
下面的Drupal 6具体答案
一旦超过了这一点,并且意识到APC无法满足您的需求,请切换到pressflow并为这些补丁打个招呼:
还可以尝试以下一些模块,因为它们在很大程度上改善了我们的网站速度:
这就是“一个字符串问题要多长时间”之一。
对于具有大量模块的低容量站点而言,对高容量站点的好处可能并不相同,而对于仅启用了几个模块的中容量站点而言,可能并不相同。服务器上运行的其他站点也可能正在占用APC可用的内存。
我的出发点是
apc.enabled=1
apc.shm_segments=1
apc.shm_size=64
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
apc.rfc1867=1
然后,我调整服务器的设置,但同样,没有一种尺寸适合所有设置。
查找apc.php(可能位于/usr/share/pear/apc.php),然后将其安装在DOCROOT中以进行Drupal安装。通过Apache配置将其锁定为您的IP地址。在其中编辑用户名/密码,然后浏览到它。然后,您将看到您的APC统计信息。
重新配置shm_size参数以最大程度地减少缓存丢失。理想情况下,您要为其提供足够的内存,以使文件永远不会丢失缓存,再为APC用户缓存提供一些额外的内存。
优化TTL以防止缓存混乱。如果您不编辑文件,则可以增加该数字。
当您经常使用drush时,enable_cli很方便,因此drush可以使用APC中的缓存文件。
rfc1867非常适合文件上传。
我还注意到标题中的php-fpm。这使事情变得复杂,并且实际上超出了Drupal Answers的范围。在Server Fault上,您可能会得到更好的响应,因为许多系统配置设置并不直接与Drupal相关。
APC只是改善了PHP文件的加载和解析。执行时间本身也是很大一部分。有很多因素会增加执行时间,包括错误(特别是与缓存相关的错误),内部开销(例如drupal_alter(),module_implements())等等。
根据您的要求,mikeytown2已建议您使用xhprof(与xdebug相比,我现在更喜欢xhprof,因为它可以直接,快速地访问结果并且不需要其他工具)来找出瓶颈所在。
我最近写了两篇关于在Drupal中使用xhprof和典型瓶颈的博客文章,您可能会发现它们很有趣。