cici
#1
【 使用环境 】测试环境
【 OB 】
【 使用版本 】OceanBase_CE 4.1.0.1
【问题描述】datafile_size设置为300G时,数据库初始化自举超时。在自举之前,已经设置了超时时间。datafile_size设置为200G时,初始化自举时间为1 min 4.523 sec,虽然初始化时间比较慢,但至少不会超时。
想请问一下:1.oceanbase官网写的datafile_size取值范围支持无穷大,但是本地测试设置为300G时,初始化就超时了,需要如何处理呢?
2.当datafile_size值较大时,自举初始化慢的现象有什么配置或者方法能调优吗?
君野
#3
datafile_size这个理论上没有限制, 另外我看你部署的版本比较老,可以试下4.2.1或者4.2.2版本,包含了一些启动优化
cici
#5
datafile_size值理论上确实没有限制,官网也没有限制。 但是datafile_size设置的值很大时,比如300G,数据库初始化直接就超时了,没法初始化。 这不是问题吗?
cici
#6
请问一下,4.2.1或者4.2.2版本,如果数据文件datafile_size 400G,数据库初始化可以做到很快吗?有验证过吗?
君野
#7
400G也不算大,正常启动都比较快。另外datafile_size跟启动速度应该也没什么关系。ob是会预占位磁盘,可以排查下是不是你环境磁盘的性能问题?
cici
#8
datafile_size和数据库初始化,自举操作也就是alter system bootstrap ZONE ‘zone1’ SERVER ‘127.0.0.1:2882’; 有关系吧?
君野
#9
启动时通过fallocate分配datafile虽然会有一定的耗时,但不是主要的耗时,这块一般速度都挺快。你尝试下最新的版本或者换块性能更好的磁盘试试呢
sstable 目录下的 block_file 是 bin/observer 进程第一次启动成功(监听到 2881和2882端口)时就初始化好了。并且这个初始化使用的 是 fallocate 方法。几个 T 的文件都能很快生成(近似空文件)。
bootstrap 的性能跟磁盘 IO 性能、CPU、网络(单节点就跟网络关系不大)有一定关系。datafile 大了不会直接导致 bootstrap超时,但是盘性能差 是大概率会超时(可能bootstrap 要初始化一些内部对象会读写数据文件)。
cici
#11
使用最新版本4.2.2.0,datafile_size设置为300G,自举十五分钟还未完成,还卡着在。这是磁盘io数据,ob使用的是vdb,dm-6。并没有达到磁盘瓶颈。 这个自举过程太长了,而且还没结束,可能大概率又是超时。
cici
#12
PostgreSQL数据库初始化385G的磁盘空间都没有这个慢。 相同的磁盘,ob datafile大小为300G,bootstrap 15分钟还未好,目前看大概率又是超时。用的是最新版本OceanBase_CE 4.2.2.0。 真的是盘性能差导致的吗?
可能性不大。此前我在 sas 盘上都能成功。估计有别的原因。
建议你从头发一下你的步骤。
- OB 的安装目录结构。
假设你安装在 /home/admin/oceanbase
下。那发一下命令
tree /home/admin/oceanbase > ~/ob_tree.txt
发结果文件。
- 发一下机器环境信息。
uname -a
lscpu
cat /etc/sysctl.conf
cat /etc/security/limit.conf
lsblk
df -h
free -h
cat /proc/meminfo
ifconfig
hostname -i
- 发一下 OB 进程第一次启动命令(看参数)
发 bin/observer xxxxxx 这个命令
或
ps -ef|grep observer
- 发一下 bootstrap 失败后的 最近的一个
log/observer.log
cici
#14
将/proc/sys/fs/file-max里的值设置大了一些后,observer.log的报错日志,请问这个threshold=1.00s,是哪个参数的限制?bootstrap之前设置了set session ob_query_timeout=36000000000;
bootstrap 问题分析不建议首先看日志(日志太难懂),可以先发一下我前面提到的那些命令的结果或截图。
cici
#16
解决了,是因为open files值太小原因导致,将open files值设置大一点,300G首次启动,初始化大概两三分钟。
1 个赞