• 使用memcache对wordpress优化,提速


    环境:

    一个本地开发环境

    一个部署在虚拟机中( 虚拟机安装memcache缓存),然后用这个优化的版本跟本地开发环境对比.

    wordpress版本:4.9.5

    php:5.6版本

    1,首先在主题的functions.php文件中,加入以下监控统计代码

    function performance( $visible = true ) {
        $stat = sprintf(  '%d queries in %.3f seconds, using %.2fMB memory',
            get_num_queries(),
            timer_stop( 0, 3 ),
            memory_get_peak_usage() / 1024 / 1024
        );
        // echo $visible ? $stat : "<!-- {$stat} -->" ;
        echo "<div class='container_12'><p class='grid_12 footer clearfix'>$stat</p></div>";
    }
    
    add_action( 'wp_footer', 'performance', 20 );

    样式可以根据自己的主题定制,这段代码可以统计出页面有多少次数据库查询。总共花了多少秒,耗费多少内存,类似如下的样式:

    16 queries in 1.306 seconds, using 12.98MB memory

    2,安装memcached服务端

    [root@bogon wp-content]# ps -ef | grep memcached
    root      5050  3466  0 14:44 pts/1    00:00:00 grep memcached
    root     29269     1  0 13:57 ?        00:00:02 /usr/local/memcached/bin/memcached -d -l 127.0.0.1 -p 11211 -u root -m 64 -c 1024 -P /var/run/memcached.pid

    3,安装php memcache扩展

    wget http://pecl.php.net/get/memcache-3.0.8.tgz,用phpize外挂方式安装,安装完成之后,在php.ini中启用,再重启php,确定memcache已经加载

    memcache
    memcache support    enabled
    Version    3.0.8
    Revision    $Revision: 329835 $
    Directive    Local Value    Master Value
    memcache.allow_failover    1    1
    memcache.chunk_size    32768    32768
    memcache.compress_threshold    20000    20000
    memcache.default_port    11211    11211
    memcache.hash_function    crc32    crc32
    memcache.hash_strategy    consistent    consistent
    memcache.lock_timeout    15    15
    memcache.max_failover_attempts    20    20
    memcache.protocol    ascii    ascii
    memcache.redundancy    1    1

    4,下载wordpress memcache插件

    wget https://downloads.wordpress.org/plugin/memcached.3.0.1.zip

    把object-cache.php解压到wp-content目录下

    [root@bogon wp-content]# ls
    index.php  languages  object-cache.php  package.xml  plugins  themes  upgrade  uploads
    [root@bogon wp-content]# 

    最后比较服务器

    安装了memcache缓存的版本,首页性能:

    3 queries in 0.451 seconds, using 13.56MB memory

    没有启用缓存的系统,首页性能:

    16 queries in 1.336 seconds, using 12.98MB memory

    可以看见有很明显的提升,其他页面都会被优化,缓存到

     启用opcache,再次提速:

    3 queries in 0.129 seconds, using 3.48MB memory

    php.ini中opcache需要这样加载:

    zend_extension=opcache.so

    opcache相关配置: 

    [opcache]
    ; Determines if Zend OPCache is enabled
    opcache.enable=1
    
    ; Determines if Zend OPCache is enabled for the CLI version of PHP
    opcache.enable_cli=1
    
    ; The OPcache shared memory storage size.
    opcache.memory_consumption=528
    
    ; The amount of memory for interned strings in Mbytes.
    opcache.interned_strings_buffer=8
    
    ; The maximum number of keys (scripts) in the OPcache hash table.
    ; Only numbers between 200 and 100000 are allowed.
    opcache.max_accelerated_files=10000
    
    ; The maximum percentage of "wasted" memory until a restart is scheduled.
    ;opcache.max_wasted_percentage=5
    "php.ini" 2051L, 74201C written                                                                                      
    
      
    [ldap]
    ; Sets the maximum number of open links or -1 for unlimited.
    ldap.max_links = -1
    
    [mcrypt]
    ; For more information about mcrypt settings see http://php.net/mcrypt-module-open
    
    ; Directory where to load mcrypt algorithms
    ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
    ;mcrypt.algorithms_dir=
    
    ; Directory where to load mcrypt modes
    ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
    ;mcrypt.modes_dir=
    
    [dba]
    ;dba.default_handler=
    
    [opcache]
    ; Determines if Zend OPCache is enabled
    opcache.enable=1
    
    ; Determines if Zend OPCache is enabled for the CLI version of PHP
    opcache.enable_cli=1
    
    ; The OPcache shared memory storage size.
    opcache.memory_consumption=528
    
    ; The amount of memory for interned strings in Mbytes.
    opcache.interned_strings_buffer=8
    
    ; The maximum number of keys (scripts) in the OPcache hash table.
    ; Only numbers between 200 and 100000 are allowed.
    opcache.max_accelerated_files=10000
  • 相关阅读:
    IIS7配置URL Rewrite链接重写
    wordpress导航菜单的链接支持弹出新页面
    c++绝对是拯救了世界,特别是程序员
    Linux 磁盘坏道检测和修复
    centos里mysql无法用localhost连接的解决方法
    php扩展开发
    IP多播
    因特网的路由选择协议
    ICMP协议
    ARP协议
  • 原文地址:https://www.cnblogs.com/ghostwu/p/8874819.html
Copyright © 2020-2023  润新知