企业宣传,产品推广,广告招商,广告投放联系seowdb

存储老本 如何推算日志中心的成功老本

在技术选型时,咱们往往会细心考量各项老本,尤其关注成功老本,这种“宽巨少量”其实能带来间接的经济效益。那么,你能否有系统地思索过如何计算这些老本呢?本节课将经过一个日志中心的例子,率领你逐渐启动老本计算。

之所以选用日志中心,关键有两点思索:

依据流量推算存储容量及投入老本

在互联网服务中,最大的变量就是用户流量。相比普通服务,高并发系统须要同时解决更多的在线用户,因此在设计这类系统的容量时,须要依据用户恳求量和同时在线人数来推算系统配件投入的老本。

很多系统在初期会驳回云服务来构建日志中心。但是当**接口流量超越10万 QPS后,许多公司就会思索自建机房,甚至前期会继续改良日志中心,开发一些共性化的服务。实践上,这些优化和成功的**目的都与老本息息关系。为了让这个概念愈加直观,咱们来经过一个实践例子,计算一个高并发网站的日志中心所需的存储容量和老本。

假定一个高并发网站在流量高峰期,其** API 的 QPS 约为 30 万,咱们按每天 8 小时计算,并假定每次**接口恳求会发生 1KB 的日志。由此可以计算出该网站每天的恳求量和日志数据量:

你或许会纳闷,为什么这里按每天 8 小时计算?这是由于大少数网站的用户访问量都有必定法令性,有些网站流量集中在上任务时期和夜晚,有些则在任务时期。联合普通用户的日常习气和每天约8小时的专一时期,按8小时计算会相对正当。当然这个时期只是一个参考,不同业务的访问高峰或许不同,实践状况可以依据网站用户习气启动调整。

回到刚才的计算,咱们看到,假设每次恳求发生 1KB 的日志,每天将会有约 8.6TB 的日志数据须要解决、传输、整顿、计算和存储。

为了繁难疑问追溯,咱们还需设定日志的保管周期。假定日志保管30天,那么一个月的日志量将到达:

8.6TB X 30 天 = 258 TB /30 天

经过以上计算可以看出,一个高并发网站的日志存储需求十分宏大。这种剖析思绪不只实用于日志中心,还可以作为其余组件容量与老本计算的参考。

冷静量算硬盘的投入

在计算出日志量后,咱们就可以进一步预算购置配件所需的老本。不过须要提早说明的是,配件多少钱是灵活变动的,且不同商家的定价会有所差异,因此详细老本或许会有差异。这次咱们关键关注计算思绪,学会后你可以依据实践状况来调整。

目前,经常出现的主机硬盘规格为8TB、7200转、3.5寸,单价约为2300元。思索到实践可用容量,8TB硬盘的实践可用存储空间约为7.3TB。联合之前的每月日志量,可以计算出所需的硬盘数量,计算公式如下:

258 TB/7.3 TB = 35.34 块

由于硬盘数量必定是整数,所以须要36块硬盘。而后将数量与单价相乘,就得出配件的总老本:

2300 元 X 36 = 82800 元

为了确保数据安保并增强查问性能,咱们通常会经常使用散布式存储,将数据存储三份。这样一来,在散布式存储打算下,至少须要108块硬盘。此时的投入老本为:

82800 X 3 个数据正本 = 24.8W 元

假设还要保证数据的可用性,咱们可以选用 RAID 5 阵列。RAID 5 会将多个硬盘组成一个阵列,其中局部硬盘提供完整存储容量,另外一局部硬盘则用于校验和冗余。虽然详细的 RAID 配比有多种打算,但为了简化计算,咱们选用以下性能:每四块硬盘组成一组,其中三块提供完整容量,一块用于校验。

在 RAID 5 形式下,容量计算公式为:

单组 raid5 容量 =((n-1)/n) * 总磁盘容量,其中 n 为硬盘数

其中n n 为硬盘数量。将4块硬盘代入公式:

108 / 3 = 36 块校验盘

这标明,一组RAID 5由四块硬盘组成,其中三块提供完整的存储容量。由此可以计算出,为了满足存储需求,咱们须要在108块硬盘的基础上参与四分之一的容量来寄存校验数据,即:

108 / 3 = 36 块校验盘

因此,最终须要的硬盘数量为:

最终须要的硬盘数量就是 108 块 + 36 块 Raid5 校验硬盘 = 144 块硬盘,每块硬盘 2300 元,总老本是:

每块硬盘的多少钱为2300元,因此总老本为:

144 X 2300 元 = 331200 元

为了繁难计算,咱们可以取整按33万元来计算。

除了确保可用性外,还需思索硬盘的寿命。由于硬盘是易损设备,普通在延续任务两到三年后会陆续出现损坏状况。为应答硬盘损坏和补货缓慢等疑问,通常会筹备大约总数三分之一的硬盘作为备件。也就是说,需常备40块硬盘用于缺点交流,保养老本约为:

2300 元 X 40 = 92000 元

综上,至少需投入的配件老本为一次性性硬盘洽购费用加上保养费用,即:

33+9.2=42万元

依据硬盘推算主机投入

接上去,咱们须要计算主机的关系老本。主机有多种规格,不同规格可以拔出的硬盘数量也不同,详细如下:

在上一步中,咱们曾经计算出做 RAID 5 的状况下须要 144 块硬盘。若驳回 2U 主机,则须要的主机数量为:

144块硬盘12块/台=12台主机

假定每台主机的费用为 3 万元,那么主机的配件老本为:

12 台主机 X 3W = 36W 元

补充说明:为了提高可用性,通常将相反数据的正本扩散在不同的机柜和交流机上部署。这种形式可以在机柜或网络设备出现缺点时,依然保证数据的高可用性。

依据主机托管推算保养费用

除了购置主机,还须要思索保养费用。将 2U 主机托管在优质机房内,每台主机的年托管费用约为 1 万元。前面计算得出,咱们须要 12 台主机,那么一年的托管费用为:

12台×1万元=12万元

接着,咱们来计算第一年的总投入,包括硬盘洽购与保养、主机配件老本、托管费用,以及带宽费用。详细计算如下:

第一年投入费用=42万(硬盘新购与备用)+36万(主机一次性性投入)+12万(主机托管费)+10万(宽带费用)=100万元

后续每年保养费用包括硬盘交流(假定备用盘用完)、主机托管费以及带宽费用,计算如下:

9.2万(备用硬盘)+12万(托管费)+10万(带宽费)=31.2万元

基于第一年投入和后续保养费用,咱们可以计算三年内运转 30 万 QPS **服务所需的老本,详细如下:

31.2万元×2年=62.4万元+第一年投入100万元=162.4万元

当然,这里未蕴含大客户的配件洽购折扣、冗余容量、网络设备、适配卡等费用以及人力老本。但即使疏忽这些,当你看到这样的老本支出,再想想某些场景中用 2000 台主机来运转 ELK,置信你会深入体会到,多写一行日志的老本终究有多高。

主机洽购冗余

接上去,咱们谈谈洽购主机时保管冗余的疑问。假设没有亲自阅历过,或许会容易疏忽这一点。

关于**机房的托管,主机的洽购和装置周期须要特意关注。很多**机房往往缺乏空余的机柜位,因此,为了满足未来几年的业务增长需求,许多公司会提早多洽购一些备用主机。曾有公司依照评价结果的四倍来备货,不过不同企业的业务增长速度不同,冗余比例并没有一致规范。就我团体而言,习气依据流量增长趋向,预估未来三年的主机需求量来启动洽购。

因此,回头看咱们之前计算的主机老本,实践上只是基于现有需求而已,只能算是“刚好够用”。实践操作中,做老本预算时必定要将冗余思索在内,免得因资源无余影响业务开展。

如何节俭存储老本?

普通来说,业务都有生常年,当咱们业务处于飞速开展、极速迭代的阶段,介绍前期多投入配件来撑持业务。当咱们的业务外形和市场稳固后,就要开局揣摩如何在保证服务的前提降低低老本的疑问。

暂时应答流量打算

假设在主机洽购时没有留出冗余,而服务流量增长了,咱们可以采取一些暂时措施来缓解压力。可以从节俭主机存储空间和缩小日志量这两个方面着手,例如:

以上这些措施能够在短期内缓解存储压力,作为应急之策。但是在控制老本时,倡导不要就义业务服务,尤其是**业务的稳固性。接上去,咱们可以讨论一种不凡状况。

假设业务高峰期的流量激增,远超越 30W QPS,就有更多流量瞬间恳求尖峰,或许出现少量缺点的状况。这时甚至没有报错服务的日志中心也会被影响,开局出现意外。高峰期日志会提早半小时,甚至是一天,最终结果就是系统报警不迭时,即使排查疑问,也查不到实时缺点状况,这会重大影响日志中心的运转。出现上述状况,是由于日志中心广泛驳回共享的多租户形式,隔离性很差。这时刻一般系统的日志会疯狂报错,占用一切日志中心的资源。为了规避这种危险,一些**服务通常会独立经常使用一套日志服务,和周边业务分分开,保证对**服务的及时监控。

高并发写的存储冷热分别

为了节俭老本,还可以从配件方面入手。假设咱们的服务有显著的高峰期,但往常流量并不大,洽购过多主机或许会形成资源糜费。这时可以经过洽购高性能配件来撑持高峰期流量,到达更浪费的成果。

例如,单个磁盘的写性能约为 200MB/s,在 RAID 5 环境下,单盘性能减半,约为 100MB/s。假定一台主机能装 9 块硬盘,则总写性能为:

100MB/s×9块硬盘=900MB/s

这样的磁盘吞吐量可以满足实时写入、大批读取的日志中心需求,但应答极其高峰时或许还需额外优化。为此,咱们可以思索冷热分别战略:在写入需求激增时,用 SSD 来解决高并发写入,而将冷数据存储在普通硬盘上。

假定每天发生 8TB 新日志,每个正本散布在 4 台主机上,则每台主机需承当 2TB 的每日存储需求。按 1TB SSD 的实践容量为 960GB,M.2 接口 SSD 单价约 1800 元、顺序写入性能在 3-5GB/s,则每台主机需装备两块 SSD,总计 24 块 1TB SSD,计算如下:

1800元×12台主机×2块SSD=43200元

此外,SSD 须要活期改换,其寿命约为三年,年保养费用为:

1800元×8块=14元

补充常识:SSD 不只能优化写入性能,还能优化读取性能,并且一些散布式检索系统允许智能冷热迁徙性能,使高频数据更极速照应,而冷数据则存储在更节俭老本的硬盘中。

须要多少网卡更合算

经过参与 SSD 和冷热数据分别,确实可以有效缓解业务高峰时日志写入的压力。但是,即使主机磁盘能够接受住流量压力,网络瓶颈也会随之浮现。

通常状况下,内网速度不会太低,但一些小型自建机房或许装备万兆交流机而主机仅允许千兆网卡。通常上,千兆网卡的传输速度为:

1000Mbps/8=125MB/s

实践传输速度却往往达不到这个通常值,大抵在 100 MB/s 左右。当咱们在内网中启动大数据文件的传输时,千兆网卡的带宽会很容易被占满。

过去,为了提高网络吞吐量,罕用的方法是多网卡接入交流机并在主机上启动 Bond 解决。随着光纤网卡的遍及,万兆光口网卡成为干流,其通常传输速度为:

10000Mbps/8=1250MB/s

而实践速度大略能到达 900 MB/s(即 7200 Mbps)左右。

再回到咱们之前计算的日志高峰数据吞吐量:

300,000QPS×1KB=292.96MB/s

关于千兆网卡来说,100 MB/s 的带宽速度在四台主机摊派下勉强够用。但在更高流量的高峰期,这一带宽仍显无余,因此须要更新为万兆网卡。值得留意的是,万兆网卡还需配合性能更高的三层交流机能力齐全施展作用。近年来,万兆交流机已遍及,通常蕴含在基础设备老本中,这里不再独自计算交流机的投入老本。

在之前的配件老本计算中,咱们提到每组主机须要存储三个正本,因此性能三块万兆光口网卡是足够的。但是,为了确保系统的稳固性,咱们不会将网卡的带宽经常使用率坚持在满负荷形态,最佳的传输速度应坚持在 300 到 500 MB/s 之间,以便预留出额外的带宽供其余服务经常使用或应答突发状况。

关于 12 台主机来说,它们分为 3 组正本(每组 4 台主机,每个正本存储一份完整数据)。在这种性能下,每台主机的日常网络吞吐量可以计算为:

292.96MB/s (高峰期日志数据吞吐量)/4台主机=73MB/s

在经常使用万兆网卡的状况下,这样的吞吐量仅占总带宽的十分之一,齐全能满足日常的日志传输需求。假设经常使用千兆网卡,状况就不一样了。

虽然千兆网卡的通常速度为 100 MB/s,计算得出的 73 MB/s 吞吐流量仿佛可以在其容量范畴内,但这样做是不够的。这是由于咱们在预算容量时必定留有弹性。经常使用千兆网卡时,实践负载凑近满载,一旦出现流量动摇,就或许造成网络拥挤,从而重大影响系统的稳固性。

此外,日志中心的性能不只仅是满足基础的业务需求,它还须要承当疑问排查和数据开掘剖析的义务。假设仅仅为了基础服务而树立一个如此低廉的日志中心,确实是得失相当的。因此,在选用网络配件时,确保短缺的带宽和冗余设计是至关关键的。

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender