推荐的硬件配置

etcd通常在开发或测试的时候用很少的资源就可以了,比如说使用普通的笔记本或者是廉价的云主机就可以,但是在生产环境上,还是需要按推荐的硬件配置进行部署,虽然这不是必须的,但是这样做可以增加集群的健壮性。一如既往,在上生产环境之前,需要先进行负载模拟测试。

CPUs

很少有etcd部署需要大量的CPU资源。典型的etcd部署节点,需要2-4个CPU就可以顺利运行。负载很高的etcd集群,比如上千客户端或者每秒超过上万请求,倾向于CPU绑定,可以直接从内存获取请求。即便这样重的负载,通常需要8-16个CPU就可以了。

内存

etcd占用的内存相对比较小,但是etcd性能仍然取决于是否拥有足够的内存。一个etcd服务器会积极的缓存key-value数据和大部分的跟踪watcher。通常8GB内存就够了,对于负载高的集群,比如有上千watcher和超过百万的keys,相应的就需要16GB-64GB内存。

磁盘

高速磁盘是保证etcd部署性能和稳定性的关键因素。

慢磁盘会增加etcd的请求延时,潜在影响集群的稳定性。因为etcd一致性协议依赖于元数据写入持久化日志,并且要求集群大多数成员将请求写入磁盘。此外,etcd还会到磁盘上增量检查集群的状态,从而可以截断日志。如果这些写操作花费太长的时间,心跳就可能会超时,触发选举操作,从而破坏集群的稳定性。

etcd对磁盘写入延时非常敏感。通常稳定达到50 IOPS(比如:一个7200转的磁盘)是必须的,对于负载很高的集群,推荐能稳定达到500 IOPS(比如:一个典型的本地SSD盘或者高性能的虚拟块设备盘)。注意,大多数云服务提供商发布的是瞬时并发IOPS,并不是稳定的IOPS,瞬时并发IOPS可能十倍于稳定连续的IOPS(说明:因为瞬时并发IOPS可能会写缓存,或者测试时无其他用户竞争磁盘资源,所以会很高,当测试时间很长后,就会测试出设备的真实IOPS能力,这个在国内云厂商基本没有这个问题)。测试稳定连续IOPS,我们建议使用磁盘基准测试工具,比如 diskbench 或者 fio。

etcd对磁盘带宽没什么要求,但是更大的磁盘带宽可以在失败节点加入集群时,更快的完成恢复操作。通常10MB/s带宽的磁盘15s可以恢复100MB的数据,对于大型集群,100MB/s或更高带宽的磁盘可以在15s内恢复1GB数据。

如果有可能,etcd后端存储就用SSD。一个SSD磁盘和机械盘相比,通常会提供更低的写入延时和更少的数据跳变(variance),因此可以提高etcd集群的稳定性和可靠性。如果使用机械盘,尽可能使用最快的(15000转)。使用RAID 0也是一种有效提高磁盘性能的方法,不管是机械盘还是SSD都可以。etcd集群至少有3个节点,磁盘使用RAID做镜像或者做奇偶校验都是不必要的,因为etcd自身的一致性复制已经保证了数据的高可用。

网络

多节点部署的etcd集群会受益于快速和可靠的网络。为了满足etcd集群的一致性和分区容忍,一个不可靠网络出现网络分区会导致部分节点无效。低延时可以保证etcd成员之间快速通信,高带宽可以减少etcd故障节点的恢复时间。1Gb网络就可以满足常见的etcd部署场景,对于大型etcd集群,使用10Gb网络可以减少平均故障恢复时间。

如果有可能,尽量将所有etcd成员节点部署在同一个数据中心,这样可以避免网络延时开销,降低发生网络分区的可能性。如果需要另外的数据中心级故障域,尽量选择和当前数据中心离得比较近的。也可以阅读性能调优文档,了解跨数据中心部署的更多信息。

示例硬件配置

这有一些在AWS和GCE环境上的硬件配置例子。如上所述,但是还是有必要再强调一下,无论如何,管理员在将etcd集群投入生产环境使用之前,都应该做一下模拟负载测试。

请注意:这些配置假设这些服务器只用来跑etcd服务。如果在这些服务器上还跑其他服务,可能会导致其他服务和etcd抢资源,存在资源竞争问题,导致etcd集群不稳定。

小型集群

一个小型集群服务少于100个客户端,访问请求小于每秒200,并且存储不超过100MB的数据。

示例应用负载:一个50节点的kubernetes集群

提供商

类型

vCPUs

内存 (GB)

最大并发IOPS

磁盘带宽 (MB/s)

AWS

m4.large

2

8

3600

56.25

GCE

n1-standard-2 + 50GB PD SSD

2

7.5

1500

25

中型集群

一个中型集群服务少于500个客户端,访问请求小于每秒1000,并且存储不超过500MB的数据。

示例应用负载:一个250节点的kubernetes集群

提供商

类型

vCPUs

内存 (GB)

最大并发IOPS

磁盘带宽 (MB/s)

AWS

m4.xlarge

4

16

6000

93.75

GCE

n1-standard-4 + 150GB PD SSD

4

15

4500

75

大型集群

一个大型集群服务少于1500个客户端,访问请求小于每秒10000,并且存储不超过1GB的数据。

示例应用负载:一个1000节点的kubernetes集群

提供商

类型

vCPUs

内存 (GB)

最大并发IOPS

磁盘带宽 (MB/s)

AWS

m4.2xlarge

8

32

8000

125

GCE

n1-standard-8 + 250GB PD SSD

8

30

7500

125

超大型集群

一个超大型集群服务超过1500个客户端,访问请求超过每秒10000,并且存储超过1GB的数据。

示例应用负载:一个3000节点的kubernetes集群

提供商

类型

vCPUs

内存 (GB)

最大并发IOPS

磁盘带宽 (MB/s)

AWS

m4.4xlarge

16

64

16,000

250

GCE

n1-standard-16 + 500GB PD SSD

16

60

15,000

250

官方原文链接:https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/hardware.md

转载于:https://blog.51cto.com/dangzhiqiang/2286890

etcd官方推荐的硬件配置相关推荐

  1. pfSense book之硬件配置指南

    硬件 最低硬件要求 硬件选择 硬件配置 硬件优化和故障排除 pfSense软件发行版与FreeBSD支持的大多数硬件兼容. pfSense2.4和更高版本与64位(amd64,x86-64)体系硬件架 ...

  2. GAAS使用的硬件配置

    摘自:https://github.com/generalized-intelligence/GAAS/tree/master/hardware List of Recommended Hardwar ...

  3. SketchUp等设计软件官方推荐电脑配置 |干货

    作者:活力网小编 小编分享SketchUp等软件官网推荐配置,个人再根据预算进行相应的配置.于是,小编寻求基友帮忙,搜集了常用软件的官方推荐配置要求,现在贴出来供大家参考. 文章撰写于2018年11月 ...

  4. 基因测序、生物信息分析平台工作站硬件配置推荐2020

    (一)了解生物信息学 生物信息学(Bioinformatics)利用应用数学.信息学.统计学和计算机科学的方法研究生物学的问题.生物信息学的研究材料和结果就是各种各样的生物学数据,其研究工具是计算机, ...

  5. 英伟达RTX 2080/2080Ti发布及UltraLAB采用最新turing图灵架构深度学习硬件配置推荐

    英伟达在今晚的发布会上正式公布了全新的RTX 2070.RTX 2080以及RTX 2080Ti显卡,Turing GPU基于台积电12nm+工艺,完整的TU102核心(Quadro RTX 8000 ...

  6. 计算机硬件intel的商标,电脑硬件配置品牌详细介绍推荐

    购买电脑硬件配置的时候,总是会犹豫,不知该买哪款比较好,下面是学习啦小编为大家介绍电脑硬件配置品牌,欢迎大家阅读. 电脑硬件配置品牌 CPU:AMD和Intel(英特尔),民用CPU品牌也就这2个,个 ...

  7. 结构、流体、热分析、多物理场耦合、电磁仿真硬件配置推荐2018

    (一)有限元分析介绍 有限元分析(FEA)借助高性能计算机工具,用"数值近似"和"离散化"方法对真实物理系统(几何和载荷工况)进行模拟,如求解结构.热传导.电磁 ...

  8. Microsoft HPC Pack 2016部署Comsol Multiphysics多物理场耦合并行计算以及超大规模仿真计算集群硬件配置推荐

    并行计算(Parallel Computing)是指同时使用多个计算资源解决计算问题.并行 计算的主要目的是快速解决大型复杂的计算问题,或者节约成本--使用多台"廉价" 计算机取代 ...

  9. vscode之python框架flask 断点调试的配置(官方推荐的配置,务必注意端口)

    flask的配置务必注意端口,默认端口5000如果被占用,你访问的数据无法返回,请更换端口! 更多细节配置,看官方文档,最权威:Debugging configurations for Python ...

最新文章

  1. 推荐|一个地面机器人采集的大型数据集
  2. python中字符串格式化
  3. android去掉button默认的点击阴影
  4. 生活大爆炸第6季第12集
  5. 哲理故事与管理之道(3)-不要吝惜赞美
  6. 本文将向您展示如何在 Flutter 中编码/解码 JSON
  7. CodeForces - 236D Let‘s Play Osu!(概率dp)
  8. p6s与onvif_大华的录像机添加海康摄像头,使用了onvif协议,为啥也添加不进去?...
  9. Java集合面试题(总结最全面的面试题)
  10. 推荐5个4K视频下载网站 (百万优质资源)
  11. Python爬取全站妹子图片,差点硬盘走火了!
  12. DB2操作指南及命令大全
  13. MySQL8.0无法启动3534的解决方法
  14. 项目采购管理和干系人管理
  15. CleanMyMac最新2020注册机
  16. Visual Studio Code中设置HTML/HTML5模板
  17. 装修新房该不该换电线
  18. 盲盒源码开发附搭建教程
  19. create-react-dom脚手架中图片的路径问题
  20. mysql 详解YEAR() MONTH() DAYOFMONTH()日期函数

热门文章

  1. ShardingSphere(八) 分库分表的多种分片策略
  2. ShardingSphere(四) 垂直分库配置搭建,实现写入读取
  3. Git初始化本地已有项目并上传到远端仓库
  4. springboot + vue项目跨域请求解决方案
  5. 网页截图和svg模版动态生成图片Java实现
  6. Android Retrofit框架请求复杂json数据
  7. centos 7 mysql 导入_linux centos7.3导出、导入、Mariadb(MySQL)数据库命令
  8. rust中使用cargo expand查看被宏隐藏的代码
  9. 理解SQL Server中的权限体系(下)----安全对象和权限
  10. css sprites css精灵