大猫の意淫筆記

Archive for codex

性能优化及坑爹的 W3 Total Cache

Friday, November 19th, 2010

(miao)里经常讨论性能优化的问题, 通俗点就是网页打开速度

比较影响速度的因素有:

1. 后台(PHP+MySQL): 根据请求,运行语句,操作数据库,生成页面返回

效率低的或查询量大会让cpu飙升

2. 线路: Ping 命令大家都会用,这时间就代表一个来回

(Ping偶尔会Timeout超时,也就是所谓的丢包,常规原因有2种:真丢,假丢

例如有些服务器设置侦测到集中密集的ICMP包会选择性的丢弃掉

10次里丢1次完全不同于10次访问有一次打不开,网页是走 TCP/IP 需要3次握手

Ping 相对重要的参数就是时间了,国外一般200-300ms左右,国内一般100内)

3. 前台: 闻名的 yslow 34 rules, 做了这些简单的调整, 可以明显的提速25%-50%

只需要装上Firefox,再继续搜 Firebug插件和 ySlow 插件
打开页面,按下 [F12] ,点 [yslow] 点 [run test] 即可分析当前页面

搞优化和搞SEO一样,没有绝对,只有相对的平衡,为了可维护性以及可用性牺牲的性能是比较值得的,而花大力气收效甚微的可往后靠

进入正题, 针对前后台和线路的解决方案

线路解决方案: 把服务器放在国内是最快的,缺点如下

1.备案(我是良民,备案除了浪费时间,可以克服)
2.安全(源码被盗,甚至密码泄露,网站被埋后门等时有耳闻
蝙蝠侠说过,能力越大责任越大
任何root只需要10个字母的系统自带命令就能监听未加密的数据包例如ftp,对,密码也会直接显示
请各位同学尽量用加密连接代替,例如sftp scp https之类的)
3. 你懂得,多说无益,小时候我数据蒸发过无数回,皆因同机房其他不良站连带

国外空间速度还能接受,价格还便宜,跟对管理员什么的,有肉吃!
唯一的缺点就是一旦发生啥大事,就会假装线路有问题,抽抽,概率较低每年几次
例如你正在看俺的这个帖子,他就位于达拉斯机房,不快,也不慢,图个稳定

后台解决方案: 静态化

也就是所谓的缓存,把数据库查询和PHP生成的页面生成html静态页面,一劳永逸
wordpress 里有缓存插件专门搞这些的 (WP Super Cache 安装与设置方法)

前台解决方案: 按照 yslow 给的建议走一遍

前文有提到

根据我的经验, 随便搞搞并效果好的是 http 请求数, 过期时间, 文件体积, 页面DOM节点太复杂, 脚本一大堆 这几个

http 请求数(非常明显):

例如一个页面里有两张图片三个样式四个脚本,用户打开的时候就会产生1+2+3+4=10个请求
具体不分析,在文件比较小的情况下,例如表情头像什么的,请求5张10K的图片比请求一张50K的图片要慢的多
这种可以用 CSS Sprite 雪碧技术去选择性优化(切勿盲目雪碧,偶尔也要来点可乐杀杀)
多个样式表或脚本文件,方便的话,人肉复制粘贴合并,注意先后顺序,先加载的放前面

过期时间(非常明显):

管理员一般会给apache安装mod_expires,按照文件类型设置过期时间,例如(miao)设置了图片为一年过期
一旦这张图片存在于电脑的缓存里,电脑查询到还没过期,就直接取本地,跳过了请求也跳过了线路问题

浏览器缓一般只有几十MB,有新内容放不下会按照时间顺序删掉比较老的(即使没过期)
那会儿还专门做了个缓存生成器(擦车)测试过

唯一的缺点就是同名文件服务器更新了,本地电脑不鸟他, 可以用时间戳搞定
Google 新出的 mod_pagespeed 使用换文件名形式来规避这个问题

文件体积(非常明显):

下过毛片的同学都知道,mkv和rmvb的区别我就不多说了
解决方案就是搞个 gzip 压缩,一般 100k 的文本文件例如样式和脚本能压缩到30-50K
服务器在压缩后会在某个目录先留着,第二次请求的时候就不用再压缩了,所以CPU占用可以忽略
例如(miao)默认会按照文件类型压缩: 脚本 样式 网页什么的

脚本一大堆+页面太复杂(明显)

经常遇到有同学装了不少插件,插件调用了很多脚本文件
蹭有一个页面同时加载了YUI Jquery Prototype AE...(AE是什么框架?哈哈)
解决方案就是... 自己选一个炫和快的平衡点

好吧,这么多实现起来有难度啊

非技术流的同学可咋办好?

不用怕! WordPress有个插件叫 W3 Total Cache
他直接把前后台都优化了
出发点是好,估计技术还不行
只要装了 W3 Total Cache ,肯定比不装还要卡

奶奶的,遇到好几个站了,用的就是W3 Total Cache
CPU占用异常高!!!

搜了下也有一堆测评
Use WP Super Cache for WordPress speed, not W3 Total Cache (评论闪闪发光,很多技术细节)
WordPress load test part 2 - amendment
WordPress Cache Plugin Benchmarks

W3 Total Cache versus WP Super Cache

综上所述:
不要用 W3 Total Cache (方向对,但做的很烂)
用 WP Super Cache (WP Super Cache 安装与设置方法)

改HOSTS文件更换网址对应IP

Sunday, November 14th, 2010

嗷呜?豆瓣(www.douban.com)怎么打开是庙的内容?

经常遇到的情况是,我有一个网站,例如叫www.douban.com,他在正常运行
但是我需要测试下一个新的空间,如果直接更改www.douban.com的A Record(也叫IP指向)到新的服务器
这会让所有用户都转向测试用的服务器,这样就不好玩了

既要用域名测试,又不中断同样域名用户正常访问
今天要介绍的妹子叫做HOSTS文件

先介绍几个概念
域名 www.douban.com (不介绍,你懂的)
DNS 主 b.ns.douban.com 辅 d.ns.douban.com (在你输入域名回车后,电脑会去这个地址查域名对应的IP)
IP 211.147.4.49 (这是DNS服务器告诉电脑域名所对应的IP)
IP地址对应一台装了网站内容的服务器,电脑再去联系那个IP说我要www.douban.com对应的网页
IP对应的服务器就把豆瓣给你看了

这个所谓的HOSTS文件呢,他的用处就是你输入网址回车后,直接告诉你对应的IP
跳过了DNS环节,浏览器就傻逼逼的去向那个IP要文件了

他的位置呢,在咱自己的电脑里,如下

windows在 C:\Windows\System32\drivers\etc\HOSTS

linux 在 /etc/hosts

可以直接双击用记事本或其他你喜欢的编辑器打开

注意: win7用户需要更改下权限(方法在最后补充) linux用户需要sudo一下 不然没法保存

语法简单到爆

写一串IP然后空格然后网址就可以了
#井号是注释

保存之后,浏览器关掉再开, www.douban.com 对应的IP就是你打在HOSTS文件里的那个了,即使ping一下也是新IP
只是改了HOSTS的机器里,不影响其他用户

这样子,换空间的时候就能先改HOSTS调试完毕后再换DNS服务器上的IP指向,实现无缝过渡

最后再补充win7的权限设置:

在HOSTS文件上右键,属性,接下去如下图

有啥问题请留言,俺一一答复

------update--------------win7更安全的使用HOSTS-------

Win7下按照我这种方法,就是把HOSTS文件弄成谁都可以随便上的文件,方便了自己也方便了恶意程序
同理777的危害

下面两种就类似linux的sudo方式,就是需要的时候赋予打开文件的程序以管理员权限,平时各回各家各找各妈

啊哈 ,maduoyuan says: 以管理员身份运行Notepad++ 或其他编辑器

zgy5729 says: Win7 下面可以开一个管理员权限的CMD,然后导航到hosts所在的地方,notepad hosts一下就可以,这样即安全也不会出现修改完以后忘了改回去被病毒传改了HOSTS

ubuntu 主题 Elementary Art

Thursday, November 11th, 2010

点击上图看大图

选系统和选妹子一样, 一定要长得靓
有很多同学在星巴克搅着飘香咖啡摊开MBP启动WINXP并且装着苹果主题也都是冲着这点吧想必

第一次进 ubuntu 官方主题站的时候……传送门 实在是……丑的可以

所以一直用系统默认的 new wave , 直到有一天蛋疼看到了Elementary Art 这款主题,初恋的感觉呐,小心肝儿扑通扑通跳

安装方法:

$ sudo add-apt-repository ppa:elementaryart/ppa

$ sudo add-apt-repository ppa:am-monkeyd/nautilus-elementary-ppa

$ sudo apt-get update

$ sudo apt-get install elementary-theme elementary-icon-theme elementary-wallpapers

$ sudo apt-get upgrade

然后桌面右键最后一个啥的恩恩

PS: 下面那个叫 Docky 在软件中心直接搜索就能拿到
1. Gmail 提醒(支持Google Apps 邮局),左键浏览器打开右键查看邮件列表
2. 天气预报
3. 简洁直观,个人不喜欢pin一大堆图标