设为首页收藏本站

 找回密码
 注册
查看: 2149|回复: 10
打印 上一主题 下一主题

请教小米,TBDataCenter.exe占用率太高了! [复制链接]

Rank: 5Rank: 5

精华
0
UID
35604
积分
653
帖子
201
主题
83
阅读权限
60
注册时间
2011-4-25
最后登录
2021-1-21
跳转到指定楼层
1#
发表于 2020-3-26 08:22:56 |只看该作者 |倒序浏览
没办法了,因为TBDataCenter.exe占用率高,造成图表刷新不及时,漏刷新很多个tick,影响到公式执行
1.我电脑配置:e5 2680v2 * 2,20核40线程,内存8G,硬盘M2固态,网络托管上海机房,10M,我检查过所有硬件,目前来看除了cpu占用率高,其他硬件都没问题。
2.软件使用情况:同时打开54个超级图表,每个图表均1分钟周期,5000个bar,每个图表插入5个公式实盘交易。
3.问题表现:随着交易时间变长,cpu占用率越来越高,到下午接近收盘时,占用率已到80%+,刚开始我怀疑是行情波动剧烈的缘故,但现在看不是,因为行情波动最剧烈应该是开盘时间,那时候并没有高占用,反而是随着时间推移而升高
4.TBDataCenter.exe到底是负责什么的,为什么会随着时间占用率越来越高?
感谢小米指导!不然实盘做不下去了!

附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2020-3-26 09:50:35 |只看该作者
不存在图表刷新不及时,漏刷ticK的情况吧。。
这样的表现,建议你先测试 一下你的在运行的常用公式,每次运算需要的时长。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
35604
积分
653
帖子
201
主题
83
阅读权限
60
注册时间
2011-4-25
最后登录
2021-1-21
3#
发表于 2020-3-26 10:16:34 |只看该作者
本帖最后由 215600292 于 2020-3-26 10:25 编辑
小米 发表于 2020-3-26 09:50
不存在图表刷新不及时,漏刷ticK的情况吧。。
这样的表现,建议你先测试 一下你的在运行的常用公式,每次运 ...



使用道具 举报

Rank: 5Rank: 5

精华
0
UID
35604
积分
653
帖子
201
主题
83
阅读权限
60
注册时间
2011-4-25
最后登录
2021-1-21
4#
发表于 2020-3-26 10:35:41 |只看该作者
本帖最后由 215600292 于 2020-3-26 10:37 编辑
小米 发表于 2020-3-26 09:50
不存在图表刷新不及时,漏刷ticK的情况吧。。
这样的表现,建议你先测试 一下你的在运行的常用公式,每次运 ...


1.存在不及时的情况,详细见最后,我用FileAppend输出到txt观察的,ta2009,24日下午的tick输出结果,可以看到收盘前最后一分钟,tick缺蛮多,这种活跃合约不可能行情不连贯的,tb按照图表刷新来执行公式,说明图表刷新被卡住了,我对比过cpu占用率,当cpu占用率低的时候,tick的输出结果就基本完全,当cpu占用率高的时候,就缺很多了,说明图标刷新不及时了。
2.我测试过我的公式,没有死循环等等,5个公式跑下来耗时大概15ms,所以不是公式的问题,况且,如果是公式的问题的话,54个图表就会调用54个线程计算,那么应该是TradeBlazer.exe这个进程占用cpu高才对,但这个进程占用率却从未高于2%

会不会是TB存在未知死锁?或者TBDataCenter.exe会随着挂撤单数量的增多而逐步消耗资源?我能想到的,随着时间改变而改变的变量,也就只有挂撤单了。要不,真的就是软件问题了






电脑时间(currenttime)=0.145901     行情时间(q_lasttime)=N/A
电脑时间(currenttime)=0.145901     行情时间(q_lasttime)=0.145902
电脑时间(currenttime)=0.145902     行情时间(q_lasttime)=0.145903
电脑时间(currenttime)=0.145904     行情时间(q_lasttime)=0.145905
电脑时间(currenttime)=0.145905     行情时间(q_lasttime)=0.145907
电脑时间(currenttime)=0.145906     行情时间(q_lasttime)=0.145908
电脑时间(currenttime)=0.145908     行情时间(q_lasttime)=0.145909
电脑时间(currenttime)=0.145909     行情时间(q_lasttime)=0.145911
电脑时间(currenttime)=0.145911     行情时间(q_lasttime)=0.145912
电脑时间(currenttime)=0.145913     行情时间(q_lasttime)=0.145914
电脑时间(currenttime)=0.145914     行情时间(q_lasttime)=0.145916
电脑时间(currenttime)=0.145916     行情时间(q_lasttime)=0.145918
电脑时间(currenttime)=0.145918     行情时间(q_lasttime)=0.145919
电脑时间(currenttime)=0.145919     行情时间(q_lasttime)=0.145921
电脑时间(currenttime)=0.145921     行情时间(q_lasttime)=0.145922
电脑时间(currenttime)=0.145923     行情时间(q_lasttime)=0.145924
电脑时间(currenttime)=0.145924     行情时间(q_lasttime)=0.145926
电脑时间(currenttime)=0.145926     行情时间(q_lasttime)=0.145927
电脑时间(currenttime)=0.145927     行情时间(q_lasttime)=0.145929
电脑时间(currenttime)=0.14593     行情时间(q_lasttime)=0.145931
电脑时间(currenttime)=0.145931     行情时间(q_lasttime)=0.145933
电脑时间(currenttime)=0.145933     行情时间(q_lasttime)=0.145934
电脑时间(currenttime)=0.145935     行情时间(q_lasttime)=0.145936
电脑时间(currenttime)=0.145937     行情时间(q_lasttime)=0.145938
电脑时间(currenttime)=0.145938     行情时间(q_lasttime)=0.14594
电脑时间(currenttime)=0.14594     行情时间(q_lasttime)=0.145941
电脑时间(currenttime)=0.145942     行情时间(q_lasttime)=0.145943
电脑时间(currenttime)=0.145944     行情时间(q_lasttime)=0.145945
电脑时间(currenttime)=0.145945     行情时间(q_lasttime)=0.145946
电脑时间(currenttime)=0.145947     行情时间(q_lasttime)=0.145948
电脑时间(currenttime)=0.145949     行情时间(q_lasttime)=0.14595
电脑时间(currenttime)=0.14595     行情时间(q_lasttime)=0.145951
电脑时间(currenttime)=0.145952     行情时间(q_lasttime)=0.145954
电脑时间(currenttime)=0.145954     行情时间(q_lasttime)=0.145955
电脑时间(currenttime)=0.145956     行情时间(q_lasttime)=0.145957
电脑时间(currenttime)=0.145957     行情时间(q_lasttime)=0.145959
电脑时间(currenttime)=0.145959     行情时间(q_lasttime)=0.145959
电脑时间(currenttime)=0.15     行情时间(q_lasttime)=0.145959

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
5#
发表于 2020-3-26 16:32:10 |只看该作者
215600292 发表于 2020-3-26 10:35
1.存在不及时的情况,详细见最后,我用FileAppend输出到txt观察的,ta2009,24日下午的tick输出结果,可 ...

1,按照TB的运行机制来说,如果前一次运算的时长超过一个tick,那么一次运算结束到下一个新tick运算中间,是可能跳开某些tick没有运算上。而不是缺tick。
     你可以打开图表,新建一个公式,简单的代码,就一语句,写入日志的。对比看看,就有结果了。

2,测试方式是怎么样的?如何得到15ms的耗时结果?

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
35604
积分
653
帖子
201
主题
83
阅读权限
60
注册时间
2011-4-25
最后登录
2021-1-21
6#
发表于 2020-3-27 10:15:51 |只看该作者
本帖最后由 215600292 于 2020-3-27 11:01 编辑
小米 发表于 2020-3-26 16:32
1,按照TB的运行机制来说,如果前一次运算的时长超过一个tick,那么一次运算结束到下一个新tick运算中间 ...


1.用while写个循环,1分钟内循环计算所有公式,记录循环次数,然后1分钟/循环次数,就是公式耗时了
2.tick没运算上,应该有两种情况没运算上吧,一种是接收的数据没有及时刷新到图表上,一种是刷新了但是公式运算速度慢。按照现在的情况看,开盘前15分钟应该是全天波动最剧烈时候了,观察输出的tick,并没有出现漏的情况,反而是随着时间,下午时候database占用资源越来越多,所以我判断不是公式运算慢,毕竟现代cpu的算力,除非程序编写天生有缺陷,否则不可能1秒都跑不完一次公式。我怀疑是database的底层代码,可能有问题。
3.我昨天和今天都在做测试,告诉小米一个有趣的现象,希望能帮你改进软件:按照道理,一台电脑cpu跑54个图表,占用cpu60%,那么我找来3台同样的配置的电脑,把54个图表平均分到3台电脑上跑,那么cpu占用率应该是20%才对。我昨天就做了这个测试:一共四台配置一摸一样的电脑,其中3台平均,每台跑18个不同的图表,最后一台跑全部54个图表,结果那3台每台cpu占用率1%,而同一时刻,最后那一台cpu占用率为60%+


1+1+1=60,我也不知道是什么问题,其他硬件都没有问题的,内存和硬盘和网络都不是瓶颈,cpu的配置都是e5 2680v2 * 2

我也不知道问题所在,所以今天继续测试:1台电脑(配置同上),开三个虚拟机,每个虚拟机跑一个TB,每个TB平均18个不同的图表,如果今天测试出来的结果是cpu占用率依旧低,那就基本坐实了database底层代码优化不足的问题,单个TB不能开过多图表

下周一,我还会再做一次测试,找一台撕裂者3990x(这是目前我能找到的最牛的cpu了),就开一个tb,跑54个图表,看看cpu占用率,看看tick输出缺漏情况

等测试结果全部出来了在告诉你。你们写的软件,我自己花钱来测试,是不是很刺激?
如果真有问题,该改进就改进吧,我用TB快10年了,是你们老客户了

使用道具 举报

Rank: 1

精华
0
UID
230675
积分
49
帖子
35
主题
12
阅读权限
10
注册时间
2016-3-23
最后登录
2021-4-6
7#
发表于 2020-4-3 12:20:06 |只看该作者
大神测试的怎么样了?我发现TB现在越做越差了,扩大业务范围没问题,但最基本的东西却在慢慢丢失,有时候发个帖隔几天才回复,还收费这么贵。无奈现在没有同类比较优质的软件商,不然真的就舍弃TB了。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
35604
积分
653
帖子
201
主题
83
阅读权限
60
注册时间
2011-4-25
最后登录
2021-1-21
8#
发表于 2020-4-4 11:15:44 |只看该作者
小米 发表于 2020-3-26 16:32
1,按照TB的运行机制来说,如果前一次运算的时长超过一个tick,那么一次运算结束到下一个新tick运算中间 ...

测试完了,先上结论:当一个TB打开图表过多时,TBdatabase.exe会莫名占用cpu过高,估计存在类似死锁的问题,请提交后台开发人员好好检查下代码。

下面说一下测试流程:
1.机器配置全部一样:e5 2680v2 * 2,20核40线程,64g内存,nvme协议固态256G,100m宽带,共54个图表,每个图表5000跟K(一分钟周期),每个图表加载5个公式应用,开启自动交易,以下所说cpu占用率都指TBdatabase.exe的占用率,其他进程cpu占用率太低,忽略不计。用FileAppend输出txt观察公式执行情况。

2.第一个实验:4台主机,其中前三台每台开18个图表,最后一台开54个图表。午后,最后一台电脑cpu占用率逐步升高,14:15后稳定在50%-60%,峰值80%。同一时刻内,前三台电脑的cpu占用率都不超过3%。收盘后,查看输出文档,前三台电脑输出正常,2tick/s,而第四台电脑输出不正常,经常5s输出一个tick,TradeBlazer.exe这个进程占用率没有超过5%过,说明公式执行并不消耗大量cpu,但现在5s才1个tick输出,结合TBdatabase.exe高占用率,说明问题出在TBdatabase.exe推送数据给TradeBlazer.exe不及时。
第一个实验结论:可能是机器算力不够,带不动54个图表,也可能是TBdatabase.exe底层代码有问题。

3.第二个实验:一台电脑,开三个虚拟机,每个虚拟机开一个TB,18个图表。全天交易下来,每个虚拟机的TBdatabase.exe占用率平均在3%左右;宿主机的cpu占用率峰值在50%左右,但会迅速降下来,午后行情激烈时稳定在5%-15%左右,行情不激烈时稳定在5%左右,没有出现占用过高情况。收盘后,查看文档输出情况,输出正常,2tick/s。第二个实验结论:TBdatabase.exe底层代码有问题。

4.第三个实验:cpu换成撕裂者3990x,64核128线程。开1个tb,54个图表。cpu占用率25%-30%,峰值50%,查看文档输出,也是经常5s才一个tick。3990x共128个线程,打开54个图表的话TBdatabase.exe使用线程数大概在50-60间,所以占用率25%-30%基本上可以认为TBdatabase.exe把所占用的线程的算力都吃光了。第三个实验结论:TBdatabase.exe底层代码有问题。存在类似死锁的问题,造成线程死等。

这个是底层的bug了,请小米转交开发人员测试。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
35604
积分
653
帖子
201
主题
83
阅读权限
60
注册时间
2011-4-25
最后登录
2021-1-21
9#
发表于 2020-4-4 11:16:55 |只看该作者
cyqh090 发表于 2020-4-3 12:20
大神测试的怎么样了?我发现TB现在越做越差了,扩大业务范围没问题,但最基本的东西却在慢慢丢失,有时候发 ...

已经测完了,请看帖子

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
10#
发表于 2020-4-13 08:55:41 |只看该作者
215600292 发表于 2020-4-4 11:15
测试完了,先上结论:当一个TB打开图表过多时,TBdatabase.exe会莫名占用cpu过高,估计存在类似死锁的问 ...

收到,会转交给相关技术人员的。
有结论后第一时间回复您。
谢谢!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-27 10:58

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部