论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
虚拟化.超融合.云计算
›
虚拟化与私有云
›
谈谈API的成本盘算方法
谈谈API的成本盘算方法
兜兜零元
论坛元老
|
2024-8-16 13:54:16
|
显示全部楼层
|
阅读模式
楼主
主题
1015
|
帖子
1015
|
积分
3045
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
引言
前一段时间,拜访客户的时候,客户提出一个问题:原来他们的AI应用,把不同的模子部署在不同的EC2实例上,不同模子的EC2实例打不同的tag,通过tag来识别不同模子的成本斲丧。如今他们想把不同的模子部署到同一个EC2实例上,那么这么混合部署后,怎样来识别不同的模子的成本斲丧呢?
我们现场讨论了几种方案。厥后回来后,我想了想,以为这个是个挺有意思的话题。多年前,我在网龙工作时,我们曾经试图通过压测的定量分析来引导步伐的优化,在雷同的方向上有过讨论,有许多的共通之处。这里把思考做一个记录、总结,以供大家参考。
抱负的成本
抱负情况下,一次API调用的成本可以简单明白为,调用这个API一次,斲丧了多少资源,折合多少钱。
但是在实际的执行过程中,通常很难这么衡量。原因在于,大多数的用于保障API执行的底子设施,并不是以这么细的粒度来进行计费和付费的(哪怕是云上serverless lambda的方式,通常也只是盘算层可以做到这么细粒度的计费,假如这个盘算要用到DB,也很难把DB的斲丧细化到每一个API请求)。
从财政的角度
通常时候,只能以一台大概一组服务器作为粒度来盘算成本。即便是引入假造化大概云化后,也只能以虚机的维度来盘算成本。很难进行更细粒度的成本拆分。
这个角度,只是为了让全部的成本有归属,全部的资源使用能找到承担成本和责任的人。
损耗的问题
实际上,体系在运行中,着实是有损耗的,我们很难把硬件设备的性能用尽。比如一台服务器,一天有能力执行100W次的盘算,但是实际上,我们只执行了50W次盘算。那么实际上就损耗了50%的算力资源,但是我们还是要为这部门没有被使用起来的资源支付费用。
假如这部门的损耗不能正确识别出来,效果会影响我们对体系的负载能力的团体判断。也会对将来的成本预期做出错误的估计。
目的
准确识别抱负成本
准确识别体系损耗
预估体系的负载上限、引导体系扩容
合理进行成本核算
实行
抱负成本的得到
取一个标准环境(比如一台2核4G的EC2,一台2核4G的RDS)。假定它一个小时的代价是P1,把它一个小时的资源记为R1。那么一天的成本就是P1*24,一天的可使用资源量就是R1*24。
实际上,经济成本核资源成本,只是成本的两种表现方式,在资源代价确定的时候,这两个成本是可以换算的。以是后面我们都已经济成原来讨论。
在这个标准环境上,对业务A(大概是单个或一组API)进行多轮压测。得到一个平均TPS值,假定这个值是M1。
那么我们可以盘算业务A的经济成本为:P1/(M1*3600)
究竟上,我们的体系在实际运行的时候,假如真的达到压测的满载状态,是会存在一定的风险的(比如大概导致体系出现慢请求),以是我们通常应该要设定一个资源使用率阈值,这里假定设这个阈值为90%。那么上面的成本应该修正为:
经济成本为:P1/(M1*3600*0.9)
业务A在一段时间内里的总成本为:P1/(M1*3600*0.9)*业务A总请求量。
全部业务在一段时间(T)内里的总成本为:全部业务的总成本之和 CT。
体系损耗的盘算
在一段时间内里,我们支付的总费用是 P1 * T。
这一段时间,体系的损耗是 P1 * T - CT。
进一步,要看公司的核算内里,损耗部门是作为公共支出,还是要核算为业务成本。假如作为公共支出,是最容易的,把这部门当列就好了。
假如要核算为业务成本,那么要定义业务的分摊规则。比如是按照业务的请求量分担,还是按照业务的理论成本占比分摊。
假如按照业务的理论成本占比分摊,那么一个业务的分摊值为:
(P1 * T - CT) * (P1/(M1*3600*0.9)*业务A总请求量) / CT。
进一步的应用
通过 P1 * T - CT 和 CT的占比,我们也能分析出,此时体系的富余容量,预知体系还可以承受多少的负载增加,进一步推算用户在什么水平的增长水平上,体系可以正常运行,必要在什么时候进行扩容。
在多业务混合使用资源的时候,也可以依据这个推算的数据,联合线上资源的观测,来判断业务混合部署是否能有效使用资源,哪些业务的资源使用是会互相干扰的。
实际使用过程中,还大概出现,压测和实际运行,都会出现体系的性能已经无法提拔,但是确观测到CPU,内存都还很空闲,大概其中一种资源空闲的状态。
假如是一种资源空闲,说明体系的配置不合理,我们必要调整配置,来更好地优化性价比。
假如都空闲,那么必要考虑体系是不是有外部依赖,外部依赖拖累了体系的性能发挥,这个时候优化的方向是提拔外部依赖体系的相应速度,大概降低本体系的配置,以和外部体系适配,镌汰资源的浪费。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
兜兜零元
论坛元老
这个人很懒什么都没写!
楼主热帖
数据库的建立、增、删、改、查 ...
深入解析kubernetes中的选举机制 ...
【黄啊码】MySQL入门—4、掌握这些数据 ...
clang-format的使用
MySQL安装配置
Oracle调度器Scheduler
V Rising 服务器搭建
02-MySQL高级
2万多条健康网站文章大全ACCESS\EXCEL ...
【黄啊码】MySQL入门—5、数据库小技巧 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
DevOps与敏捷开发
网络安全
移动端开发
快速回复
返回顶部
返回列表