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>
web容量规划的更多相关文章
- MongoDB的容量规划及硬件配置
mongo是基于内存的数据库,应尽量将工作集中的数据全部加载到内存中,即内存应大于工作集 本文译自Chad Tindel的英文博客: http://www.mongodb.com/blog/post/ ...
- 二 mysql容量规划,性能测试
何为基线- 当前运行状态记录.快照- 用于和未来的状态进行对比- 未来时刻产生关键事件后的新状态,作为下一个基线基线数据收集,关注哪些要点- 系统负载- MySQL运行状态- 相应的业务指标1.系统& ...
- MySQL容量规划之tcpcopy应用之道
官方文档:https://github.com/session-replay-tools/mysql-replay-module tcpcopy可以将正式环境上来自客户端的请求复制一份到测试端并复现, ...
- Hbase集群类型|集群配置|服务器选型|磁盘容量规划
HBase和Hadoop的集群类型 1.单机模式 主要用于开发工作,一台机器上运行所有的守护进程,或者一台机器运行多个虚拟机.一般用于评估和测试. 2.小型集群 20台机器以内的集群,不同的机器运行不 ...
- Elasticsearch集群规模和容量规划的底层逻辑
转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484628&idx=1&sn=666e416ae ...
- MySQL容量规划和性能测试
性能容量关键指标: 每秒tps,峰值tps 基础数据量,日均增长数据量 最大连接数 内存分配 IOPS 重点关注指标: 业务指标: 每秒并发用户请求.每秒订单数.用户请求响应时长 折算成性能指标: q ...
- 调用高德地图web api 规划路线
实现地图输出,出发地与目的地路线,效果如下 具体代码如下 <!doctype html> <html> <head> <meta charset=" ...
- elasticsearch容量规划
https://docs.bonsai.io/article/123-capacity-planning Capacity Planning Capacity planning is the proc ...
- PHP-学习大规模高并发Web系统架构及开发推荐书籍
以下书籍内容涵盖大型网站开发中几个关键点:高可用.高性能.分布式.易扩展.如果想对大规模高并发Web系统架构及开发有很系统的学习,可以阅读以下书籍,欢迎补充! 一.<Linux企业集群—用商用硬 ...
随机推荐
- System.Data.Entity.Core.EntityException: 可能由于暂时性失败引发了异常。如果您在连接到 SQL Azure 数据库,请考虑使用 SqlAzureExecutionStrategy。
代码异常描述 ************** 异常文本 **************System.Data.Entity.Core.EntityException: 可能由于暂时性失败引发了异常.如果 ...
- isolate 通信
main.dart import 'package:flutter/material.dart'; import 'package:flutter_isolate/flutter_isolate.da ...
- 【转载】C#使用Math.Sqrt方法进行开平方操作
在C#的数学数值运算中,有时候需要进行对数值进行开平方操作,C#的数值计算类Math类中内置了开平方操作的方法Sqrt,直接调用此方法可计算出相应的平方值,Math.Sqrt方法签名为:double ...
- border-radius圆角属性
border-radius圆角 当盒子的宽高一样时,设置盒子的border-radius为50%,得到一个圆形 border-radius: 20px 30px 200px 200px; 只写一个值: ...
- Maven版本管理
一.Maven项目打包的两种方式 二.如何优雅地修改多模块maven项目中的版本号 三.一个项目使用另一个项目 一.Maven项目打包的两种方式: 1.依赖工具比如eclipse 2.使用命令行: ...
- sqoop 导入增量数据到hive
版本 hive:apache-hive-2.1.0 sqoop:sqoop-1.4.6 hadoop:hadoop-2.7.3 导入方式 1.append方式 2.lastmodified方式,必须要 ...
- 怎么查看二进制文件内容?linux下nm命令告诉你!
linux下强大的文件分析工具 -- nm 什么是nm nm命令是linux下自带的特定文件分析工具,一般用来检查分析二进制文件.库文件.可执行文件中的符号表,返回二进制文件中各段的信息. 目标文件. ...
- wget下载出现错误 403:Forbidden
在我尝试wget下载一张图片的时候,出现了如下错误: wget "https://k4b8k3x5.ssl.hwcdn.net/content/140516/1622-saaya-irie- ...
- python 执行系统命令模块比较
python 执行系统命令模块比较 1.os.system模块 仅仅在子终端运行命令,返回状态码,0为成功,其他为失败,但是不返回执行结果 如果再命令行下执行,结果直接打印出来 >>> ...
- python抽象基类
抽象基类 抽象基类提了一种方式,用以组织对象的层次结构,做出关于所需方法的断言,以及实现其他一些功能 要定义抽象基类,需要使用abc模块,该模块定义了一个元类(ABCMeta) 和一组装饰器(@abs ...