当前位置: 首页 > article >正文

etcd部署硬件资源推荐

etcd部署硬件资源推荐

原文:https://etcd.io/docs/v3.5/op-guide/hardware/

etcd 通常在开发或测试环境中运行良好,即使资源有限;在笔记本电脑或廉价云服务器上开发时,使用 etcd 也很常见。然而,在生产环境中运行 etcd 集群时,遵循一些硬件指南对于正确的管理非常有用。这些建议并非硬性规定;它们为稳健的生产部署提供了良好的起点。

正如以往一样,在投入生产之前,应使用模拟工作负载对部署进行测试。

CPUs

大多数 etcd 部署对 CPU 的需求并不高。典型的集群需要 2 到 4 个核心即可平稳运行。对于负载较重的部署,如服务成千上万的客户端或每秒处理数万个请求,可能会受到 CPU 限制,因为 etcd 可以从内存中处理请求。此类重负载部署通常需要 8 到 16 个专用核心。

内存(RAM)

etcd 的内存占用相对较小,但性能仍然依赖于足够的内存。etcd 服务器会积极缓存键值数据,并将大部分内存用于跟踪watchers。通常,8GB 的内存已足够。对于拥有成千上万watchers和数百万keys的重负载部署,建议分配 16GB 至 64GB 的内存。

磁盘(Disks)

快速磁盘是 etcd 部署性能和稳定性的最关键因素。

慢速磁盘会增加 etcd 请求的延迟,并可能影响集群的稳定性。由于 etcd 的共识(consensus)协议依赖于将元数据持久化存储到日志中,大多数 etcd 集群成员必须将每个请求写入磁盘。此外,etcd 还会定期将其状态增量地保存到磁盘,以便在需要时截断日志。如果这些写入操作太慢,心跳可能会超时并触发选举,从而破坏集群的稳定性。一般来说,要判断磁盘是否足够快,可以使用基准测试工具,例如 fio。可以在此处查看示例。

etcd 对磁盘写入延迟非常敏感。通常,需要 50 次顺序 IOPS(例如,7200 转速的磁盘)。对于负载较重的集群,建议使用 500 次顺序 IOPS(例如,典型的本地 SSD 或高性能虚拟化块设备)。请注意,大多数云服务提供商发布的是并发 IOPS,而非顺序 IOPS;发布的并发 IOPS 可能是顺序 IOPS 的 10 倍。要测量实际的顺序 IOPS,建议使用磁盘基准测试工具,如 diskbench 或 fio。

etcd 对磁盘带宽的要求适中,但更高的磁盘带宽可以在成员故障后更快地恢复。通常,10MB/s 的带宽可以在 15 秒内恢复 100MB 的数据。对于大型集群,建议提供 100MB/s 或更高的带宽,以在 15 秒内恢复 1GB 的数据。

如果可能,建议使用 SSD 来支持 etcd 的存储。SSD 通常提供比旋转磁盘更低的写入延迟和更小的延迟变化,从而提高 etcd 的稳定性和可靠性。如果使用旋转磁盘,建议选择最快的磁盘(如 15000 转速)。使用 RAID 0 也是提高磁盘速度的有效方法,适用于旋转磁盘和 SSD。对于至少有三个集群成员的情况,RAID 的镜像和/或奇偶校验变种并非必需;etcd 的一致性复制已能提供高可用性。

网络(Network)

多成员的 etcd 部署受益于快速且可靠的网络。为了确保 etcd 一致性和分区容忍性,不可靠的网络和分区故障会导致可用性差。低延迟确保 etcd 成员之间的快速通信。高带宽可以减少恢复失败成员所需的时间。对于常见的 etcd 部署,1GbE 网络已足够。对于大型 etcd 集群,10GbE 网络可以减少平均恢复时间。

如果可能,将 etcd 成员部署在同一数据中心,以避免延迟开销并减少分区事件的可能性。如果需要在另一个数据中心的故障域中部署,请选择距离现有数据中心更近的数据中心。有关跨数据中心部署的更多信息,请参阅调优文档。

示例硬件配置

以下是在 AWS 和 GCE 环境中的一些示例硬件配置。正如之前提到的,管理员应在将 etcd 部署投入生产之前,使用模拟工作负载进行测试。

请注意,这些配置假设这些机器完全专用于 etcd。在这些机器上运行其他应用程序可能会导致资源争用,从而导致集群不稳定。

小型集群

服务于少于 100 个客户端,每秒少于 200 个请求,存储不超过 100MB 数据。

示例应用工作负载:50 节点的 Kubernetes 集群

提供商类型vCPUs内存(GB)最大并发 IOPS磁盘带宽(MB/s)
AWSm4.large28360056.25
GCEn1-standard-227.5150025

中型集群

服务于少于 500 个客户端,每秒少于 1000 个请求,存储不超过 500MB 数据。

示例应用工作负载:250 节点的 Kubernetes 集群

提供商类型vCPUs内存(GB)最大并发 IOPS磁盘带宽(MB/s)
AWSm4.xlarge416600093.75
GCEn1-standard-4415450075

大规模(Large)集群

超大规模(Large)集群服务于少于 1500 个客户端,每秒少于 10000 个请求,存储不超过 1GB 数据。

示例应用工作负载:1000 节点的 Kubernetes 集群

提供商类型vCPUs内存(GB)最大并发 IOPS磁盘带宽(MB/s)
AWSm4.2xlarge8328000125
GCEn1-standard-8 + 250GB PD SSD8307500125

超大规模(xLarge)集群

超大规模(xLarge)集群服务于超过 1,500 个客户端,每秒处理超过 10,000 个请求,存储超过 1GB 的数据。

示例应用工作负载:3,000 节点的 Kubernetes 集群

提供商类型vCPUs内存(GB)最大并发 IOPS磁盘带宽(MB/s)
AWSm4.4xlarge166416,000250
GCEn1-standard-16 + 500GB PD SSD166015,000250

相关文章:

etcd部署硬件资源推荐

etcd部署硬件资源推荐 原文:https://etcd.io/docs/v3.5/op-guide/hardware/ etcd 通常在开发或测试环境中运行良好,即使资源有限;在笔记本电脑或廉价云服务器上开发时,使用 etcd 也很常见。然而,在生产环境中运行 etcd…...

MAVlink链路环境搭建并解决“ModuleNotFoundError: No module named ‘xxx’”问题

MAVlink链路常用于云台相机与飞控以及地面站之间的数据传输,搭建MAVlink链路环境需要安装Python、Future、MAVLink、pymavlink四样工具用于生成mavlink代码。 Python 直接从官网下载默认安装即可https://www.python.org/downloads/ 在电脑命令行进行安装验证&#x…...

ROS2软件调用架构和机制解析:Publisher创建

术语 DDS (Data Distribution Service): 用于实时系统的数据分发服务标准,是ROS 2底层通信的基础RMW (ROS Middleware): ROS中间件接口,提供与具体DDS实现无关的抽象APIQoS (Quality of Service): 服务质量策略,控制通信的可靠性、历史记录、…...

Android -- 使用Sharepreference保存List储存失败,原因是包含Bitmap,drawable等类型数据

1.报错信息如下: class android.content.res.ColorStateList declares multiple JSON fields named mChangingConfigurations 2.Bean类属性如下: data class AppInfoBean( val appName: String?, val appIcon: Drawable, val appPackage: String?,…...

java后端开发day23--面向对象进阶(四)--抽象类、接口、内部类

(以下内容全部来自上述课程) 1.抽象类 父类定义抽象方法后,子类的方法就必须重写,抽象方法在的类就是抽象类。 1.定义 抽象方法 将共性的行为(方法)抽取到父类之后。由于每一个子类执行的内容是不一样…...

Go - 泛型的使用

泛型的语法 泛型为Go语言添加了三个新的重要特性: 函数和类型的类型参数。将接口类型定义为类型集,包括没有方法的类型。类型推断,它允许在调用函数时在许多情况下省略类型参数。 类型参数 类型参数的使用 除了函数中支持类型参数列表外&#xff0c…...

蓝桥杯刷题-dp-线性dp(守望者的逃离,摆花,线段)

[NOIP 2007 普及组] 守望者的逃离 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。 守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。 为了杀死守望者,尤迪安开始对这个荒岛…...

内容中台的企业CMS架构是什么?

企业CMS模块化架构 现代企业内容管理系统的核心在于模块化架构设计,通过解耦内容生产、存储、发布等环节构建灵活的技术栈。动态/静态发布引擎整合技术使系统既能处理实时更新的产品文档,也能生成高并发的营销落地页,配合版本控制机制确保内…...

算法题(81):询问学号

审题: 需要我们根据给出的n值确定录入数据个数,然后根据给出的数据存储学号。再根据m值确定需要输出的学号个数,然后根据数组内容输出学号 思路: 我们可以利用数组进行数据顺序存储,以及随机读取完成本题 由于学号最大为1e9&#…...

React antd的datePicker自定义,封装成组件

一、antd的datePicker自定义 需求:用户需要为日期选择器的每个日期单元格添加一个Tooltip,当鼠标悬停时显示日期、可兑换流量余额和本公会可兑流量。这些数据需要从接口获取。我需要结合之前的代码,确保Tooltip正确显示,并且数据…...

C++ AVL树详解(含模拟实现)

目录 AVL树的概念 AVL树节点的定义 AVL树的插入 AVL树的旋转(难点) AVL树的验证 AVL树的删除(本文不做具体的模拟实现) AVL树的性能 AVL树的模拟实现 AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索…...

Spring Boot 3.x 系列【3】Spring Initializr快速创建Spring Boot项目

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言安装JDK 17创建Spring Boot 项目 方式1:网页在线生成方式2&#…...

Elasticsearch:过滤 HNSW 搜索,快速模式

作者:来自 Elastic Benjamin Trent 通过我们的 ACORN-1 算法实现,探索我们对 Apache Lucene 中的 HNSW 向量搜索所做的改进。 多年来,Apache Lucene 和 Elasticsearch 一直支持使用 kNN 查询的过滤搜索,允许用户检索符合指定元数据…...

TCP长连接与短连接

TCP长连接与短连接 TCP(传输控制协议)中的长连接和短连接是两种不同的连接管理方式,各有优缺点: 短连接 短连接是指客户端与服务器完成一次数据交换后就断开连接。下次需要通信时,再重新建立连接。 特点&#xff1…...

【AI测试学习】AnythingLLM+Ollama+DeepSeek部署私人知识库

1.搭建DeepSeek大语言模型 1.1Ollama大预言模型部署 Ollama简化了大型语言模型的运行,让每个人都能在本地轻松体验AI的强大,打开浏览器-下载Ollama-输入命令-搞定,这是本地部署大语言模型的全新方式。 这里我们借助Ollama大预言模型部署工具进行搭建 官网如下:Ollama …...

防流、节抖、重绘、回流原理,以及实现方法和区别

防流、节抖、重绘、回流原理,以及实现方法和区别,还有就是为什么会出现这种情况? 防抖(Debounce) 原理 防抖就像是你坐电梯,如果你一直不停地按开门按钮,电梯不会每次都开门,而是…...

通义灵码插件安装入门教学 - IDEA(安装篇)

在开发过程中,使用合适的工具和插件可以极大地提高我们的工作效率。今天,我们将详细介绍如何在 IntelliJ IDEA 中安装并配置通义灵码插件,这是一款旨在提升开发者效率的实用工具。无论你是新手还是有经验的开发者,本文都将为你提供…...

ES、OAS、ERP、电子政务、企业信息化(高软35)

系列文章目录 ES、OAS、ERP、电子政务、企业信息化 文章目录 系列文章目录前言一、专家系统(ES)二、办公自动化系统(OAS)三、企业资源规划(ERP)四、典型信息系统架构模型1.政府信息化和电子政务2.企业信息…...

用大白话解释缓存Redis +MongoDB是什么有什么用怎么用

Redis和MongoDB是什么? Redis:像你家的“小冰箱”,专门存高频使用的食物(数据)。它是基于内存的键值数据库,读写速度极快(每秒超10万次操作)。比如你每次打开手机App,用…...

华为数通Datacom认证体系详解:从HCIA到HCIE的进阶路径

华为数通Datacom(Data Communication)课程是华为认证体系中的核心方向之一,聚焦企业网络通信与数据通信技术,适合从事网络规划、部署和运维的人员。 一、数通Datacom课程体系 华为数通Datacom认证分为 三个级别,逐级递…...

PyTorch 的 nn.NLLLoss:负对数似然损失全解析

PyTorch 的 nn.NLLLoss:负对数似然损失全解析 在 PyTorch 的损失函数家族中,nn.NLLLoss(Negative Log Likelihood Loss,负对数似然损失)是一个不太起眼但非常重要的成员。它经常跟 LogSoftmax 搭配出现,尤…...

《数据安全架构设计与实战》的目录

《数据安全架构设计与实战》的目录如下1: 第一部分 安全架构基础 第 1 章 架构第 2 章 安全架构 2.1 什么是安全2.2 为什么使用 “数据安全” 这个术语2.3 什么是安全架构2.4 安全架构 5A 方法论2.5 安全架构 5A 与 CIA 的关系 第二部分 产品安全架构 …...

python-leetcode-删除并获得点数

740. 删除并获得点数 - 力扣(LeetCode) 解法 1:动态规划(O(n) 时间,O(n) 空间) class Solution:def deleteAndEarn(self, nums: List[int]) -> int:if not nums:return 0# 统计每个数的贡献points Cou…...

助力DeepSeek私有化部署服务:让企业AI落地更简单、更安全

在数字化转型的浪潮中,越来越多的企业选择私有化部署AI技术,以保障数据安全、提升业务效率并实现自主可控。DeepSeek作为行业领先的AI开源技术,其技术可以支持企业私有化部署,企业需要一站式服务私有化部署,涵盖硬件采…...

Android JNI开发指南

了解Android JNI开发。首先,我需要回忆一下JNI的基本概念和作用。JNI允许Java代码与本地代码(如C/C)交互,这在需要高性能或者使用现有C/C库时非常有用。 接下来,我应该整理开发步骤。用户可能想知道如何开始&#xff…...

【每天认识一个漏洞】url重定向

🌝博客主页:菜鸟小羊 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 常见应用场景 主要是业务逻辑中需要进行跳转的地方。比如登录处、注册处、访问用户信息、订单信息、加入购物车、分享、收…...

纯代码实战--用Deepseek+SQLite+Ollama搭建数据库助手

如何用Python调用本地模型实现DeepSeek提示词模板:一步步教你高效解决13种应用场景 从零到一:纯代码联合PyQt5、Ollama、Deepseek打造简易版智能聊天助手 用外接知识库武装大模型:基于Deepseek、Ollama、LangChain的RAG实战解析 纯代码实战–…...

2025 最新版鸿蒙 HarmonyOS 开发工具安装使用指南

为保证 DevEco Studio 正常运行,建议电脑配置满足如下要求: Windows 系统 操作系统:Windows10 64 位、Windows11 64 位内存:16GB 及以上硬盘:100GB 及以上分辨率:1280*800 像素及以上 macOS 系统 操作系统…...

日期时间 API

日期时间 API (java.time 包),旨在解决旧版 java.util.Date 和 java.util.Calendar 存在的一些设计缺陷,比如线程不安全、时区处理不一致等问题。新 API 基于 ISO 8601 标准,更加直观、简洁,且支持时区和区域设置。主要类有&#…...

AI数字人开发,引领科技新潮流

引言 随着人工智能技术的迅猛发展,AI 数字人在影视娱乐、客户服务、教育及医疗等多个领域展现出巨大的潜力。本文旨在为开发者提供一份详细的 AI 数字人系统开发指南,涵盖从基础架构到实现细节的各个方面,包括人物建模、动作生成、语音交互、…...