由k8s升级慢引起的etcd性能不足的问题排查

在本例中,fio 是唯一的 I/O,但在实际场景中,除了和 wal_fsync_duration_seconds 相关联的写入之外,很可能还会有其他写入存储的操作,因此,如果从 fio 观察到的 99th 百分比略低于 10ms 时,可能并不是因为存储不够快。执行多次测试的时候 ,由于命令行参数过多影响,不太直观,可以将参数写到配置文件中,把全局变量和测试变化的参数写在不同的块里,最后运行即可,比如我们要测试多个rw场景 write,readwrite ,可以写配置文件 fio_yace.cfg。
摘要由CSDN通过智能技术生成

一、基本介绍
最近etcd查看出现性能
curl --cacert /path/to/etcdctl-ca.crt --cert /path/to/etcdctl.crt --key /path/to/etcdctl.key https://:2379/metrics | grep etcd_disk_wal_fsync_duration_seconds_bucket
当集群规模突破过大时规模时,曾出现如下性能瓶颈问题:
etcd 出现大量的读写延迟,延迟甚至可达分钟级;
kube-apiserver 查询 pods / nodes / configmap / crd 延时很高,导致 etcd oom;
etcd list-all pods 时长可达 30 分钟以上;
etcd 集群曾因 list-all 压力被打垮;
控制器无法及时感知数据变化,如出现 watch 数据延迟可达 30s 以上。

二、安装测试
FIO是一款开源的 I/O 压力测试工具,主要是用来测试磁盘的IO性能。它可以支持多种不同的I/O引擎。
可安装fio测试
fio 官网地址:http://freshmeat.net/projects/fio/
fio文档:https://fio.readthedocs.io/en/latest/index.html
1-依赖
yum install libaio-devel
yum install fio
fio支持的读写模式包括顺序读,随机读,顺序写,随机写,混合随机读写,混合顺序读写。常用参数包括引擎,队列深度,线程,block,是否裸设备,读写方式,大小/耗时,跳过缓存等。以下是对这些参数的简单介绍:
参数
filename=/dev/sdc 支持文件系统或者裸设备,压测多个磁盘 --filename=/dev/sda:/dev/sdb
direct=1 测试过程绕过机器自带的buffer,使测试结果更真实
rw=randwread 测试随机读的I/O
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机混合写和读的I/O
rw=read 测试顺序读的I/O
rw=write 测试顺序写的I/O
rw=rw 测试顺序混合写和读的I/O
bs=4k 单次io的块文件大小为4k
bsrange=512-2048 同上,指定定数据块的大小范围
size=50g 本次的测试文件大小为50g,以每次4k的io进行测试<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stestack

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值