马上春节了,老白也一直在想去找点新东西玩玩。正好找到一个高斯100的安装包,于是装了一套体验一下。高斯100的安装包只有300多M,里面包含了数据库及一些相关工具。高斯的安装工具都是PYTHON写的,对PYTHON熟的还是很亲切的,安装国产中遇到问题,也比较容易通过PYTHON代码找到问题。安装前需要填写一些配置文件,不像Oracle gui一样在界面中配置,对于一些老人来说,还是挺方便的,可能习惯GUI的人会觉得不爽。不过华为也提供了FUSION INSIGHT的集群管理器,使用这个集群管理器的GUI也可以完成安装,不过部分配置还是要手写配置文件的。
网传高斯100是PG,实际上,高斯100有两个版本,一个版本是PG,这个华为准备开源了。而商用版本和PG差别还是挺大的。首先这个版本是单进程,多线程的,和PG多进程是完全不同的架构。

高斯100的目录结构分为两个部分,一个部分是程序,一个部分是数据。

看到bin下空空如也是不是有点意外,高斯100的工具都是另外的包,需要另外安装。zengine就是主引擎。
另外一部分就是数据库本身了。这个目录结构也比较简单:

archive_log是存放归档日志的,cfg是配置文件,data下是数据文件,log下是日志。高斯的日志比较复杂:

run目录下是运行日志,oper下是操作日志,包括数据库执行的SQL,audit是审计日志。
高斯是十分仿真Oracle的,配置文件也十分类似,参数也有一定的类似性。

简单的配置一下,我们就上路了。高斯100的CBO缺省是关闭的,不知道是什么原因,是不是CBO还不够成熟?
由于高斯100和Oracle十分类似,所以我们把benchmark的Oracle配置文件稍微改一下,就可以让benchmark支持Oracle了。首先创建一个100个仓库的测试环境,然后开始benchmark压测。


然后开始600个客户端的压测,同时看看数据库的情况如何。使用zsql登录数据库的国产也十分愉快,因为Oracle的as sysdba居然也能用:

唯一不够流畅的地方就是还需要回答一个CA安全的提问。登录进去后,居然我很顺利的跑了一个查看系统等待事件的SQL,这是ORACLE dba必须掌握的一条SQL:

不仅SQL能跑,查询出来的结果也让我这个Oracle DBA感觉十分舒坦,不需要太多的学习就可以掌握了。当然V$SYSSTAT也是必须有的:

只是里面的指标数量目前还不多,对于一般的监控来说,也够用了。

我们没有做太多的调整,就跑了一下TPCC测试,在这台2路36 C/64G的服务器上,跑到将近100W TPMC,还算不错吧。单进程的数据库内存很重要,如果内存扩到256G,再优化一下,应该跑到150W没啥问题。这时候的等待事件是这样的:

看看操作系统情况,CPU使用率是比较低的,有超过50%的空闲:

从IO上看,写IO较大,写IOPS接近4万,吞吐量500M+

这时候,我使用zsql查询一些内部视图已经感觉到有点慢了,这是多线程单进程数据库的一个通病,CPU使用率不是很高,但是性能已经有点问题了。
高斯100有类似AWR的机制,每隔30分钟自动采集一个SNAP。

我们来看看刚才的WSR报告



对于一个ORACLE DBA来说,是不是太熟悉了。高斯100在运维特性与ORACLE的兼容上做的还是不错的。
今天只是初步看了看高斯100,后续老白团队将会继续研究高斯,以后慢慢再来和大家分享吧




