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