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企业集群—用商用硬 ...
随机推荐
- 学了python能干什么
学了python能做些什么 1.WEB开发 Python拥有很多免费数据函数库.免费web网页模板系统.以及与web服务器进行交互的库,可以实现web开发,搭建web框架,目前比较有名气的Python ...
- ASP.NET MVC+Entity Framework code first 迁移
再来一张,选择 MVC 模版,其他的没选过,不会用 =_=!! 身份验证用个人用户账户,这个是为了偷懒,话说 ASP.NET Identity 还是很给力的,不用白不用 ^_^~ 点击确定之后,会看 ...
- apk反编译工具包for Mac OS的使用
在本文中我将介绍如何在Mac OS X上使用apktool.jar.dex2jar.jd-gui来进行apk的反编译和查看源码.下面会提供每个工具的下载地址. 测试环境:OS X EI Capitan ...
- QTableWidget数据表格
void setRowHeight(int row, int height); //行高 void setVerticalHeaderLabels(const QStringList &lab ...
- SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?
刚刚过去的在巴塞罗那举行的2019 SAP TechEd,SAP照例向全球广大的SAP生态圈从业者们传达了一些重要的信息,其中一条为:Building Extensions for the Intel ...
- django使用admin站点上传图片
Django有提供文件系统支持,在Admin站点中可以轻松上传图片.使用Admin站点保存图片,需要安装Python的图片操作包 pip install Pillow 1 配置 默认情况下,Dja ...
- Java异常类的继承关系图
- (Linux基础学习)第四章:Linux系统中的日期和时间介绍和ntpdate命令
第1节:日期和时间1.Linux的两种时钟:系统时钟:由Linux内核通过CPU的工作频率进行的硬件时钟:主板2.相关命令date 显示和设置系统时间hwclock,clock 显示硬件时钟-s,-- ...
- LeetCode初级算法--字符串02:字符串中的第一个唯一字符
LeetCode初级算法--字符串02:字符串中的第一个唯一字符 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog. ...
- docker 基本常用操作做
docker 基本常用操作做(只列举入门常用的命令) 容器生命周期管理 docker run :创建一个新的容器并运行一个命令 -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDO ...