烟台SEO技术博客,记录每天的心得体会,最后目标是掌握SEO是什么,科学做SEO,让SEO服务各行业!QQ:393652278!
  • Memcached安装使用分享

    2012-05-17

    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)安装、配置的最新博文。

    作者:admin | 分类目录:好东西分享 | 标签:
  • [游戏攻略]【切水果高分方法】也许您知道!只为分享!

    2012-05-17

    【切水果高分方法】
    iOS切水果选择经典模式,开始游戏后点击左下角的暂停键,再按住屏幕中间的重新开始键(就是那个弯箭头)不放,然后锁屏,再解锁,之后按屏幕中间的继续键(类似播放键)继续游戏,就会有石榴从边上飞出,如此反复,即可刷高分。而且越到后面石榴越多,想得多少分都行!
    只为与大家分享!
    一个哥们随便就几千分!见图!

    作者:admin | 分类目录:好东西分享 | 标签:
  • 实现 WordPress 分页导航,代码实现非插件

    2012-05-05

    距上一次真正折腾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,大功造成!又可以干掉一个已为数不多的插件咯!

    作者:admin | 分类目录:好东西分享 | 标签:
  • 火车头wordpress接口程序,支持3.1 3.2 3.3 免登陆(出售)

    2012-04-05

    火车头wordpress接口程序,支持3.1 3.2 3.3 免登陆

    支持最新版

    支持cookie发布

    需要的联系我 50一个

    火车头接口程序QQ:3936五22七八

    功能介绍:
    接口完美实现免登录发布Wordpress主题功能
    适用于Wordpress 3.1+以上版本,但作者仅在最新版测试!

     

  • 继续总结一下linode VPS

    2012-03-12

    上次linode的CPU由于apache没有正常运行,导致cpu每天都会达到120%,每天都会自动当机,对囧网影响真是不小,收录少了好几千,外链停滞不前,伤不起啊。

    重新安装了apache之后,最近运行非常的稳定,cpu高峰期达到80%,平时稳定在10-20之间,看来是真的被我驯服了。

    继续观察吧。

    总的来说linode vps还是相当给力的,无论是速度还是稳定性方面!继续测试中。。。。

     

    作者:admin | 分类目录:好东西分享 | 标签: