单测程序使用了极简的C++代码模拟了Oceanbase4.1的日志持久化以及消费逻辑,基本确定是存储设备本身的问题。
临时解决方案:
- 重启才能解决,但基于回传的日志以及core文件,IBM的这块SSD出现问题的频率会非常高;
- 尝试换一块不同厂商的SSD。
单测程序使用了极简的C++代码模拟了Oceanbase4.1的日志持久化以及消费逻辑,基本确定是存储设备本身的问题。
临时解决方案:
跟/data/oceanbase/redolog这个挂载点使用率高有没有影响
/dev/mapper/vg_ob-lv_red 200G 180G 20G 91% /data/oceanbase/redolog
在另一台空间使用率比较低的同构机器上测试结果如下:
-bash-4.2$ ./a.out >/tmp/test.log
a.out: test.cpp:153: void Reader::read(int64_t): Assertion `false’ failed.
Aborted (core dumped)
-bash-4.2$ du -sh *
72K a.out
500K core.413914
101G ob_unittest
8.0K test.cpp
-bash-4.2$ vi /tmp/test.log
-bash-4.2$ cd ob_unittest/
-bash-4.2$ ll
total 104857604
-rw-rw-r-- 1 admin admin 107374182400 May 22 11:25 testfile
test_result.tar (2).gz (96.2 KB)
还有,有什么方法能提前检测ssd盘是否兼容的吗?
用我这个单测,如果长时间不出,基本就是没问题的,IBM那边也可以反馈下这个问题。
有没推荐的SSD厂商品牌?
可以试试Intel P4510,SAMSUNG PM9A3。
您好,这个问题我们又做了一些测试,有发现如果把磁盘做成raid1或者raid10,就不行,做jbod模式是正常的,想请问一下,咱们有没有推荐磁盘的冗余模式
目前测试结果来看,
1.当多块磁盘做成raid0,raid10,raid1测试程序都是运行异常,报错信息都为
a.out: test.cpp:153: void Reader::read(int64_t): Assertion `false’ failed.
Aborted (core dumped)
2.同样的硬件配置的物理机异常退出,报错信息同上,物理机上再建的虚拟机输出结果符合预期的(长时间不出结果)运行正常
3.单块盘jbod模式,测试代码输出结果是符合预期的(长时间不出结果)运行正常
4.目前主机都有使用阵列卡来挂载磁盘,测试来看有使用阵列卡时就有问题(a.out: test.cpp:153: void Reader::read(int64_t): Assertion `false’ failed.
Aborted (core dumped)),未使用阵列卡时正常。所以想咨询一下咱们这个产品是否支持阵列卡,对阵列卡配置是否有要求,能否提供配置文档?或推荐的服务器配置?
可以看下阵列卡的cache模式,write back 还是 write through,如果是write through的话,可以换成write back。
最近一次测试raid0时,cache的模式是write back,也是不行
抱歉,我说反了,应该改成write through,write back表示数据写到cache中就返回了。
好的,我们测试一下
改为write through,test.cpp测试结果正常了,感谢哈
厂商:AVAGO
型号:ThinkSystem RAID 930-24i 4GB Flash 12Gb Adapter
请教一下,如果OB集群是部署在exsi虚拟机上,vm宿主机上的阵列卡也需要设置成 write through 吗?
要的,无论上层是否虚拟化,磁盘访问都需要走到宿主机上。
这样性能不降低了吗???? 因为write through没有用到阵列卡的cache
OB 4.2.1 和 OB 4.2.2 两个版本,阵列卡采用默认的write-back模式,没有遇到这个问题。 OB 4.1 版本确实存在这个问题。