21andy 发表于 2013-12-20 19:41:21

wordpress 终极加速方法

本帖最后由 21andy 于 2013-12-20 19:48 编辑

既然大家这么喜欢WP,我就分享一点我的经验

不说缓存了,都说烂了,缓存不是解决的办法,缓存总是要过期的
其他的优化方法我不说了

说点特别的,性能可以提升不少
要让wordpress 快,用好内存
以下二个PHP扩展,二选一
1. apc
2. zend opcache
性能我测试过,差不多,开启它们

然后,把所有wp的PHP文件,全部直接放内存里
举例: 你的 wordpress 目录在 /var/www/wp

方法如下:
1. 复制一份 wp
cp -rf /var/www/wp /var/www/wp2

2. 删除非 php 文件
cd /var/www/wp2
find . -type f | grep -v ".php" | xargs rm -f

4. 放到内存里
cp -rf /var/www/wp2 /dev/shm

5. 可以删除原目录里的所有php文件
cd /var/www
find . -type f | grep ".php" | xargs rm -f

现在,我们已经把 wp 目录下的所有PHP文件过滤出来直接全部放内存里了
最后一步

6. 配置 nginx
location ~* \.php$ {
    root /dev/shm/wp;
    try_files $uri =404;
    fastcgi_passunix:/dev/shm/php-cgi.sock;
    include fastcgi_params;
}

7. 重启 nginx 和 php-fpm 搞定!

最新版的 wordpress 这样分开后
纯php文件一共 8.4MB,全放内存里
其他文件 4.7MB
如果部暑好了以后,不要安装插件
如果要安装,需要分离放一下






etoole 发表于 2013-12-20 19:49:22

这个是转的还是实践过的?
wp慢 主要是数据库大了 调用起来慢吧 光PHP加载 费不了多少时间

21andy 发表于 2013-12-20 19:55:21

本帖最后由 21andy 于 2013-12-20 19:58 编辑

原创
WP加载的文件太多,这样做可以解决WP的IO问题,不过WP很多代码写的太多余了,想快就自己开发
WP的数据库结构是硬伤,没办法,结构决定了要多表查询,加速数据库是另一部份内容了

21andy 发表于 2013-12-20 20:14:35

本帖最后由 21andy 于 2013-12-20 20:26 编辑

为了实贱证明, 我特意下载了一个最新干净的WP
什么插件也不装,APC关闭
打开默认首页
1. 原WP, 执行时间在0.60 - 0.67 秒间
2. 用我的办法, 页面执行时间提升到 0.15-0.20 秒间

然后,打开APC
1. 原WP, 执行时间提升到 0.29-0.38 秒间
2. 用我的办法,页面执行时间提升到 0.04-0.05 秒间

性能提升 3-4 倍

==============
我晕我傻了,不会算术
0.05 和0.30, 差6倍!!!


21andy 发表于 2013-12-20 20:15:51

加分加分,有问题可以问我

roror999 发表于 2013-12-20 20:18:27

谢谢。技术贴,我得先收藏起来

andy最近很活跃呀,多发言吧,你的经验流露出一点点,就会惠及很多人的



roror999 发表于 2013-12-20 20:29:30

21andy 发表于 2013-12-20 20:15 static/image/common/back.gif
加分加分,有问题可以问我

把你收款图到展示区贴一下,大家保证大把T币送来

fantasy163 发表于 2013-12-20 21:48:46

看了几遍,还是没看懂。。

jay1740 发表于 2013-12-20 22:40:06

放在内存里?
VPS重启后会丢失文件吗?

hardrock 发表于 2013-12-20 22:42:20

本帖最后由 hardrock 于 2013-12-20 22:48 编辑

apc=APC Object Cache Backend?
Compatible up to: 3.5.2
3.6 ,3.7 ,3.8 兼容吗?

第二个,wp上查不到啊


用在vps上,不能主机空间,apache不行,只能nginx



21andy 发表于 2013-12-20 22:47:23

fantasy163 发表于 2013-12-20 21:48 static/image/common/back.gif
看了几遍,还是没看懂。。

其实很简单,就是把/dev/shm当成硬盘的一个目录用啊,只不过把WP放里面
win的话,也可以装ramdisk来实现


21andy 发表于 2013-12-20 22:50:03

jay1740 发表于 2013-12-20 22:40 static/image/common/back.gif
放在内存里?
VPS重启后会丢失文件吗?

重启当然丢了
先把 /dev/shm/wp 备份一份,比如放在 /var/backup/wp
为了保证开机自动加载到内存目录,像这样弄

加这句到 /etc/rc.local 末尾
cp -rf /var/backup/wp /dev/shm
这样就OK了


21andy 发表于 2013-12-20 22:52:34

hardrock 发表于 2013-12-20 22:42 static/image/common/back.gif
apc=APC Object Cache Backend?
Compatible up to: 3.5.2
3.6 ,3.7 ,3.8 兼容吗?


apc 是缓存php解析后的代码用以加速PHP的

http://www.php.net/manual/en/book.apc.php

linux 安装很简单
比如 centos
yum -y install php-pecl-apc
然后编辑配置文件开启就可以了
/etc/php.d/apc.ini


hardrock 发表于 2013-12-20 23:24:08

我还以为是wp plugins , 原来不是

jay1740 发表于 2013-12-20 23:26:37

本帖最后由 jay1740 于 2013-12-20 23:31 编辑

21andy 发表于 2013-12-20 22:50 static/image/common/back.gif
重启当然丢了
先把 /dev/shm/wp 备份一份,比如放在 /var/backup/wp
为了保证开机自动加载到内存目录,像 ...
谢谢大牛分享!!!!!!!!!!!!!


newbie99 发表于 2013-12-20 23:48:04

谢谢分享!等以后开站后再用用

will86 发表于 2013-12-21 08:00:01

已经记录下来,做站的时候试一下

风吹不动 发表于 2013-12-21 08:02:47

typecho出新版了,速度杠杠滴

海淘饭 发表于 2013-12-21 08:04:38

高级加速方法 还没有vps留着以后待用

luguokankan 发表于 2013-12-21 13:14:36

lz可以试试php5.5 自带optimizer+
我看apc的维护者(国人)也说比apc更快.


熟能生巧哇 发表于 2013-12-21 15:54:49

以前看过类似的优化文章 是把PHP的SESSION放到linux的内存中, 楼主可以想到把PHP文件也放到内存中,确实是一个举一反三的好例子额, 我就想不到这一点额,呵呵。

18楼提到的 typecho 这个貌似不错, 有时间去试一下

现在有个这个 http://www.cnwebmasters.com/thread-112762-1-1.html 貌似也不错额

都可以提高速度。

:victory:

paradeisos 发表于 2013-12-21 16:02:59

typecho 新版我试用半个钟头就找到一个bug了,不过懒得去报告,反正我都是用wp的,下次出新版再试用下,没问题了再放个站玩玩。

21andy 发表于 2013-12-21 16:52:41

本帖最后由 21andy 于 2013-12-21 16:53 编辑

熟能生巧哇 发表于 2013-12-21 15:54 static/image/common/back.gif
以前看过类似的优化文章 是把PHP的SESSION放到linux的内存中, 楼主可以想到把PHP文件也放到内存中,确实是 ...
我说的办法效果是目前最明显的,提速必不可少的,HHVM性能有所提升,可以和我说的办法结合,达到极速

为了实践证明,刚刚测试了一下

HHVM还是不能解决I/O问题,直接给数据
纯净最新WP,什么也不装,打开首页

一,wp 放在硬盘
apc 开启的情况下:
php-fpm 0.2X 秒
hhvm   0.1x 秒

二,使用我的办法,wp 放在内存
apc 开启的情况下:
php-fpm 0.04 - 0.06 秒
hhvm 0.025 - 0.06 秒

结论:只用HHVM不把WP放内存,还比我的办法慢2至3倍

HHVM + APC或zend opcache + 我的办法,是最快的
不过HHVM比较麻烦,需要在wp目录下面运行
hhvm --mode daemon -vServer.Type=fastcgi -vServer.Port=9000


21andy 发表于 2013-12-21 17:07:43

本帖最后由 21andy 于 2013-12-21 17:10 编辑

luguokankan 发表于 2013-12-21 13:14 static/image/common/back.gif
lz可以试试php5.5 自带optimizer+
我看apc的维护者(国人)也说比apc更快.
那就是我顶楼所说的zend opcache
实际测试了和APC比提升不大
喜欢哪个就用哪个,很容易切换,呵呵


wangkaipsp 发表于 2013-12-21 19:43:09

在VPS上试试效果看。            

jx007888 发表于 2013-12-21 20:08:25

额,不太懂啊.......看着好像很好的样子

lowrie 发表于 2013-12-21 20:29:53




用你的方法安装 zend opcache 网站出站 502 Bad Gateway

nginx


但是探针能打开


zch0071 发表于 2013-12-22 17:34:24

21andy 发表于 2013-12-21 17:07 static/image/common/back.gif
那就是我顶楼所说的zend opcache
实际测试了和APC比提升不大
喜欢哪个就用哪个,很容易切换,呵呵


apache能用这个么?nginx用的话,wordpress的静态化规则如何写?

RomeoPreble 发表于 2013-12-22 18:12:19

好复杂的步骤,搬家的时候也够烦的吧

jiaruseng 发表于 2013-12-22 18:17:01

好帖子, 学习了

另外 想请问原理是什么呢?

lomboz 发表于 2013-12-22 18:33:47

请问是任何的虚拟主机都能用吗,比如hostgator的

nff 发表于 2013-12-24 20:32:29




感谢楼主分享, 我想问下,不用wordpress, 域名目录下的单php文件或者文件夹,如何转移到内存?

21andy 发表于 2013-12-24 21:24:10

lowrie 发表于 2013-12-21 20:29 static/image/common/back.gif
用你的方法安装 zend opcache 网站出站 502 Bad Gateway

nginx


502是因为nginx的php部份没配置好
给个最简单的办法,如果觉得配置麻烦,直接整个WP放内存
手动清理掉WP里所有无用的文件,模板,插件什么的
改server {}里的root就行了


21andy 发表于 2013-12-24 21:25:40

zch0071 发表于 2013-12-22 17:34 static/image/common/back.gif
apache能用这个么?nginx用的话,wordpress的静态化规则如何写?

apache也一样的,document_root改到内存里,好几年不用APACHE了,rewrite不变啊

21andy 发表于 2013-12-24 21:26:08

lomboz 发表于 2013-12-22 18:33 static/image/common/back.gif
请问是任何的虚拟主机都能用吗,比如hostgator的

虚拟主机不能用,要有ROOT权限

21andy 发表于 2013-12-24 21:27:33

nff 发表于 2013-12-24 20:32 static/image/common/back.gif
感谢楼主分享, 我想问下,不用wordpress, 域名目录下的单php文件或者文件夹,如何转移到内存?
...
用点技巧就可以了
location {} 匹配那个文件
然后 proxy_pass 到127.0.0.1某个端口
然后 这个端口的root为 /dev/shm里的某个目录
然后,把你那个文件放 /dev/shm里的某个目录里
呵呵



nff 发表于 2013-12-25 08:34:33

21andy 发表于 2013-12-24 21:27 static/image/common/back.gif
用点技巧就可以了
location {} 匹配那个文件
然后 proxy_pass 到127.0.0.1某个端口


感谢楼主热心, 我想试试你的办法,但是技术白一个,能详细点或者举个例子吗? 谢谢啊

caaol 发表于 2014-1-2 09:30:50

请问wordpress插件如何分开放?
页: [1]
查看完整版本: wordpress 终极加速方法