web容量规划

容量和性能  

容量规划是基于当前性能判断系统需要什么及什么时候需要,它既是资本支出合理化证明过程也是一个技术变更;  
性能调优是优化已存在的系统性能;  
一般服务的升级步骤是:性能调优 -> 容量规划  
容量规划是建立在明确的需求上面的,不然你无法确认要达到的目的,就不知道要改做出什么的规划.  

需求分类:
- 性能
 1 对外服务监测
 2 业务需求
 3 用户期望
- 容量
 1 系统度量指标
 2 资源上限

 网络容量监测

- 通过工具监测指标,查看是否正常
- 负载均衡问题  
1 在部署和研究容量上很方便  
2 如何确定服务器情况  

通过负载均衡来找web服务器的上限  
 1 通过工具重放真实日志,通过负载均衡器来调整应用访问,找到真实的上限  
 2 应注意应用的线程上限,网络限制,cpu限制,避免应用崩溃

 应用程序监测

- 应用层指标测量方式   
1 通过脚本定期获取业务数据指标,来追踪应用运行情况

- 存储容量   
1 存储介质的最大容量   
2 在存储介质之上的数据访问速度   

- 消耗率  
跟踪目前消耗情况,预测未来消耗

- 存储I/O模式  
1 待读数据量  
2 待写数据量  
3 CPU等待读写时间  
4 通过工具来获取执行指标  

- 日志和备份  
需要注意它们占用存储情况

测量WEB服务器的负载  
 1 需要根据系统和应用层的度量指标来观察度量指标  
    a. 缩小硬件资源范围,通过不断剔除平稳的资源,找到瓶颈点(内存 磁盘I/O 网络资源) 
    b. 然后再针对瓶颈点解决问题  

 

数据库容量监测

监测指标  
1 每秒的操作数(增删改查)  
2 当前打开的连接数  
3 复制时数据库间的滞后时间  
4 高速缓存命中率  

测量方式:  
 1 资源消耗评估,查看CPU,网络,磁盘I/O的限制  
 2 通过工具观测容量消耗情况,可以通过加大负载的方式,加速获取瓶颈点 

 

缓存系统监测

分为前端缓存和后端缓存两种  
前者采用反向代理方式,缓存内容不再请求后端服务器;  
后者是数据缓存,不再请求数据;相对来说前端缓存效果更好后端缓存结构简单;  

监测指标  
1 命中率  
2 总请求率  
3 对象平均大小  
4 LRU参考时间  

测量方式:  
1 增加负载,获取瓶颈点  
2 可能实际使用中会定义最长响应时间,我们也要通过增加负载的方式,获取到突破阈值的请求率和瓶颈点,和缓存效率数据

 

多用途服务器监测

实际服务器中为了增加利用率,会部署多个应用,这时的监测也会变的复杂.    

测量方式:  
1 隔离应用并测量其资源消耗,列举出来,可以更清晰
    如: 图片上传 磁盘I/O和网络利用率
        图片处理 CPU利用率
2 保持其他应用资源使用量稳定,以便于目标应用测量
3 然后根据目标用户数量,来判断需要多少部署多少机器

 

API使用率及其对容量的影响

开放API可以提高外部对于应用访问的访问效率,但是存在滥用的情况.    
通过工具检查外部来源标识,可以获取API访问率,来确定是否存在滥用的情况.

 

参考资料:<Web容量规划的艺术-John Allspaw>

posted @ 2019-10-11 14:51  橙木鱼  阅读(292)  评论(0编辑  收藏  举报