国外设计欣赏网站 - DOOOOR.com

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

[Drupal优化/SEO/环境] Drupal优化方案教程---之使用APC优化时要注意的细节

[复制链接]
发表于 4-20-2012 21:40 | 显示全部楼层 |阅读模式
此前博文《drupal性能优化经验贴》中提到,一般类似drupal这样的PHP框架,我们为了提高性能必须要使用opcode来提高PHP的执行速度,PHP也有这样的模块。9 b! n& ~9 M0 s, p+ C9 N1 R5 U
我们都知道使用APC或者eAccelerator这样的opcode缓存可以提高网站的性能,但要注意的是需要根据网站的规模做细节的调优,只使用默认设置,可能带来的结果是性能还不如不用他们之前的效果。
+ y" h. D0 E9 O: ~1 Q) _
1 w, h2 w2 N  ^( r0 H. [/ x$ z这里要说的Case是,APC配置中有一项是shm_size,这是用来控制划分多少内存给APC使用,用来缓存文件或者opcode,对于文件缓存,原理大概相当于,预先读取到内存中缓存起来,下次再使用时就不需要占用磁盘I/O了,这个想法当然是很好的,依赖来说效果也是非常明显的。但使用Drupal做的大型项目,开启的模块是很多的,那就意味了需要加载的文件很多,他们放到一起占用的内存是很可观的,一般APC默认的配置可能16M, 那么当文件缓存的内存占用超过16M之后,会有什么问题呢,带来的问题是include_once这样的函数花费很长时间决定如何加载文件,这里可能存在一些算法上的问题,需要觉得那些缓存丢弃,把新读取的文件缓存放在内存中什么位置之类的,总之在这种情况下,APC反而会让性能下降,大概下降3,4倍左右。
- b( W/ E( y! u+ O; ]* ~' u! d8 @! ?
所以,在实际应用环境中,需要知道启用了多少个模块,需要提供大概多少内存,对于一个服务器提供多个站点,并且各个站点的Drupal是独立目录的场景中,因为APC的缓存机制,缓存所需内存更是成倍增加的。所以要么不用,用的话,一定要留出足够的内存,另外eAccelerator也是同样的道理,也许在内存溢出时,由于调度算法的差异,性能下降程度可能不一样,但总是会有影响的。
+ x$ ]. |$ o9 T: C" u7 B
5 Z( v& ~' E# f) m3 d) g. T因为本文只记录了结论,没有包含分析过程,大家可以参考一下原文的详细分析。" j- L) F! }" r' N8 a
( C8 \( S% }3 M5 H3 w$ v' L; v
High PHP execution times for Drupal, and tuning APC for include_once() performance
* i2 ~# b( m0 B; ?1 C9 k1 y' ~1 y
/ V6 ~/ `  t4 |3 q# X4 C' M! z

1 M3 z( J' y9 l1 I5 d( t8 {声明: 本站所有文章欢迎转载,所有文章未说明,均属于原创,转载均请注明出处。
5 E7 g7 L2 C, b" X/ j2 _7 L0 T本文有效链接: http://www.drupal001.com/2011/09/apc-shm-size-tuning/
2 c9 F, F0 {3 [版权所有: Drupal与高性能网站架构 http://www.drupal001.com: P. A" U3 w9 G$ W3 r8 L( R

0 w; |' K& b7 _* p6 y

|2011-2026-版权声明|平台(网站)公约|DOOOOR 设计网 ( 吉ICP备2022003869号 )

GMT+8, 6-16-2025 02:30 , Processed in 1.600386 second(s), 301 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表