错误信息

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls 在 menu_set_active_trail() (行 2405/data/itxueku/includes/menu.inc).

网站性能优化及Drupal性能优化拾遗

浏览:119

阅读了一下drupal专业开发指南一本书,英文版的,里面有几点关于drupal以及网站优化的建议,总结了一下,列在此处以供参考。



  1. 使用varnish作为前段代理。(一直推荐,从不间断!)
    也可以使用Boost+Varnish,两个并不冲突。如果内存足够多,可以把Boost的的缓存目录挂载在内存上,这样速度更快。




  2. 不要使用Drupal默认的404,因为走Drupal,比较慢,消耗系统资源。
    给htaccess或者apache的conf文件添加如下代码:





    <FilesMatch "\.(png|gif|jpe?g|s?html?|css|js|cgi|ico|swf|flv|dll)$">
      ErrorDocument 404 default</FilesMatch>



  3. 定时清理Session表。
    Drupal的session保存在数据库里面,设置不当会导致大量的垃圾数据,因此需要设置session时间短一点。添加如下代码到settings.php里面





    ini_set('session.gc_maxlifetime',   86400); // 24 hours (in seconds)ini_set('session.cache_expire',     1440); // 24 hours (in minutes)




  4. Apc的内存设置不能太小,如果太小APC的性能会大大降低。建议设置512M以上。
    APC有一个bug,具体不是很清楚,如果APC报错,请设置如下参数:





    apc.mmap_file_mask = /dev/zero.



  5. 最后是关于Linux内核优化相关。





    echo "
    net.ipv4.ip_local_port_range = 1024 65536
    net.ipv4.tcp_rmem=4096 87380 16777216
    net.ipv4.tcp_wmem=4096 65536 16777216
    net.ipv4.tcp_fin_timeout = 3
    net.ipv4.tcp_no_metrics_save=1
    net.ipv4.tcp_syncookies = 0
    net.ipv4.tcp_max_orphans = 262144
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_syn_retries = 2
    net.core.rmem_max=16777216
    net.core.wmem_max=16777216
    net.core.netdev_max_backlog = 30000
    net.core.somaxconn = 262144
    " > sysctl_tweaks.conf
    sysctl -p sysctl_tweaks.conf


其他关于Varnish的优化可以参考 varnish官方网站 https://www.varnish-cache.org/trac/wiki/Performance




top