Cachify分析
Jmeter性能分析
wocommerce编辑页面
sql:81 页面加载0.25s
安装cachify插件
- 用wc创建页面,加入wc的产品
sql74条了,速度提升不是很明显,目前考虑从sql方面入手,直接撸源码
/* Hooks */
// wp插件加载触发的函数
add_action(
'plugins_loaded',
array(
'Cachify',
'instance',
)
);
// 插件激活触发
register_activation_hook(
__FILE__,
array(
'Cachify',
'on_activation',
)
);
// 插件禁用触发
register_deactivation_hook(
__FILE__,
array(
'Cachify',
'on_deactivation',
)
);
// 插件卸载触发
register_uninstall_hook(
__FILE__,
array(
'Cachify',
'on_uninstall',
)
);
// wp的命令行工具
/* WP-CLI */
add_action(
'cli_init',
array(
'Cachify_CLI',
'add_commands',
)
);
/* Autoload Init */
spl_autoload_register( 'cachify_autoload' );
/**
* Autoload the class.
*
* @param string $class the class name.
*/
// 加载inc目录下的class-数组元素的php类
function cachify_autoload( $class ) {
if ( in_array( $class, array( 'Cachify', 'Cachify_APC', 'Cachify_DB', 'Cachify_HDD', 'Cachify_MEMCACHED', 'Cachify_CLI' ) ) ) {
require_once(
sprintf(
'%s/inc/class-%s.php',
CACHIFY_DIR,
strtolower( str_replace( '_', '-', $class ) )
)
);
}
}
因为选择的缓存方式为数据库,so着重关注class-cachify-db类
插件加载和插件激活调用了Cachify类的instance
和on_activation
两个函数
Jmeter显示的qps/tps在2.1左右
页面加载速度在0.6秒左右
开启Cachify
QPS最终在18.4
页面加载速度0.7秒左右
两次对比,加载速度方面并无明显的差别,但在性能方面的qps却有显著的区别
对比后台进程,发现开启插件后的fpm使用CPU效率提升显著,基本都在90%以上,而不开启cachify插件的情况下,cpu的利用率参差不齐,平均不超过50%。
针对fpm进程对cpu利用率的问题,解决思路:
- 修改php的配置,ini_set>php-fpm.conf>php.ini,修改php-fpm进程模式
pm = static
发现在开发cachify插件的前提下,qps也有了显著的提升,达到12