

全国免费客服电话 025-83700868 邮箱:bafanglaicai@126.com
手机:13905181235
电话:025-83700868
地址:南京市鼓楼区三步两桥145号
发布时间:2026-03-31 00:12:49 人气:
随着业务系统上云比例越来越高,上云业务系统的规格(CPU、内存、磁盘、网络等)一般应如何定义,才能在平衡成本的同时,最大限度保证云资源的高效使用?
这个通常要基于实际部署的业务特征、资源可扩展能力、服务管理能力等综合考虑。
基于经验,节点规格不宜过小,可以32C/128G或64C/256G,磁盘空间2T 的虚拟机,物理机用128C/512G, 4-8T磁盘(Raid后磁盘空间不宜太小),配置规格通常也基于部署服务的需求。另外节点能否动态扩容,扩容消耗时间越多,资源冗余容量可以更小,否则必须保证意外情况下的资源容量。
服务配额规则则根据实际运行监控调整,初始往往不知道配置多少合适,通常会配置的比较大,运行一段时间后可以根据资源历史使用情况调整, 高峰流量资源需求不高于配额的70%。
资源容量规划可能需要过往长期资源使用的可观测数据,基于资源使用趋势、承载的服务和流量、未来需要承载的服务和流量等来确定。
很多人也提出通过超分等提高资源使用率,但这种方式我不建议。最好的方式是优化调度,动态调度减少资源碎片,但调度算法实现并不容易,所受的限制因素很多。是一个动态的多目标规划问题。
关于资源规格的分配问题,如果学习到操作系统原理,可以拿操作系统内存管理来作类比。
像Linux操作系统使用buddy来管理内存,将可分配的内存空间按照一定的算法来切分成不同粒度的块,一般是PAGESIZE为起始(4KB或64KB),逐级翻倍增加。这样在分配时只要分配不同粒度的连续页块即可,如用户申请6KB,那分配2KB+4KB的页块即可。
说回到咱们的资源分配,首先楼主提到的资源类型包括CPU,内存,磁盘,网络等,我们一个个的分析一下:
1、CPU和内存,内存一般是CPU核数的数倍(假设n),为了CPU和内存都能被同时利用,避免其中一种不够或者闲置,我们建议在定制虚机模型时按照服务器本身的CPU和内存比来设定。举例来说,一台物理机的可用core(含超线G,那么虚机模型建议内存:core = 4 :1 ,当然这个比值只是大致的,不一定特别精确,在一些时候,云平台层面看到的可用cpu数量和内存数量会有缩减(因计算方式或预留等原因)。
另外CPU一般较少,所以分档模型的CPU数量应该是总CPU的1/2 , 1/4 , 1/8 …… 这样分配虚机时,保证剩余的资源足够创建一个小模型的虚机,比如128 core的主机,最后剩余16c也还是可以创建一个虚机的。
2、磁盘,磁盘一般多为外接磁盘,要么是分布式或者集中式存储,这带来的好处时,分配时不会造成剩余空间不可用,那么划分磁盘从管理方便的角度考虑,一般以100G为单位进行分配。
3、网络,因为网络IO波动较大,如果做配额管理,使用防火墙等手段控制,估计对性能有一定损耗,如果的确需要给虚机独享网络IO,可能是关键类业务的虚机,或者是大IO的批量处理类虚机,完全可以在虚机规划时,将这些虚机分配到单独的计算节点上,而不用对整个云平台再配置。
先测算业务系统的资源需求,然后配比相应的云资源。关键在于划定一条“红线”:建议CPU性能不低于当前主流台式机的计算能力,内存至少不低于现有主流配置,确保业务运行顺畅。这样既能避免过度配置导致资源浪费,又能保障系统的计算性能和稳定性。
上云系统的规格 ,一般指单个pod的配置和总的副本数。对于副本数,一般建议测试环境不限制,生产环境须不小于2。对于单个pod的配置,有两种做法可参考:(1)在一定范围内不限制单pod的规格(CPU和内存),由用户自定义。并建议可有几个约定,一是单pod最大资源配置不超过容器云平台计算节点容量的一定比例(比如30%),二是request默认为limit的一定比例(比如20%),三是通过性能测试确定单pod的最优资源配置和副本数。这种做法给了用户充分的自由度,也能充分利用资源,减少资源浪费。但对容器云平台运维方要求高,需要建立良好的容器云平台资源池监控和告警机制,可快速扩容,并使资源池保有一定的冗余量,以应对可能发生的业务量突增。(2)固定几个pod规格(比如2C4G、4G8G等)供用户选择,如要突破需单独申请。这种做法便于运维方管理,但会带来一定量的资源浪费,一定范围内增加容器云平台的资源成本投入。具体哪种方做法适合己方单位,还需根据自身条件综合评估。
对于磁盘,建议应用系统将日志接入到日志中心,业务文件保存到文件平台或数据库,其他一般不特别限制pod使用宿主机磁盘空间。
对于网络,一般不建议pod使用hostnetwork模式,而通过ingress对外提供访问。
平时,只要资源使用量在30-40%左右,忙时,资源使用量在60-70%左右,是比较合理的。但是一般由于IDC服务器不可能全部充满,所以实际很难达到这个目标。
个人觉得,私有云主机需要保持一台冗余预留,其余的使用提供服务利用率高一些是可以的。
保证在故障中可以切换,然后高峰利用率保持在90%以内。应该就可以了,预留10%给突发情况和虚拟化软件本身使用。
如果条件允许,有停机窗口的话,停业务进行扩容,尽量避开业务高峰期扩容;扩容的量根据数据增速度和未来预估的量进行衡量。
私有云的资源主要考虑CPU、内存、存储。大部分私有云,CPU一般不是瓶颈,主要是扩内存和存储。内存和存储的使用率不要超过80%,考虑到企业采购流程,在70%左右就要启动流程。不同的私有云扩容方式有区别,需要考虑到扩容是否会中断业务、是否要做存储数据rebalance。
相关推荐