wordpress网站实现Memcached加速

269次阅读

共计 1598 个字符,预计需要花费 4 分钟才能阅读完成。

最近 乐趣区 访问量有点增加,但是总出现 cpu 使用过高的问题,使用了 wp-super-cache 和 redis 加速效果感觉也一般。

查看 top 命令,发现是因为 php 占用内存过高。所以就考虑使用 php 内置的加速引擎 Memcached 来进行加速。

1. 安装 memcached

首先安装 Memcached,如果你使用的是 lnmp 一键包安装的,只需要到 lnmp 解压的文件夹内,输入以下命令

1
./addons.sh

然后会打印出如下内容

1
<table class="hljs-ln"><tbody><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="1"><div class="hljs-ln-n" data-line-number="1"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="1"><span class="hljs-string">+-----------------------------------------------------------------------+</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="2"><div class="hljs-ln-n" data-line-number="2"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="2"><span class="hljs-string">|</span>            <span class="hljs-string">Addons</span> <span class="hljs-string">script</span> <span class="hljs-string">for</span> <span class="hljs-string">LNMP</span> <span class="hljs-string">V1.4,</span> <span class="hljs-string">Written</span> <span class="hljs-string">by</span> <span class="hljs-string">Licess</span>             <span class="hljs-string">|</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="3"><div class="hljs-ln-n" data-line-number="3"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="3"><span class="hljs-string">+-----------------------------------------------------------------------+</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="4"><div class="hljs-ln-n" data-line-number="4"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="4"><span class="hljs-string">|</span>    <span class="hljs-string">A</span> <span class="hljs-string">tool</span> <span class="hljs-string">to</span> <span class="hljs-string">Install</span> <span class="hljs-string">cache,optimizer,accelerator...addons</span> <span class="hljs-string">for</span> <span class="hljs-string">LNMP</span>    <span class="hljs-string">|</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="5"><div class="hljs-ln-n" data-line-number="5"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="5"><span class="hljs-string">+-----------------------------------------------------------------------+</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="6"><div class="hljs-ln-n" data-line-number="6"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="6"><span class="hljs-string">|</span>           <span class="hljs-string">For</span> <span class="hljs-string">more</span> <span class="hljs-string">information</span> <span class="hljs-string">please</span> <span class="hljs-string">visit</span> <span class="hljs-string">https://lnmp.org</span>          <span class="hljs-string">|</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="7"><div class="hljs-ln-n" data-line-number="7"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="7"><span class="hljs-string">+-----------------------------------------------------------------------+</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="8"><div class="hljs-ln-n" data-line-number="8"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="8"><span class="hljs-comment">##### cache / optimizer / accelerator #####</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="9"><div class="hljs-ln-n" data-line-number="9"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="9"><span class="hljs-attr">1:</span> <span class="hljs-string">eAccelerator</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="10"><div class="hljs-ln-n" data-line-number="10"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="10"><span class="hljs-attr">2:</span> <span class="hljs-string">XCache</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="11"><div class="hljs-ln-n" data-line-number="11"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="11"><span class="hljs-attr">3:</span> <span class="hljs-string">Memcached</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="12"><div class="hljs-ln-n" data-line-number="12"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="12"><span class="hljs-attr">4:</span> <span class="hljs-string">opcache</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="13"><div class="hljs-ln-n" data-line-number="13"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="13"><span class="hljs-attr">5:</span> <span class="hljs-string">Redis</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="14"><div class="hljs-ln-n" data-line-number="14"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="14"><span class="hljs-attr">6:</span> <span class="hljs-string">apcu</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="15"><div class="hljs-ln-n" data-line-number="15"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="15"><span class="hljs-comment">##### Image Processing #####</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="16"><div class="hljs-ln-n" data-line-number="16"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="16"><span class="hljs-attr">7:</span> <span class="hljs-string">imageMagick</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="17"><div class="hljs-ln-n" data-line-number="17"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="17"><span class="hljs-comment">##### encryption/decryption utility for PHP #####</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="18"><div class="hljs-ln-n" data-line-number="18"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="18"><span class="hljs-attr">8:</span> <span class="hljs-string">ionCube</span> <span class="hljs-string">Loader</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="19"><div class="hljs-ln-n" data-line-number="19"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="19"><span class="hljs-attr">exit:</span> <span class="hljs-string">Exit</span> <span class="hljs-string">current</span> <span class="hljs-string">script</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="20"><div class="hljs-ln-n" data-line-number="20"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="20"><span class="hljs-comment">#####################################################</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="21"><div class="hljs-ln-n" data-line-number="21"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="21"><span class="hljs-string">Enter</span> <span class="hljs-string">your</span> <span class="hljs-string">choice</span> <span class="hljs-string">(1,</span> <span class="hljs-number">2</span><span class="hljs-string">,</span> <span class="hljs-number">3</span><span class="hljs-string">,</span> <span class="hljs-number">4</span><span class="hljs-string">,</span> <span class="hljs-number">5</span><span class="hljs-string">,</span> <span class="hljs-number">6</span><span class="hljs-string">,</span> <span class="hljs-number">7</span><span class="hljs-string">,</span> <span class="hljs-number">8</span> <span class="hljs-string">or</span> <span class="hljs-string">exit):</span> <span class="hljs-number">3</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="22"><div class="hljs-ln-n" data-line-number="22"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="22"><span class="hljs-attr">Which memcached php extension do you choose:</span></td></tr></tbody></table>

这里输入 3

然后打印出让你选哪个 memcached

1
<table class="hljs-ln"><tbody><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="1"><div class="hljs-ln-n" data-line-number="1"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="1"><span class="hljs-attr">Which memcached php extension do you choose:</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="2"><div class="hljs-ln-n" data-line-number="2"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="2"><span class="hljs-string">Install</span> <span class="hljs-string">php-memcache,(Discuz</span> <span class="hljs-string">x)</span> <span class="hljs-attr">please enter:</span> <span class="hljs-number">1</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="3"><div class="hljs-ln-n" data-line-number="3"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="3"><span class="hljs-string">Install</span> <span class="hljs-string">php-memcached,</span> <span class="hljs-attr">please enter:</span> <span class="hljs-number">2</span></td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="4"><div class="hljs-ln-n" data-line-number="4"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="4"><span class="hljs-string">Enter</span> <span class="hljs-number">1</span> <span class="hljs-string">or</span> <span class="hljs-number">2</span> <span class="hljs-string">(Default</span> <span class="hljs-number">1</span><span class="hljs-string">):</span></td></tr></tbody></table>

这里因为要配合 wordprss memcached 插件使用,所以这里选择 1

然后就完成了安装。

2. 安装 wordpress memcached 插件

打开这个网址 下载 wordpress-memcached 插件,将下载好的文件解压,然后将其中的 object-cache.php 放到 wp-content 根目录(注意:不是 plugin 目录)。如此完成了插件的安装。

3. 测试 memcached 效果

使用 telnet(centos 使用 yum install telnet 安装)连接 memcached

1
telnet 127.0.0.1 11211

连接之后,输出如下

1
<table class="hljs-ln"><tbody><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="1"><div class="hljs-ln-n" data-line-number="1"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="1">Trying <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>...</td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="2"><div class="hljs-ln-n" data-line-number="2"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="2">Connected <span class="hljs-keyword">to</span> <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>.</td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="3"><div class="hljs-ln-n" data-line-number="3"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="3"><span class="hljs-keyword">Escape</span> <span class="hljs-type">character</span> <span class="hljs-keyword">is</span> <span class="hljs-string">'^]'</span></td></tr></tbody></table>

然后输入 stats, 将输出 memcached 的信息,若

STAT cmd_get 2805
STAT cmd_set 855

这两项有值,则说明 memcached 成功开启。可以试试自己的 wordpress 博客,是不是加速了。(退出 telnet 只需要输入 quit 按回车即可)。

正文完
 0