容量和性能  

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

需求分类:
- 性能
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>

web容量规划的更多相关文章

  1. MongoDB的容量规划及硬件配置

    mongo是基于内存的数据库,应尽量将工作集中的数据全部加载到内存中,即内存应大于工作集 本文译自Chad Tindel的英文博客: http://www.mongodb.com/blog/post/ ...

  2. 二 mysql容量规划,性能测试

    何为基线- 当前运行状态记录.快照- 用于和未来的状态进行对比- 未来时刻产生关键事件后的新状态,作为下一个基线基线数据收集,关注哪些要点- 系统负载- MySQL运行状态- 相应的业务指标1.系统& ...

  3. MySQL容量规划之tcpcopy应用之道

    官方文档:https://github.com/session-replay-tools/mysql-replay-module tcpcopy可以将正式环境上来自客户端的请求复制一份到测试端并复现, ...

  4. Hbase集群类型|集群配置|服务器选型|磁盘容量规划

    HBase和Hadoop的集群类型 1.单机模式 主要用于开发工作,一台机器上运行所有的守护进程,或者一台机器运行多个虚拟机.一般用于评估和测试. 2.小型集群 20台机器以内的集群,不同的机器运行不 ...

  5. Elasticsearch集群规模和容量规划的底层逻辑

    转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484628&idx=1&sn=666e416ae ...

  6. MySQL容量规划和性能测试

    性能容量关键指标: 每秒tps,峰值tps 基础数据量,日均增长数据量 最大连接数 内存分配 IOPS 重点关注指标: 业务指标: 每秒并发用户请求.每秒订单数.用户请求响应时长 折算成性能指标: q ...

  7. 调用高德地图web api 规划路线

    实现地图输出,出发地与目的地路线,效果如下 具体代码如下 <!doctype html> <html> <head> <meta charset=" ...

  8. elasticsearch容量规划

    https://docs.bonsai.io/article/123-capacity-planning Capacity Planning Capacity planning is the proc ...

  9. PHP-学习大规模高并发Web系统架构及开发推荐书籍

    以下书籍内容涵盖大型网站开发中几个关键点:高可用.高性能.分布式.易扩展.如果想对大规模高并发Web系统架构及开发有很系统的学习,可以阅读以下书籍,欢迎补充! 一.<Linux企业集群—用商用硬 ...

随机推荐

  1. JS基础_强制类型转换-Number

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. font-size 你所不知道的值

    说起 font-size  ,大家应该都知道是做什么的: CSS 属性指定字体的大小.因为该属性的值会被用于计算em和ex长度单位,定义该值可能改变其他元素的大小. 那么font-size 的值也是多 ...

  3. js 一些有意思的小Demo

  4. xcode 手动管理内存 的相关知识点总结

    一.XCode4.2以后支持自动释放内存ARC xcode自4.2以后就支持自动释放内存了,但有时我们还是想手动管理内存,这如何处理呢. 很简单,想要取消自动释放,只要在  Build Setting ...

  5. redis 异常 MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk

    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. 解决方 ...

  6. PM2 监控 Spring Boot 项目运行

    更多 PM2 的用法介绍请参考: PM2简易使用手册 - 掘金 由于 PM2 通常都用于 node 应用, 所以 exec_mode 应写为 fork, 其中最重要的是 args, -jar 和 ja ...

  7. request-html 简单爬虫

    import asyncio from requests_html import HTMLSession url = 'http://www.xiaohuar.com/hua/' session = ...

  8. [ipsec][strongswan] strongswan源码分析-- (三) xfrm与strongswan内核接口分析

    目录 strongwan sa分析(三) xfrm与strongswan内核接口分析 1. strongswan的实现 2. 交互机制 4. xfrm的消息通信的实现 strongwan sa分析(三 ...

  9. HTML&CSS基础-伪类选择器

    HTML&CSS基础-伪类选择器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.html源代码 <!DOCTYPE html> <html> & ...

  10. HashMap简介以及hashCode写法的建议

    映射表Map Map也叫映射表或者字典,Map中存储的元素是一个键值对key-value,他们共同包装在Entry<K,V>对象中.我们能通过key直接获取value,就像查字典一样. J ...