web系统性能方案全面总结

原创
2013/04/21 12:18
阅读数 5.1K

全面列举下web系统中前后台用到的各种性能提升方案: 尤其适合PHP系统

只是列举了下, 后续慢慢来分开写吧, 很多东西我们已经用到了.

一. 服务器端: 

数据库层:

1. 数据库性能优化:(设计方案,索引,查询缓存,反范式化设计)
2. 使用NoSQL数据库(mongoDB, 这个OSC多的是)
 
逻辑处理层:
3. web压力测试(吞吐率, ab或者siege工具)
4. 动态内容缓存(文件缓存,APC缓存,扩展k/v缓存)
5. 静态化动态内容
6. 分布式缓存(memcache, redis)
7. opcode编译缓存(APC, xcache)
8. 浏览器缓存(Expire header)
 
宿主环境层(web服务器,Apache):
 
9. web服务器缓存(mod_disk_cache, mod_file_cache:文件描述符缓存)
10. 传输加速(apache:mod_deflate启用, php自主gzip压缩)
11. web组件分离 (均衡web负载, 最大化浏览器多线程下载)
12. xdebug瓶颈分析

二.前台:
 
1. Ajax
优化方案:
2. 减少http请求(多图合一, 合并静态组件, 图片延时加载)
3. 使用内容分发网络(和web组建分离类似, 激发浏览器并发, 分担web服务器负载)
4. 启动浏览器缓存(添加Expire头信息)
5. 压缩静态组件(等同服务器压缩传输)
6. 将css放在页面顶部
7. 将js放在页面底部
8. 避免css表达式
9. 外部引用js和css
10.减少DNS查询(DNS缓存,TTL设置, Keep-alive, 使用更少的域名, 同域名内静态文件加载使用/代替域名)
11.简化压缩静态js和css
12.避免重定向(这里指静态资源的获取过程)
13.去除多余的js
14.配置ETags
15.缓存ajax结果
16.DNS预取(<link rel="dns-prefetch" href="//预取域名">)
17.资源预取(内联img标签, <link rel="prefetch" href="图片地址">)
18.渐进的JPEG(导出jpeg图片时勾选对应选项)


三. 负载均衡:
1. web负载均衡(URL重定向, DNS解析, 代理服务器)

2. 内容分发与同步(组件分离限制突破)
3. 分布式文件系统
3. 数据库负载均衡(读写分离,垂直分区,水平分区)
4. 分布式计算(Gearman)

展开阅读全文
打赏
4
62 收藏
分享
加载中
狮子的魂博主

引用来自“王瑞平”的评论

30秒

使用正确,可以确保页面返回和js没有任何关系. 一个页面返回需要10s就已经够垃圾了, 还30s. 页面的返回时间和太多因素有关了: 带宽, 服务器相应, 服务器负载状态, 前台代码...
2013/05/02 13:03
回复
举报
狮子的魂博主

引用来自“王瑞平”的评论

没有实践啊,JS和CSS在高负载环境下都不能存在的,一个简单的JS可以让你的页面返回从3秒上升到3秒。缓存对性能几乎没有影响。数据库关键在分区分表存储和索引,另外sql返回结果不能太多,这些就够了。

我该如何回答呢??

没与css和js那还谈什么前台开发???

没有缓存, 哪来的吞吐量增长?

数据库的关键在于设计, (索引和分区只是设计优化的一小部分)

...
2013/05/02 12:52
回复
举报
30秒
2013/05/02 11:56
回复
举报
没有实践啊,JS和CSS在高负载环境下都不能存在的,一个简单的JS可以让你的页面返回从3秒上升到3秒。缓存对性能几乎没有影响。数据库关键在分区分表存储和索引,另外sql返回结果不能太多,这些就够了。
2013/05/02 11:55
回复
举报
学长,第一次在osc看到熟人了!
2013/04/23 09:09
回复
举报
mark
2013/04/21 15:22
回复
举报
很全面
2013/04/21 12:57
回复
举报
更多评论
打赏
7 评论
62 收藏
4
分享
返回顶部
顶部