`

php中使用memcache扩展的性能问题

    博客分类:
  • PHP
阅读更多

           Memcached是一个高性能分布式缓存系统,目前估计是很多公司的标配了,因为他被非常广泛的使用,在各种语言下都有其丰富的client,所以很多后端服务也采用了兼容的memcached协议,比如memcachedbttserver等等。所以最近我开发的队列服务器也采用了memcached协议,底层是基于磁盘的存储,单独测试底层存储的性能非常好,在我台式机能达到每秒写入3万1K的数据。

          今天用php测试了下往刚刚开发的队列服务器(icqueue)插入数据,代码如下:

 

复制代码
<?php
$mem=new Memcache();
$mem->addServer ("127.0.0.1",12001,false,1,100);
$start=microtime(true);
$str= str_repeat ("a",1024);//1k数据
for($i=0;$i<100000;$i++){
$mem->add("bbs_password_",$str,0,0);//入队,bbs为队列名称,password为密码
}
echo microtime(true)-$start;
?>
复制代码

 

 

执行:[root@sunlitest1 bbs]# /usr/local/php/bin/php mem.php

 5.6957609653473

花了5秒,感觉速度还是挺快,还是单进程跑的。接着我想测试大一点的数据,把其中的

 

$str= str_repeat ("a",1024);//1k数据

 

改为

$str= str_repeat ("a",1024*10);//10k数据

执行:[root@sunlitest1 bbs]# /usr/local/php/bin/php mem.php发现速度非常的慢,等了1分钟也没有成功。怀疑是队列服务(icqueue)有问题,又换成memcached服务器写数据测试,发现速度同样的慢。

这就排除了是服务端的问题。经过调整数据的大小,发现只要达到8K就非常慢。

然后怀疑是不是到了8K memcach自动进行了压缩,是压缩很慢呢?又去telnet进去,发现数据是没有压缩的。

剩下的问题应该就是网络问题了,翻看了memcach扩展的手册,发现其中memcache.chunk_size的大小默认是8K,灵感一现,希望就是这这个问题导致的。

然后又改代码:

 

 

复制代码
<?php
ini_set('memcache.chunk_size',1024*15);//设置到15K
$mem=new Memcache();
$mem->addServer ("127.0.0.1",12001,false,1,100);
$start=microtime(true);
$str= str_repeat ("a",1024*10);//10k数据
for($i=0;$i<100000;$i++){
$mem->add("bbs_password_",$str,0,0);//入队,bbs为队列名称,password为密码
}
echo microtime(true)-$start;
?>
复制代码

 

执行:[root@sunlitest1 bbs]# /usr/local/php/bin/php mem.php

 

10.800881147385

跑了10完成,OK,问题解决了。

memcache.chunk_size在php.ini设置的。大小推荐设置为你的数据的常规大小。

分享到:
评论

相关推荐

    Memcached For PHP Windows版 带Memcache扩展和安装使用说明

    -m 最大内存使用,单位MB。默认64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是1024 -f 块大小增长因子,默认是1.25 -n 最小分配空间,key+value+flags默认是48 -h 显示帮助

    转载+整合 64位系统+ php 5.5 memcache 安装教程 及下载

    只有同时安装了memcached服务和memcache扩展才可以在PHP中使用memcached提高动态网站性能 一、安装memcache的php扩展 1. php_memcache.dll 下载: 下载地址:...

    高洛峰 memcache for window 和linux版软件及教程

    一、Memcache概述 Memcache(内存,缓存) : 是一个高性能的... a 在PHP安装Memcache扩展 b 在PHP什么地方使用memcache c 实例 九、Memcache的安全(不让别人访问) 安装. 然后开始 memcached -d start

    高性能PHP框架Smpe.zip

    适合中大型项目, 利于项目长期维护并保持简洁;  彻底解决SQL注入, 防止跨站攻击;  完全面向对象, 易扩展;  自动载入类文件, 告别require和include;  支持模块绑定域名;  支持...

    php开源框架 CmlPHP.zip

    从而从根本上避免了新手未使用缓存,或缓存使用不当造成的性能不佳的问题。也杜绝了多人协同开发缓存同步及管理的问题 CmlPHP V2.x 支持根目录、子目录,单入口、多入口部署、支持独立服务器、虚拟主机、VPS等...

    高性能高并发服务器架构大全

     使用开源软件,设计高性能可扩展网站 110  面向高负载的架构Lighttpd+PHP(FastCGI)+Memcached+Squid 113  思考高并发高负载网站的系统架构 113  "我在SOHU这几年做的一些门户级别的程序系统(C/C++开发)...

    Leaps PHP Framework V0.0.2

    判断一个框架的唯一办法是在使用中了解它。实践出真知嘛。 主要特性如下:基于MVC体系 多种据库驱动,支持多数据库,简单的切换多数据库。 超低耦合 不强制命名规范 高效缓存机制,修改一个配置切换FileCache?或...

    Leaps PHP Framework V0.0.2.rar

    判断一个框架的唯一办法是在使用中了解它。实践出真知嘛。 主要特性如下: 基于MVC体系 多种据库驱动,支持多数据库,简单的切换多数据库。 超低耦合 不强制命名规范 高效缓存机制,修改一个配置切换FileCache?或...

    MyQEE开源PHP多项目及模块化开发框架 v3.0 RC2.zip

    数据库增加对 group_concat 的支持,MongoDB数据库驱动支持在group查询中使用distinct查询,修复MongoDB驱动力中查询slave在新的版本里可能导致连接失败的问题 增加 BigInt 类库 日期类库完善 HttpClient 增加...

    Leaps PHP Framework V0.0.2.zip

    判断一个框架的唯一办法是在使用中了解它。实践出真知嘛。 主要特性如下: 基于MVC体系 多种据库驱动,支持多数据库,简单的切换多数据库。 超低耦合 不强制命名规范 高效缓存机制,修改一个配置切换File...

    PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )

    PHP中有eAccelerator、memcached、xcache、APC 4个加速、缓存扩展,下面给大家介绍下其区别,一起看看吧!  折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的...

    ThinkPHP 3.1.2 - PHP的开发框架MVC - 含Core,Extend,Example

    社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,众多 的典型案例确保可以稳定用于商业以及门户级的开发。 经过6年的不断积累和重构,3.0版本在框架底层的定制和扩展方面趋于完善, 使得应用的...

    Nginx0.5.33+PHP5.2.5(FastCGI)搭建胜过Apache10倍的Web服务器

    修正了PHP iconv和gd库冲突的BUG,增加了PHP mcrypt、memcache扩展,修改了PHP和Nginx编译参数,优化了Nginx配置文件,添加了部分功能。Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 ...

    好文本网站内容管理系统(GCMS) v1.0.rar

    好文本网站内容管理系统(GCMS)还有很多不足,以后会不断成长,目前仅仅是免费试用阶段,是否使用请您自行决定,如果使用中出现问题,我们会尽力查找原因,努力解决,如果造成您的损失或其它不良后果,《好文本网》...

    WODECMS开源内容管理系统 v1.1.zip

    高性能扩展 可以继承memcache,redis等内存缓存运用 大数据量 无需担心数据量足够大的时候,系统跑不了,WODECMS是轻便灵活的,修改一点点代码后可以继续支持你的业务需要 功能插件化 按照官方提供的插件为蓝本...

    好文本网站内容管理系统(GCMS)v1.0

    CmlPHP支持分布式数据库、分布式缓存(使用memcache缓存驱动),支持文件、memcache、redis、apc等缓存,支持多种url模式,支持URL路由,支持多项目集成、支持第三方扩展、支持插件... 好文本网站内容管理系统(GCMS...

    ThinkPHP v6.0.7

    并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。...

    Leaps PHP Framework 2.0.1

    Leaps PHP Framework是一个性能卓越并且功能丰富的轻量级PHP开发框架,宗旨就是让WEB应用开发更简单、更快速。 Leaps 2.0.1 更新日志:2015-06-25 修复PHP5.4不兼容的正则表达式 主要特性如下: 基于MVC...

Global site tag (gtag.js) - Google Analytics