环境:
一个本地开发环境
一个部署在虚拟机中( 虚拟机安装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 "<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:
-
- ; 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
温馨提示:本文最后更新于2019年3月19日,已超过 2 年没有更新,如果文章内容或图片资源失效,请留言反馈,模板下载吧会及时处理,谢谢!