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
如果部暑好了以后,不要安装插件
如果要安装,需要分离放一下
这个是转的还是实践过的?
wp慢 主要是数据库大了 调用起来慢吧 光PHP加载 费不了多少时间
本帖最后由 21andy 于 2013-12-20 19:58 编辑
原创
WP加载的文件太多,这样做可以解决WP的IO问题,不过WP很多代码写的太多余了,想快就自己开发
WP的数据库结构是硬伤,没办法,结构决定了要多表查询,加速数据库是另一部份内容了
本帖最后由 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倍!!!
加分加分,有问题可以问我
谢谢。技术贴,我得先收藏起来
andy最近很活跃呀,多发言吧,你的经验流露出一点点,就会惠及很多人的
21andy 发表于 2013-12-20 20:15 static/image/common/back.gif
加分加分,有问题可以问我
把你收款图到展示区贴一下,大家保证大把T币送来
看了几遍,还是没看懂。。
放在内存里?
VPS重启后会丢失文件吗?
本帖最后由 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
fantasy163 发表于 2013-12-20 21:48 static/image/common/back.gif
看了几遍,还是没看懂。。
其实很简单,就是把/dev/shm当成硬盘的一个目录用啊,只不过把WP放里面
win的话,也可以装ramdisk来实现
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了
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
我还以为是wp plugins , 原来不是
本帖最后由 jay1740 于 2013-12-20 23:31 编辑
21andy 发表于 2013-12-20 22:50 static/image/common/back.gif
重启当然丢了
先把 /dev/shm/wp 备份一份,比如放在 /var/backup/wp
为了保证开机自动加载到内存目录,像 ...
谢谢大牛分享!!!!!!!!!!!!!
谢谢分享!等以后开站后再用用
已经记录下来,做站的时候试一下
typecho出新版了,速度杠杠滴
高级加速方法 还没有vps留着以后待用
lz可以试试php5.5 自带optimizer+
我看apc的维护者(国人)也说比apc更快.
以前看过类似的优化文章 是把PHP的SESSION放到linux的内存中, 楼主可以想到把PHP文件也放到内存中,确实是一个举一反三的好例子额, 我就想不到这一点额,呵呵。
18楼提到的 typecho 这个貌似不错, 有时间去试一下
现在有个这个 http://www.cnwebmasters.com/thread-112762-1-1.html 貌似也不错额
都可以提高速度。
:victory:
typecho 新版我试用半个钟头就找到一个bug了,不过懒得去报告,反正我都是用wp的,下次出新版再试用下,没问题了再放个站玩玩。
本帖最后由 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:10 编辑
luguokankan 发表于 2013-12-21 13:14 static/image/common/back.gif
lz可以试试php5.5 自带optimizer+
我看apc的维护者(国人)也说比apc更快.
那就是我顶楼所说的zend opcache
实际测试了和APC比提升不大
喜欢哪个就用哪个,很容易切换,呵呵
在VPS上试试效果看。
额,不太懂啊.......看着好像很好的样子
用你的方法安装 zend opcache 网站出站 502 Bad Gateway
nginx
但是探针能打开
21andy 发表于 2013-12-21 17:07 static/image/common/back.gif
那就是我顶楼所说的zend opcache
实际测试了和APC比提升不大
喜欢哪个就用哪个,很容易切换,呵呵
apache能用这个么?nginx用的话,wordpress的静态化规则如何写?
好复杂的步骤,搬家的时候也够烦的吧
好帖子, 学习了
另外 想请问原理是什么呢?
请问是任何的虚拟主机都能用吗,比如hostgator的
感谢楼主分享, 我想问下,不用wordpress, 域名目录下的单php文件或者文件夹,如何转移到内存?
lowrie 发表于 2013-12-21 20:29 static/image/common/back.gif
用你的方法安装 zend opcache 网站出站 502 Bad Gateway
nginx
502是因为nginx的php部份没配置好
给个最简单的办法,如果觉得配置麻烦,直接整个WP放内存
手动清理掉WP里所有无用的文件,模板,插件什么的
改server {}里的root就行了
zch0071 发表于 2013-12-22 17:34 static/image/common/back.gif
apache能用这个么?nginx用的话,wordpress的静态化规则如何写?
apache也一样的,document_root改到内存里,好几年不用APACHE了,rewrite不变啊
lomboz 发表于 2013-12-22 18:33 static/image/common/back.gif
请问是任何的虚拟主机都能用吗,比如hostgator的
虚拟主机不能用,要有ROOT权限
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里的某个目录里
呵呵
21andy 发表于 2013-12-24 21:27 static/image/common/back.gif
用点技巧就可以了
location {} 匹配那个文件
然后 proxy_pass 到127.0.0.1某个端口
感谢楼主热心, 我想试试你的办法,但是技术白一个,能详细点或者举个例子吗? 谢谢啊
请问wordpress插件如何分开放?
页:
[1]