容量和性能  

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

需求分类:
- 性能
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. Expanded, SingleChildScrollView, CustomScrollView, container, height, width

    SingleChildScrollView, CustomScrollView, container, init: double.inifinity. then use Expanded to con ...

  2. 超详细Vue实现导航栏绑定内容锚点+滚动动画+vue-router(hash模式可用)

    超详细Vue实现导航栏绑定内容锚点+滚动动画+vue-router(hash模式可用) 转载自:https://www.jianshu.com/p/2ad8c8b5bf75 亲测有效~ <tem ...

  3. C# NPOI Excel 合并单元格和取消单元格

    1.合并单元操作 //合并单元格 /** 第一个参数:从第几行开始合并 第二个参数:到第几行结束合并 第三个参数:从第几列开始合并 第四个参数:到第几列结束合并 **/ CellRangeAddres ...

  4. 转 CentOS 初体验十四:阿里云安装Gitlab

        原文 https://blog.csdn.net/zhaoyanjun6/article/details/79144175 非Unix操作系统(Windows) GitLab是专为Unix操作 ...

  5. spark 机器学习 随机森林 原理(一)

    1.什么是随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决 策树之间是没有关联的.在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分 ...

  6. Python_模块的定义与使用

    1.模块的定义: 1.1 标准格式: import 模块名 模块名.函数名(实参列表) 1.2 特殊格式: from 模块名 import 函数名1,函数名2... 函数名(实参列表) 2.模块的使用 ...

  7. ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用)

    ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用)

  8. Kotlin构造方法详解与初始化过程分析

    在上一次https://www.cnblogs.com/webor2006/p/11192025.html已经初识了Kolin的面向对象,先来回顾一下: 介绍了primary 构造方法,其特点回忆一下 ...

  9. P1341 无序字母对[欧拉路]

    题目描述 给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒).请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现. 解析 毒瘤字符串读入 我就是不喜欢邻接 ...

  10. c++中结构体的使用

    文章链接: 结构体定义: struct Books { ]; ]; ]; int book_id; } book; 访问结构体成员: #include <iostream> #includ ...