首页 > 其他分享 >kubernetes学习笔记27:etcd性能

kubernetes学习笔记27:etcd性能

时间:2023-05-11 12:32:18浏览次数:53  
标签:boltdb 27 kubernetes 性能 value etcd 优化 lease

理解etcd性能:etcd集群架构图,包含raft层,storage层(storage层包含treeindex层和boltdb底层持久化存储key-value层),它们每一层都可能造成性能损失,raft层需要网络同步数据,网络io节点之间的rtt和带宽都会影响etcd性能,另外wal也会受到磁盘io的写入速度影响。

storage层,磁盘io fdatasync延迟会影响性能,索引层锁的BLOCK也会影响性能,另外boltdb tx锁以及boltdb本事性能也会影响性能,其他方面etcd所在宿主机内核参数和grpc api层的延迟也会影响性能。

怎么优化:硬件上面:用足够的CPU和memory,磁盘使用性能比较好的SSD固态硬盘,网络尽量要快,最后是单独部署,防止宿主机上其他程序的干扰。

软件上面:内存索引层优化(原来的是btree,锁粒度太粗),lease使用规模优化(优化lease过期和失效算法,降低遍历失效list的复杂度),后端boltdb优化(将后端batch size limit/interval进行调整,根据不同的硬件和工作负载进行动态可配置,不是固定值),谷歌工程师优化boltdb tx读写锁性能(完全并发读特效优化),基于segregated hashmap的内部存储freelist分配回收新算法。

客户端优化:put操心避免使用大value,避免创建大量的lease,尽量选择复用,尽量创建不频繁变动的key-value,比如k8s中的元数据信息。



标签:boltdb,27,kubernetes,性能,value,etcd,优化,lease
From: https://blog.51cto.com/u_16107052/6266010

相关文章

  • 一位27岁软件测试员,测试在职近5年,月薪不到2W,担心被应届生取代
    工作了近5年,一个月工资不到20K,担心被应届毕业生取代!互联网的快速发展伴随着员工适者生存的加速,测试员的薪资也在不断增长,以3年、5年、8年+为一条分水岭。如果人们的能力和体力不够,他们就会被淘汰。看起来生动的工作生活却让许多人焦虑不安。最近,一名来自211本科的测试工程师在脉......
  • 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。第一章 数组part01
    今天开始第一天,其实之前也刷过题,也写过博客,可是没有坚持下去;主要是没有动力吧,我又是一个严重的拖延症患者,还好遇到刷到Carl哥的视频,记得是在bilibili分享的二分法视频,感觉讲的挺好的,就加了微信;然后发现有刷题训练营,太适合我这种人了,果断加入,哈哈,废话不多说,开始刷题。  第......
  • Windows安装Wireshark实现127.0.0.1抓包
    Windows安装Wireshark实现127.0.0.1抓包 简介Wireshark(前称Ethereal)是一个网络封包分析软件。官网下载Npcap支持Win7及以上系统,基于WinPcap库,可以抓取通过127.0.0.1本地环回地址的包。官网WinPcap是Wireshark默认抓包工具,据Wireshark和Npcap的官网说不再更新......
  • Kubernetes概述 (一篇教你认识k8s)
    一、Kubernetes概述 1.k8s是什么K8S的全称为Kubernetes(K12345678S),PS:“嘛,写全称也太累了吧,不如整个缩写”。作用:用于自动部署、扩展和管理“容器化(containerized)应用程序"的开源系统。可以理解成K8S是负责自动化运维管理多个容器化程序(比如Docker)的集群,是一......
  • 每周总结回来啦!(11月27日起)
    上周忙着考试去了,这周一直在补上周的烂摊子,最后一门英语期中也终于考完了,后面的主旋律就是学算法学建模学英语,补笔记跟复习+写实验报告了写上大概一共要做些什么算法:Acwing蓝桥杯真题,周赛,算法课建模:学算法,以买的那本书作为目录去学英语:背单词吧,其他的暂时不知道咋安排笔记:生......
  • Kubernetes 使用 Ingress-nginx 实现灰度发布功能
    推荐阅读Helm3(K8S资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506Helm3(K8S资源对象管理工具)博客专栏:https://blog.csdn.net/xzk9381/category_10895812.html本文原文链接:https://blog.csdn.net/xzk9381/article/details/109570832,转载请注明出处。如有发现文......
  • Unable to open debugger port (127.0.0.11774) java.net.BindException Address alre
    解决intellijIDEA启动项目报错:Unabletoopendebuggerport(127.0.0.1:1774):java.net.BindException"Addressalreadyinuse:bind"cause(原因)端口被占用❗resolve(解决)netstat-aon|findstr"端口号"taskkill-f-pid进程号参考博客解决idea启动项目报错:U......
  • kubernetes集群故障处理思路
    kubernetes集群故障处理思路1.0 概述本文主要介绍了pod的创建流程,一般问题处理思路以及一些辅助的检查项,以编快速定位及解决问题1.1 kubernetes故障处理思路概览图k8s集群出现故障,一般可以从两大种情况看,个别pod异常和大量pod异常,针对两种情况,可以参考以下处理思路1.2 po......
  • Minikube:搭建部署单机 Kubernetes
    第一步:安装docker安装过程见连接 Centos安装docker-扰扰-博客园(cnblogs.com)第二步:安装VirtualBox2.1、直接使用yum源方式安装VirtualBox,配置正确的repo文件即可:[virtualbox]name=OracleLinux/RHEL/CentOS-$releasever/$basearch-VirtualBoxbaseurl=http......
  • 网关神器traefik的,etcd和https配置例子
    traefikv2httpsrouterserviceetcd边缘EdgeGateway博客园---【前言】---写本文目的:网上应该没有traefikv2配etcd的例子。traefik被我喜爱的原因:跨平台,支持win,linux版同时使用。同时支持监控目录和etcd。支持win,linux版同时使用。支持etcd的同时,支持watch文件......