drupal 调整
- 禁用不需要的模块,特别是“Devel”
- 匿名访问页面缓存:“Configuration”->”Performance” 中设置
- 压缩CSS,JS文件节省带宽: “Configuration”->”Performance” 中设置
- 启用syslog模块: syslog这个模块是Drupal的一个核心模块,默认是关闭的,它可以使用PHP的syslog()函数调用watchdog()给操作系统。这一操作消除了数据库记录模块的插入操作。
- 运行cron: cron是很容易被忽略的,其可能的结果是让数据库填满了各种log消息,stale cache entries和其他的统计信息。越早配置cron越好。其具体配置操作在Drupal的INSTALL.txt中写的很清楚。
- 修改settings.php文件
- 修改session table: Drupal将用户session保存在数据库中,而不是在文件中。这样做虽然建立起了跨平台用户协作机制,但同时增加了数据库管理每个用户session信息的压力。如果网站上用户一多,那么数据库中的这个session table将变得很大。在PHP中可以设置session的生命周期:
ini_set('session.gc_maxlifetime', 200000); // 55 hours (in seconds)
另外,Drupal的“垃圾”回收系统默认设置是两天,这就是说,如果一个用户两天没有登录,他/她的session就会被消除。因此如果session table增加很快,就需要降低回收频率了。
ini_set('session.gc_maxlifetime', 86400); // 24 hours (in seconds)
ini_set('session.cache_expire', 1440); // 24 hours (in minutes)
其中要注意在调整session.gc_maxlifetime时,最好值与session.cache_expire相同,后者控制缓存会话页面的时间,session.cache_expire的单位是分钟。 - 认证用户优化:由于Drupal内部针对匿名用户的缓存页面,而且匿名用户无需与Drupal的核心内容交互,因此针对认证用户,我们可以做下面的配置来利用匿名用户的系统优势。首先可以设置在用户关闭浏览器后就直接登出,这个需要调整settings.php文件中的cookie lifetime:
ini_set('session.cookie_lifetime', 86400); // 24 hours (in seconds)
上述操作将lifetime缩减为一天,下面设置在浏览器关闭后直接登出:
ini_set('session.cookie_lifetime', 0); //在settings.php中的默认值是2,000,000秒,超过3个礼拜。
- 修改session table: Drupal将用户session保存在数据库中,而不是在文件中。这样做虽然建立起了跨平台用户协作机制,但同时增加了数据库管理每个用户session信息的压力。如果网站上用户一多,那么数据库中的这个session table将变得很大。在PHP中可以设置session的生命周期:
- 数据库优化
Drupal 很依赖于数据库,尤其是针对认证用户和模块。而众所周知数据库是常见的影响系统性能的瓶颈所在。下面是一些优化Drupal数据库的常用策略:
- 启用数据库缓存:以MySQL为例,要启用缓存,将下面的指令添加到你的MySQL option文件中,该文件命名为my.cnf,用于为MySQL服务器设定变量和行为(see http://dev.mysql.com/doc/refman/5.1/en/option-files.html)。在下面的例子中,我们设置64MB的查询缓存:
[mysqld]
query_cache_size=64M
可以利用MySQL中的SHOW VARIABLES命令查看现在查询缓存的大小:
mysql>SHOW VARIABLES LIKE 'query_cache%';
| query_cache_size | 67108864
| query_cache_type | ON
缓存大小究竟设置为多大需要多多实验,太小的话数据库查询太频繁,太大的话在缓存中搜索要花更多时间。
- 启用数据库缓存:以MySQL为例,要启用缓存,将下面的指令添加到你的MySQL option文件中,该文件命名为my.cnf,用于为MySQL服务器设定变量和行为(see http://dev.mysql.com/doc/refman/5.1/en/option-files.html)。在下面的例子中,我们设置64MB的查询缓存: