【简记】大规模Web开发技术(第十二章)

第十二章 保证可扩展性的必要思路——规模扩大和系统扩展

Hatena 的大规模服务由几十台服务器构成,各台服务器均为4 核CPU 1 ~2 个,安装8GB ~ 32GB 内存,并能够根据负载状况进行扩展。



各层的扩展性:

应用程序的扩展比较简单。

因为应用程序服务器没有状态,将任何请求分配到其他应用程序服务器上都不会发生任何问题,因此只须在负载均衡器上添加新服务器就可以不断扩大。只要增加服务器,就可以扩展到无限大。


而数据库服务器和文件服务器等,就很难像应用程序服务器那样实现分布式、保证可扩展性。对于数据源的请求包括read(读取)和write (写入)两种, read 的分布式比较容易实现,而write 的分布式很困难。



掌握负载进行调优

测量指标——平均负载,内存,CPU

首先要看平均负载(load average) 。之前讲过,平均负载是重要数据。Linux 内核会启动多个进程。平均负载就是处于随时可以运行但尚未分配到CPU 而处于等待状态的进程数的平均值。例如, 5 分钟内的平均负载为1 ,那就是说5 分钟内平均有1 个进程处于等待状态。


根据用途进行调优——面向爬虫和面向用户的服务器

爬虫对于响应时间的要求并不严格,因此调整服务器使得请求的处理量最大,实际的平均负载也会提高。

面向用户的服务器中可以看出,负载随着用户活动和流量而变化。深夜负载会稍稍回落, 白天增高,晚上的繁忙时间更高。与前面面向爬虫服务器的6 相比,平均负载被控制在1~3 左右,为实现良好的响应时间,不应用尽所有服务器资源,而是要朝着维持良好的响应时间,不要产生等待进程的方向进行调优。

总结一下,要将应用程序服务器分成面向爬虫和面向用户,制定不同的调优策略,有的重视效率,有的重视响应时间,有的重视资源的有效利用。

服务规模和调优

随着服务器越来越多,如何找到行为异常的服务器就成了问题。


保证可扩展性



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值