《构建高性能web站点》——服务器并发处理能力(1)

作者:heyue 时间:2011-03-29 分类:互联网技术 评论:0条 浏览:4544

这一章,很难懂,是因为整个互联网都在研究这个东西,大到google、facebook等顶级网站,小到xxxorg等几乎没有流量的网站都在研究者这个东西。当然,这个东西就像买一个笔记本一样,当然希望最高的性价比,用最低的工资招到最好的人才(不过这个在中国互联网好像行不通,一般nb的人都会跑掉)。

这一章和我的工作隔得比较远,因为在大型的互联网公司,都会有既定的一套线上的架构放在那里,一般不会让我们作为开发人员碰到那些东西,比如在新浪有一个动态应用平台的东东(如果不懂就去看看SAE,SAE就是这个动态应用平台派生出来的),一般纯动态的程序很难出现大的问题,强大的前端集群配置、带宽保证、数据库保证、缓存保证,这个让一般的开发者去优化仅限于php逻辑、数据库的sql、缓存的设计,很难接触到服务器级以及web服务软件级别的优化。

这一章,有很多具体数据的概念,对我理解高并发的web开发有很大的帮助,最直接的感受,原来最原始的html才是最高效的。

名词:

1.吞吐率:直接理解就是一秒钟能响应多少次请求 reqs/s

2.最大并发用户数:就是在用户等待限度以内,以及服务器处理能力范围内最大的处理数量。就像10086的客服,有100个客服mm,但是同时有1000个人打电话,那这1000个人得等待很久;如果只有10个人打电话给客服,又浪费了工资;当然,如果有200个人同时打,等待1分钟,这个是可以接受的,然后最大并发数就是200。这个是协商性质的。

3.浏览器并发连接数:现在的浏览器一般对于在同一个域名下的文件的请求都会是并发的,具体的在http1.1下,IE7—-2, IE8——6,firefox3——–4….所以这个导致了后面的要组建分离,就是把js、image、css之类的独立域名出去。

4.用户平均等待时间:这个就是上面的那个只有100个客服然后100+的用户打电话过来的时候需要等待的时间,前提是>100这样才会有一定的压力,没有压力,就不用等待了。

5.服务器平均请求处理时间:这个很好理解,就是平均处理一个请求需要多少时间,这个应该是吞吐率的倒数。

总结1:常用的压力测试软件

1.apache ab 这个最强大,返回的信息最多,应该是最实用的一个测试工具,到处udou是。

2.linux webbench 这个简单,返回结果也简单,可以看个大概

3.pc loadRunner  这个是模拟客户浏览器的行为,能带来比较真实的压力测试数据。

总结2:DMA在网络流量中的过程

DMA过程

总结3:进程,轻量级进程,线程的区别

1.进程由系统调用fork()产生,维护自己独立的地址空间、和上下文信息,可以和其他进程通信,但是不相互依赖。比如apache 的prefork模式,有点:稳定;缺点:由于不共享数据,内存占用很大。

2.轻量级的进程由系统调用clone()产生,可以共享一些地址空间、打开的文件等,但是上下文切换很多。

3.线程:这个目前在内核上没有统一,还很少有web服务器使用这个….

标签:

相关推荐
更多