国庆k书了...
国庆感冒
悲剧
只能窝在宿舍k书了
然后就是悠哉悠哉...
书也没仔细k
-----------------------------------------------------------------------------------------------------------------------------------
《构建高新能web站点》
作者以大量的实战经验为基础,对web性能优化技术进行很广的探讨,并提供了大量的测试数据
- 数据的网络传输
讲的是web站点呢,当然要通过网络,刚入手介绍的就是网络模型,讲的很通俗,重点对带宽进行了介绍。阅读完可以对网络传输有个形而上的认识,如果想要更进一步的认识,需要阅读更专业的网络上书籍。
- 服务器并发处理能力
吞吐率
鸭梨测试
并发用户数,注意这个并发请求数是不同的概念,因为一个用户可以同时发出多个请求
Apache ab
ab -v
ab -n 1000 -c 10 http://localhost/test.html
进程
轻量级进程 Linux2.0支持
线程 pthread linuxthreads glibc libc
进程调度器 top命令使用
查看运行队列: cat /proc/loadavg
Linux的top w等
持久连接:长连接
另外一块重要的内容是I/O模型:
pio dma(直接内存访问)
同步阻塞io
同步非阻塞io
多路io(这个跟Java中的nio类似)
在下面是Unix或Linux得网络io处理了,需要进一步阅读《Unix网络编程》
省略掉这些简介.....看不太懂
异步i/o的介绍不太多,而异步io是实现高性能web服务器的方向,本书未对此详细介绍
然后是服务器的并发策略(窃以为本章内容组织的有点乱,不过这些内容的关系本就错综复杂,难以理清)
1进程 1连接 非阻塞io
1线程 1连接 非阻塞io
1进程 多连接 非阻塞io
一个线程多个连接 异步io(这个应该是性能最高的) 不过目前貌似没有完善的解决方案,本书只是简单一提
java7会提供aio,期待...
- 动态内容缓存
缓存
Smarty缓存 http://zh.wikipedia.org/zh-cn/Smarty
缓存持久化 查找
过期检查
作者抛弃了smarty缓存,自己实现了一个缓存策略,因为作者需要的功能很简单,而smarty的功能更多,但是拖累了它的性能。作者通过自己的缓存实现,取得了更大的吞吐率
....
缓存是很重要的东西,再下面的东西只是翻了一下,不了解,需要抽时间好好看看缓存的内容(mark)
- 动态脚本加速
有待学习
------
- 浏览器缓存
将数据缓存在用户方
- 服务器缓存
url 映射 反向代理
缓存静态内容 动态内容
- 反向代理缓存
反向代理
nginx squid varnish
有待学习
...
- web组件分离
使用不同域名
然后探讨了如何对动态内容和静态内容进行分离..
有待学习
- 分布式缓存
memcached
key-value 数据过期时间 网络并发模型 对象序列化
读操作缓存
写操作缓存
线程安全 锁竞争
原子加法
缓存扩展
- 数据库性能优化
主要介绍的MySQL
show status
show innodb status
mysqlreport(工具)
索引
解释查询(explain)
组合索引
关于索引的内容有待进一步阅读《高性能MySQL》
慢查询分析工具:可以打开慢查询日志,记录下慢查询,然后对查询语句进行优化
索引代价:空间、会影响更新数据的(insert upadate delete)性能
行锁、表锁
事务表性能
反范式化设计
放弃关系数据库....这对于一些性能要求高的地方似乎是必然之路
- 负载均衡
http重定向
rr策略
dns负载均衡
反向代理负载均衡
....以及各种策略和工具
总之:有活大家一块干,合理分配...
- 共享文件系统 分布式文件系统
这里介绍的不多...相类似的有gfs (google) hdfs(hadoop)
内容分发和同步
数据库扩展
分布式计算
这几张只是略提,都是很大的题目....