-
Memcached安装使用分享
Memcached是什么:
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
eAccelerator和 memcached 是目前较为主流的两个可使用在PHP之中的缓存加速工具,以下为Memcached与eAccelerator 的区别:
eAccelerator作为PHP的扩展库存在,那么仅在PHP运行时,可以操作和读写共享内存,一般情况,只能由操作共享内存的程序自己调用。同时,eAccelerator 可以缓存PHP程序的执行代码,提升程序的调入和执行速度。
Memcached 主要作为一个共享内存服务器,其PHP扩展库仅仅作为PHP到 memcached 的连接库存在,类似MySQL扩展库.因而,Memcached 可以完全脱离PHP,其共享的数据,可以被不同的程序调用.
eAccelerator 主要用于单机PHP提速,缓存中间数据.对于实时性高,但数据操作量小的情况下;Memcache用于分布式或者集群系统,多台服务器可以共享数据.对于实时性高,同时数据操作量大的情况。
周末在张宴的博客上看到那么一句话“使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上”,于是我安装了Memcached 。
1、先安装libevent ,一般操作系统上有带,我的就是。
你可以使用以下语句查询:
ls -al /usr/lib | grep libevent
出现以下便说明已安装好的了。2、安装 Memcached,因为我之前安装的是 LNMP 一键包,软件是已下载好的了。
cd lnmp0.8
./memcached.sh
如果你不知道自己的系统有木有的话,可用yum search memcached
寻找。3、安装 PHP 的 Memcached 模块
cd lnmp0.8
cd memcache-3.0.6
/usr/local/php/bin/phpize
./configure –enable-memcache-with-php-config=/usr/local/php/bin/php-config -with-zlib-dir
make
make install
手动编译就是麻烦,如果不知道phpize在什么位置,可以用find / -name phpize
查找记录下安装成功后的提示,类似于:
Installing shared extensions: /usr/lib/php/extensions/…/
把这个地址记录下来,修改php.ini文件。vi /usr/local/php/etc/php.ini
在Zend Optimize 前面加上extension_dir = “/usr/local/php/lib/php/extensions/…../”
extension=memcache.so
最后验证一下是否安装完成php -m|grep memcache
应该会显示 memcache, 如果出现类似的错误:PHP Warning: Module ‘memcache’ already loaded in Unknown on line 0
那可以把上面在php.ini 增加的那两句话删去。当然,你还可以使用 phpinfo.php 查看 Memcached 模块是不是已被安装,显示如下:

4、启动 Memcached,你的安装地址可能不同,输入以下命令:
usr/local/memcached/bin/memcached -d -m 16 -p 11211 -l 127.0.0.1 -u root -c 256
-d:启动一个守护进程,
-m:分配给Memcache使用的内存数量,单位是MB,默认是64MB(对于我的网站,16M即可)
-u:运行Memcache的用户
-l:监听的服务器IP地址
-p:设置Memcache监听的端口,默认是11211注:-p(p为小写)
-c:设置最大并发连接数,默认是1024
-P:设置保存Memcache的pid文件注:-P(P为大写)
-h 显示帮助5、1)测试是否安装成功
netstat -tap | grep memcached
查看是否已运行2)你还可运行下面的 php 文件,如果有输出 This is a test!,就表示环境搭建成功。
< ?php $mem = new Memcache; $mem->connect(“127.0.0.1″, 11211);
$mem->set(‘key’, ‘This is a test!’, 0, 60);
$val = $mem->get(‘key’);
echo $val;
?>
3)还可以根据访问http://你的域名/memcached.php 看看是否出现以下内容:Memcached Server version: 1.4.7
Get key1 value: This is first value
Get key1 value: This is replace value
Get key2 value: Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd )
Get key1 value:
Get key2 value:
4)使用命令telnet 127.0.0.1 11211
对Memcached缓存服务的状态查询,可以先telnet连接上服务:telnet 127.0.0.1 11211 ,然后使用 stats命令查看缓存服务的状态,会返回如下的数据:time: 1255537291 (服务器当前的unix时间戳)
total_items: 54 (从服务器启动以后存储的items总数量 )
connection_structures: 19 (服务器分配的连接构造数)
version: 1.2.6 (Memcache版本)
limit_maxbytes: 67108864 (分配给memcache的内存大小字节)
cmd_get: 1645 (get命令(获取)总请求次数)
evictions: 0 (为获取空闲内存而删除的items数)
total_connections: 19 (从服务器启动以后曾经打开过的连接数)
bytes: 248723 (当前服务器存储items占用的字节数)
threads: 1 (当前线程数)
get_misses: 82 (总未命中次数)
pointer_size: 32 (当前操作系统的指针大小(32位系统一般是32bit)
bytes_read: 490982 总读取字节数(请求字节数)
uptime: 161 (服务器已经运行的秒数)
curr_connections: 18 (当前打开着的连接数)
pid: 2816 (memcache服务器的进程ID )
bytes_written: 16517259 总发送字节数(结果字节数)
get_hits: 1563 (总命中次数)
cmd_set: 54 (set命令(保存)总请求次数)
curr_items: 28 (服务器当前存储的items数量)安装好 memcached 后,我唯一的问题就是无法显示图形界面监控图。我折腾了两天都弄不好,就没有再去弄了。
转载一下别的大牛的:
我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,从Nginx的日志可以统计出,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量:
服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz,4GB内存)
服务器②:DELL PowerEdge 1950(一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz,4GB内存)
Web服务器:CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2(300 FastCGI Procees, unix-domain socket, with XCache)
PHP程序内容:大量Memcached读写、少量MySQL读操作、大量文件队列写操作,然后计算,生成供<script type=”text/javascript” src=”http://www.domain.com/abc.php?u=1"></script>方式调用的JS代码或XML数据。
网卡流量:1.5M~3M/秒
请求数统计方式:从Nginx访问日志中,统计每分钟的第15秒共有多少条日志记录。
引用grep "25/Mar/2008:15:01:15" /data1/logs/nginx.log | wc -l服务器的系统负载也不算高:
总结:
1、Nginx的处理能力超强,这块不是瓶颈。影响动态程序处理能力的因素主要在于PHP(FastCGI)。PHP(FastCGI)模式适用于执行时间较短的PHP程序,一般复杂的PHP程序执行时间应该在100ms以内,例如我的博客首页执行时间为38ms左右。假设一个PHP程序的执行时间为100ms,那么一个PHP(FastCGI)进程每秒可以处理完毕10个请求,300个FastCGI进程理论上每秒可以处理3000个请求。但是,在生产环境下,还将受到内存、系统负载等多方面的影响,例如300个PHP(FastCGI)进程需要占用2.4GB左右的内存,每秒处理超过1000个请求时,系统负载会飚升到100以上。因此,FastCGI的进程不是越多越好,而是够用就好。2、使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上。
3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。
4、如果PHP直接对MySQL进行大量读写操作,速度是达不到“700 request/sec”的,PHP与MySQL之间需要一个中间层,这是关键的技术。
5、CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。
6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。
7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文。
没有评论 -
[游戏攻略]【切水果高分方法】也许您知道!只为分享!
【切水果高分方法】
iOS切水果选择经典模式,开始游戏后点击左下角的暂停键,再按住屏幕中间的重新开始键(就是那个弯箭头)不放,然后锁屏,再解锁,之后按屏幕中间的继续键(类似播放键)继续游戏,就会有石榴从边上飞出,如此反复,即可刷高分。而且越到后面石榴越多,想得多少分都行!
只为与大家分享!
一个哥们随便就几千分!见图! -
实现 WordPress 分页导航,代码实现非插件
距上一次真正折腾WP已经相隔好几个月了,是由于期间各种原因叠加所致,无奈呀,杯具呀!
话说WP自带的就“较早文章”和“最近文章”两个内置函数,首页文章显示数又有限,如果要看很早以前的,那要翻得哟~所以我们希望有一排数字,可以让我们喜欢点哪一页就哪一页。目前可实现这个功能的插件太多太多,之前我使用的也曾推荐过的是:《WordPress 分页导航插件: Paginator》。
今天分享的是用纯代码来实现分页导航,先看效果图:
怎样?效果还过得去吧!有俺强力CSS代码技术做后盾,不怕做不出就怕想不出好样式~哇哈哈,臭屁臭屁了……
进入折腾步骤:
一、添加功能代码至 functions.php(的php循环内)
function par_pagenavi($range = 9){
global $paged, $wp_query;
if ( !$max_page ) {$max_page = $wp_query->max_num_pages;}
if($max_page > 1){if(!$paged){$paged = 1;}
if($paged != 1){echo “ 返回首页 “;}
previous_posts_link(‘ 上一页 ‘);
if($max_page > $range){
if($paged < $range){for($i = 1; $i
elseif($paged >= ($max_page – ceil(($range/2)))){
for($i = $max_page – $range; $i
elseif($paged >= $range && $paged < ($max_page – ceil(($range/2)))){
for($i = ($paged – ceil($range/2)); $i
else{for($i = 1; $i
next_posts_link(‘ 下一页 ‘);
if($paged != $max_page){echo “ 最后一页 “;}}
}二、添加美化代码至主题style.css
.page_navi{width:100%;height:36px;line-height:36px;text-align:center;overflow:hidden;padding-top:1em;}
.page_navi a{padding:3px 8px;margin:2px;text-decoration:none;color:#888;border:1px solid #ccf;}
.page_navi a:hover,.page_navi a.current{border:1px solid #356aa0;color:#356aa0;font-weight:bolder;}三、添加调用代码至主题index.php、archive.php、category.php、search.php
OK,大功造成!又可以干掉一个已为数不多的插件咯!
-
火车头wordpress接口程序,支持3.1 3.2 3.3 免登陆(出售)
火车头wordpress接口程序,支持3.1 3.2 3.3 免登陆
支持最新版
支持cookie发布
需要的联系我 50一个
火车头接口程序QQ:3936五22七八
功能介绍:
接口完美实现免登录发布Wordpress主题功能
适用于Wordpress 3.1+以上版本,但作者仅在最新版测试! -
继续总结一下linode VPS
上次linode的CPU由于apache没有正常运行,导致cpu每天都会达到120%,每天都会自动当机,对囧网影响真是不小,收录少了好几千,外链停滞不前,伤不起啊。
重新安装了apache之后,最近运行非常的稳定,cpu高峰期达到80%,平时稳定在10-20之间,看来是真的被我驯服了。
继续观察吧。
总的来说linode vps还是相当给力的,无论是速度还是稳定性方面!继续测试中。。。。