WordPress安装Memcached对象缓存插件以加速博客

时间:2020-01-09 10:42:09  来源:igfitidea点击:

如何在UNIX/Linux下安装memcached缓存插件,以通过在RAM中缓存数据和对象以减少必须读取外部数据源的次数来加快动态数据库驱动的wordpress博客的速度?
仅当基于wordpress的博客获得大量点击时,才需要安装memcached缓存服务器。
您需要在服务器上安装以下软件:

  • " memcached服务器":这是一个缓存守护程序,专门为动态Web应用程序设计,可通过将对象存储在内存中来减少数据库负载。
  • php-pecl-memcache:PHP扩展,可通过方便的OO和过程接口与Memcached缓存守护进程一起使用。 Memcache也可以用作PHP会话处理程序。
  • " WordPress memcached对象缓存插件":该插件为WordPress对象缓存提供了持久的后端。

我们的样品设置

Internet 
    \
      \
  ISP Router             +--------+
     //          +-------| mysql1 | 10.10.1.1
     //          |       +--------+
     //          |
  +-----+        |       +------+
  | lb0 |--------+-------| www1 |  10.10.1.2
  +-----+        |       +------+
vip:192.54.1.1   |
                 |       +------+
                 |-------| www2 | 10.10.1.3
                 |       +------+     
                 | 
                 |       +------+
  +-----+        |-------| www3 | 10.10.1.4
  | lb1 |--------+       +------+
  +-----+        |
                 |       +-----------+
                 |-------| memcache1 |  10.10.1.5
                         +-----------+

其中:

  • lb0:这是一个反向代理服务器,安装在UNIX/Linux上,位于www1,www2,www3上托管的Apache Web服务器的前面。您可以将Nginx或者任何其他反向代理服务器与由Keepalived管理的虚拟IP(连接冗余)一起使用。这是主负载均衡器。
  • lb1:这是具有nginx并保持有效状态的备用负载平衡器。
  • www1,www2,www3:带有php的Apache Web服务器。您需要在所有三台服务器上安装php-pecl-memcache和Memcached对象缓存wordpress插件。
  • mysql1:这是带有RAID10和快速scsi/sas磁盘的MySQL服务器。该服务器处于负载不足状态,您将通过在RAM中缓存查询来减少负载。
  • memcache1:此服务器运行带有大量RAM的memcached,它将缓存mysql1查询以通过将对象存储在内存中来减少数据库负载。您需要在memcahce1上安装memcached服务器。您可以添加memcach2以实现冗余。

以下所有说明均在RHEL和CentOS 5.x 64位服务器上进行了测试。

安装Memcached服务器

在memache1服务器上执行以下命令。
首先,您需要打开EPEL仓库:

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

现在,使用yum命令安装memcached,执行:

# yum install memcached

配置memcached

您需要编辑/etc/sysconfig/memcached文件,执行:

# vi /etc/sysconfig/memcached

编辑如下:

PORT="11211"
USER="memcached"
MAXCONN="2048"
CACHESIZE="4096"       
OPTIONS="-l 10.10.1.5"

其中:

  • PORT:监听TCP端口11211,默认为端口11211。
  • USER:以memcached用户身份运行memcached服务器。
  • MAXCONN:最多使用2048个同时连接;默认值为1024。
  • CACHESIZE:最多使用4096 MB(4GB)内存来存储对象;默认值为64 MB。
  • OPTIONS = -1 10.10.1.5:收听10.10.1.5。这是要考虑的重要选项,因为没有其他方法可以确保安装安全。建议绑定到内部或者防火墙网络接口。在此示例中,只能使用LAN访问IP地址10.10.1.5,该地址位于受防火墙保护的主机之后。

根据您的设置和要求进行更改。
保存并关闭文件。

开启服务

执行以下chkconfig命令以打开memcached服务,执行:

# /sbin/chkconfig memcached on
## command to START the server ##
# /sbin/service memcached start
## command to STOP the server ##
# /sbin/service memcached stop
## command to RESTART the server ##
# /sbin/service memcached restart

安装php-pecl-memcache

在www1,www2和www3 Apache服务器上执行以下命令:

# yum -y install php-pecl-memcache
# /sbin/service httpd restart

安装Memcached对象缓存插件

在www1,www2和www3 Apache服务器上执行以下命令(如果您使用的是某种群集感知文件系统,例如GFS2或者OCFS2,则不只是在任何一个apache Web服务器节点上执行该命令):访问此URL并获取插件,执行:

$ cd /tmp/
$ wget http://downloads.wordpress.org/plugin/memcached.2.0.zip
$ unzip memcached.2.0.zip

编辑object-cache.php,执行:

$ vi object-cache.php

编辑memcahe服务器和端口连接信息:

$buckets = array('10.10.1.5:11211');

保存并关闭文件。
最后,将object-cache.php复制到您的wp-content目录中。
在我们的示例/var/www/html/wp-content /目录中:

$ cp object-cache.php /var/www/html/wp-content/

如何验证它是否正常工作?

执行以下命令以显示内存缓存模板(请注意,以下输出是从仅具有512MB缓存的小型内存缓存服务器获取的,仅用于演示目的):

# memcached-tool 10.10.1.5:11211 display

输出示例:

#  Item_Size  Max_age   Pages   Count   Full?  Evicted Evict_Time OOM
  1      96B     38302s       1      42      no        0        0    0
  2     120B     37571s       1       4      no        0        0    0
  3     152B       335s       1     232      no        0        0    0
  4     192B     37763s       1      40      no        0        0    0
  5     240B     37804s       1      36      no        0        0    0
  6     304B     37595s       1      86      no        0        0    0
  7     384B       829s       4   10401      no        0        0    0
  8     480B       228s       1     972      no        0        0    0
  9     600B       106s       1     387      no        0        0    0
10     752B     38298s       1     288      no        0        0    0
11     944B       404s       1     143      no        0        0    0
12     1.2K     38319s       1     258      no        0        0    0
13     1.4K     12739s       1     176      no        0        0    0
14     1.8K     38322s       1     230      no        0        0    0
15     2.3K      1500s       2     491      no        0        0    0
16     2.8K      1500s       2     648      no        0        0    0
17     3.5K       828s       3     600      no        0        0    0
18     4.4K     37660s       2     322      no        0        0    0
19     5.5K     38035s       1     171      no        0        0    0
20     6.9K     38458s       1     102      no        0        0    0
21     8.7K     39002s       1      39      no        0        0    0
22    10.8K     42068s       1      35      no        0        0    0
23    13.6K     24184s       1      15      no        0        0    0
24    16.9K     41626s       1      11      no        0        0    0
25    21.2K     43426s       1       1      no        0        0    0
26    26.5K     43392s       1       1      no        0        0    0
37   308.5K      1493s       1       3     yes        0        0    0

要显示常规统计信息,请执行:

# memcached-tool 10.10.1.5:11211 stats

输出示例:

#10.10.1.5:11211   Field       Value
         accepting_conns           1
               auth_cmds           0
             auth_errors           0
                   bytes    14945401
              bytes_read  1320167573
           bytes_written  3180772729
              cas_badval           0
                cas_hits           0
              cas_misses           0
               cmd_flush           0
                 cmd_get     1280549
                 cmd_set     1262345
             conn_yields           0
   connection_structures          73
        curr_connections          72
              curr_items       15724
               decr_hits           0
             decr_misses           0
             delete_hits       11296
           delete_misses       24284
               evictions           0
                get_hits     1156788
              get_misses      123761
               incr_hits           0
             incr_misses           0
          limit_maxbytes   536870912
     listen_disabled_num           0
                     pid       42690
            pointer_size          64
               reclaimed           2
           rusage_system   51.550163
             rusage_user   20.861828
                 threads           4
                    time  1284368953
       total_connections         558
             total_items       75121
                  uptime       43527
                 version       1.4.5

要转储键和值,请执行:

# memcached-tool 10.10.1.5:11211 dump | less