Linkman的学习记录

学习记录,兴趣方面:实时数据库、MES、SIS、工控软件、C++编程、人机界面、嵌入式软件、可视化等

VC知识库BLOG 首页 新随笔 联系 聚合 登录
  100 Posts :: 16 Stories :: 441 Comments :: 0 Trackbacks

留言簿(22)

随笔分类

随笔档案

文章分类

文章档案

传说中的名人

我的链接

朋友

搜索

最新评论

阅读排行榜

评论排行榜

国产实时数据库真的比洋品牌差吗?我不信。
一个月之前,我们与某公司商谈合作,讨论将我们的实时数据库OEM到他们的MES系统中,这个公司的老总是我多年的老相识,也是多年的老朋友,他这么对我说:老Linkman呀,我们合作吧,在2万点以下这一档次,我们公司全面OEM你们的实时数据库,2万点以上,我们还是准备使用国外的实时数据库产品,毕竟,在2万点以上的系统中,国外的实时数据库产品的性能和稳定性要强于国产实时数据库产品。
 
听到这些话,我有点欣慰,也有点失落。欣慰的是,曾几何时,一提到实时数据库,大家都只能想到国外的实时数据库产品,铁定只选用国外的实时数据库产品,根本不会考虑国产实时数据库,现在,至少在2万点这一档次上,我们已能与国外的实时数据库产品正面抗衡,很多用户已经认为国产实时数据库是一种很好的选择;失落的是,我们要真正证明自己,还有很长的路要走,即便我们说自己行,那也不一定行。
 
我当时并没有说任何话,能争取到2万点系统的OEM,对我们来说,已经是一个很大的胜利,只要给我们机会,我们就能更好地证明自己,再多的空话也是多余,先将眼前的事情做好吧,但我有理由相信,最多再过一年,我的那位朋友的观点会改变,我们值得他选择。我有这个自信,因为我熟悉我们产品的每一处细节,知道她的真正情况,也知道他的真实能力,就象了解我的小孩的每一处细节一样。
 
这一次投标更有意思,国内国外多家实时数据库厂家在客户现场直接PK,由我们与客户一起来做各种功能和性能测试,当我们做完了实验,提交了测试报告之后,客户的一位主管要求我们重做某一项实验。我们很配合地重做了这项实验,最终实验效果比我们第一次做的实验的效果还要好。
 
下面是这次测试的服务器配置:
数据库服务器硬件配置
名称
型号及说明
配件数量
数量
CPU
四核 Intel xeon x5450 3Ghz
2
1
内存
8G DDR2
1
硬盘
146G 15krpm SAS
1
网卡
千兆
1
数据库服务器软件环境
名称
型号及说明
操作系统
Windows Server 2003中文版
C盘剩余空间
4.12G NTFS
D盘剩余空间
128G NTFS
 
重做的实验为“以1秒为单位采集及写入数据时,记录服务器的各种负荷”,具体要求为:由客户工程师监护,实时数据库厂家做将采集模拟器放在与服务器不同的客户机上,以1秒为单位模拟采集及写入试验,并记录不同实时数据库容量下,服务器的各种负荷。
 
操作步骤:
A、 启动实时数据库,数据库中已保存需测试的工程测点,总容量为60万点;
B、 启动模拟采集器,以1秒为单位产生模拟数据,分别产生30万点、60万点的测试数据;
C、 连续运行30分钟;
D、 观察数据是否能够在规定的时间内写入,记录每次测试的CPU负荷等;
 
下面是测试结果:
服务器容量
60万点
工程测点总容量
60万点
数据是否全部保存
是,40万个模拟量,12万个整型量,8万个开关量
失真率是否满足要求
是,模拟量失真度0.5%,其它不失真
数据波形是否符合要求
是,模拟量和整型量以幅度100,周期300秒的正弦,开关量周期60
模拟器数据产生频率
1
是否能够在规定的时间内写入数据库
实时数据库服务器运行状态记录
观察
时间
点数
(万)
CPU使用
物理内存使用
最高单核CPU使用
虚拟内存
备注
13:05
30
6%
446M
38.9%
283M
一个模拟器,同步送30万点
15:48
60
9%
558M
22.2%
305M
两个模拟器,分别异步送30万点。
 
下图是以单模拟器1秒同步插入30万点时的CPU负荷图:

下图是以两个模拟器以1秒为单位异步插入60万点时的CPU负荷图:

 
这个实试说明以下几个问题:
A、 我们的实时数据库可以轻松地实现单服务器60万点容量(后来我自己又做了单服务器90万点容量的插入实验,性能同样不错);
B、 将模拟器的数据由1个改为两个,通讯方式由同步改为异步时,性能大大提高,终于利用了客户那么高档的多CPU多核计算机的优势,而且,随着模拟器数量的增加和通讯客户端的增加,利用多核的优势越明显;
C、 我们的实时数据库性能还有很大提升空间,如果在程序设计中充分考虑多核的并发处理,性能至少可以提高3-4倍。或者,直接运行3-4个实例,那样,我们的单台实时数据库服务器可以轻松地支持200万-300万点。
 
我能想象得到,这位主管为什么要让我们重做这项实验,因为在这一证明实时数据库性能的实验中,我们的试验数据甚至比国外的实时数据库的性能指标还要高得多,他有理由怀疑,我们是不是在作假,而我们毫不犹豫地配合重新做了这个实验,并愿意在不同环境下重做(不同的计算机、更长的实验时间,不同的网络环境等),更说明我们的自信,只有这样,我们才能得到用户的认可和尊重。
 
都说国外的实时数据库要比国内的实时数据库强,我一直不服气,相信国产实时数据库能超越那些国外的品牌,不仅仅是某一项指标,而是全面超越,不仅仅是内核,而是整体,不仅仅是性能,而是包括性能、功能和稳定性,我已为这个信念投入了三年的时间,而且以后愿意投入更长更多的时间,相信在不久的将来,我们可以真正得到用户的认可,可以在高端实时数据库市场与国外实时数据库产品全面抗衡,乃至超越,乃至战胜!
posted on 2008-11-29 00:35 Linkman的学习记录 阅读(2293) 评论(11)  编辑 收藏

Feedback

# re: 国产实时数据库真的比洋品牌差吗 2008-11-29 09:04 lostpencil
性能不是产品的关键,营销途径,服务才是,好不好得看后两个的。
国内大部分都是技术男搞出来的东西,所以有待提高,呵呵

# re: 国产实时数据库真的比洋品牌差吗 2008-11-29 09:55 zuilang
是啊,用国外品牌,出问题了人家第一个想到的是他们的电话,心里比较有底。

# re: 国产实时数据库真的比洋品牌差吗 2008-12-03 10:29 纯净水设备
为什么要让我们重做这项实验

# re: 国产实时数据库真的比洋品牌差吗 2008-12-16 20:24 shifj
实时数据库性能的竞争并不在按固定时间间隔存取数据上,而是在事件驱动的数据压缩技术,以及数据库在环境条件不理想情况下能否稳定运行.而数据压缩的关键,应该是压缩率与还原质量,然后再比较资源消耗才是有意义的。用固定时间间隔存取数据基本上没有意义。


# re: 国产实时数据库真的比洋品牌差吗 2009-03-29 17:53 gaoqing000
在存取上超过了别人也是一大进步啊

# re: 国产实时数据库真的比洋品牌差吗 2009-07-22 12:55 iiiiiii
瞎吹啥?在忽悠谁呀?真正敢拿出来练练吗?
你有60万点实际应用的案例吗?到网上看看,别人如何做的!!!!!!

# re: 国产实时数据库真的比洋品牌差吗 2009-07-26 11:54 蒋勇
博主选定300秒的sin数据做模拟数据,我认为不是很典型。这种数据现场很少,要么你就选20毫秒内20个sin数据,这才是电网周波数据。

我测试PI的数据是从1-40000共40000个标签,每个标签在其基准值(1-40000)的基础上上下0.5%波动。
测试结果:没客户每秒能写20000个实时值,每秒能读20000个标签的快照(snapshot)。至于空间占用,由于是预分配空间,没测出来。
PI有一个致命的弱点。用PutVal插入大量历史值,服务器后台历史数据归档负荷极高,CPU占用率在90%以上。测试硬件环境为普通双核台式机2GCPU和2G内存,普通160GSATA硬盘。网络为100M,1000M也是同样效果。

但是PI有个优点,插入历史值之后,能立即读会,不想其他厂家还在缓存中,无法立即读回。

# re: 国产实时数据库真的比洋品牌差吗 2009-07-26 12:02 蒋勇
目前实时库难点在历史数据上,历史数据的难点又在历史数据的插入上。
不知博主如何应对如下要求:

由于网络故障,现场数据采集计算机无法写入实时库,在本地磁盘存储了大量数据(比如1天的数据)。网络回复后,现场数据采集计算机在向实时库写入实时数据的同时,交替写入因网络故障缓存在本地的历史数据(注意不是先按时间顺序写入历史数据后在写实时数据)。而且写历史数据的顺序也是时间反序的(即先写最近的历史数据,在写较老的历史数据)。

这种应用是火电厂提出的,我用在PI上,PI都受不了,后台归档CPU负荷在90%以上。


# re: 国产实时数据库真的比洋品牌差吗 2009-07-26 12:06 蒋勇
看了博主的文章,感觉博主是麦杰的。我SIS的数据平台也加入了麦杰的驱动,可以使用麦杰作为数据存储。还支持PI,eDNA,sis系统中,用户还是感觉PI比eDNA好用。

# re: 国产实时数据库真的比洋品牌差吗 2009-07-26 12:20 蒋勇
对以实时数据,我相信在1000M网的环境下,在您提的服务器配置下,60万点、90万点、甚至100万点的实时数据写入都是能实现的。
您只测试了30分钟。我提一种测试方案,您可测试一下,就知道究竟如何了:

标签规模:
60万点,其中float3230万点,只测这30万点的float32就行了。

数据模拟:
30万个标签基准值从1-30万,每个标签在其基准值正负5%内随机波动,要求精度达到小数点后2位。每标签每秒写入一个记录。

运行时间:
10天,目的是让缓存把服务器的8G内存消耗完,这时候瓶颈就在服务器磁盘上了。10天后再观察实时库的写入速度和访问速度。

如果在严格一些,把历史数据的插入也加上。

博主如果能以平常心态公布以上测试结果,那我可以说:您们的确做得比国外的好,我为您大力推广。






# re: 国产实时数据库真的比洋品牌差吗 2009-11-28 13:39 乐扣乐扣
不过国人搞的这些东西总是太浮躁了

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]