进阶教程共建投稿《云服务器上 OB 部署实践》积分发放贴

共建活动详情请参考:《OceanBase 4.x DBA 进阶教程》用户共建计划

@obpilot 的投稿内容详见:《云服务器上 OB 部署实践》

天使轮投稿,奖励 1000 积分,其他福利稍后也会一一兑现~

2 个赞

For @obpilot

谢谢!

首先非常感谢大佬的贡献 @obpilot

第一时间打开了这篇文章,没时间仔细读。今天仔细读了。谈谈个人想法,加深下印象,当记个笔记啦。若有不对的地方,还请指教。

1、测试场景建议包括 4KB、2MB 的顺序写 IO 和 16K 的随机读 IO 。

之前测试直接使用了现成脚本,基本都用的-rw=randwrite,看到这段,翻了下文档,结合AI助手的回答,总结了下。

  1. SSTable 的 IO(2 MB)
    》 OceanBase 数据库将磁盘切分为大小为 2MB 的定长数据块,称之为宏块(Macro Block),宏块是数据文件写 IO 的基本单位。

读写类型:顺序写为主。
原因:
SSTable 是 OceanBase 的存储引擎,数据以追加写(Append-Only)的方式写入磁盘,因此写操作是顺序的。

  1. slog、clog、ilog 的 IO(4 KB)
    读写类型:顺序写为主,顺序读为辅。
    原因:
    日志文件(如 slog、clog、ilog)是追加写入的,因此写操作是顺序的。
    日志的读取通常也是顺序的,例如在恢复或回放日志时。

  2. 数据文件的读取单位是微块(默认16KB)

读写类型:随机读为主。
》 在宏块内部数据被组织为多个大小为 16KB 左右的变长数据块,称之为微块(Micro Block),微块中包含若干数据行(Row),微块是数据文件读 IO 的最小单位。

2、关于做LVM条带化问题

因为我们主要也是在云服务器上部署OB,之前也做了fio的测试,不过是用的随机读和随机写。
读写带宽方面确实是条带化会好很多。但是写IOPS方面一块大盘还更好些。
考虑到做条带化的LVM扩容有一定局限性,操作比较麻烦(比如条带化是3,每次新扩容的盘必须是3的倍数)。我们最后还是选择用单块盘的方式。

3、 网卡速率的问题
我这边是企业版的,搜了下没搜到nic.rate.config这个文件。

我使用OAT安装的时候,校验不通过会提供一个脚本解决。

echo 10000 > /home/admin/eth0-speed.mock && mount --bind /home/admin/eth0-speed.mock /sys/class/net/eth0/speed && echo -e '\n/home/admin/eth0-speed.mock  /sys/class/net/eth0/speed  none  bind,nofail' >> /etc/fstab
2 个赞

哈哈,感谢咖啡哥老师的认真评论,不过这个只是个积分发放贴,麻烦老师把要讨论的内容复制一份儿到 【用户共建计划】云服务器上 OB 部署实践 这里吧~

我怎么记得官方的考试上在线课程有讲啊