我们拥有向 KDB Ticker Plant 发布报价的市场数据处理程序。为此,我们使用 exxeleron q java 库。不幸的是,延迟非常高:当我们尝试插入一批记录时需要数百毫秒。您能否建议一些有关 KDB + Java 绑定的延迟提示,因为我们需要快速发布。
问问题
476 次
2 回答
5
此消息中没有足够的信息来给出完全合格的响应,但是在对 Java+KDB 做了同样的事情之后,它确实归结为消除了可能性。这是常识,真的,没有什么超级技术。
- 确保你异步插入
- 验证它是导致延迟的 exxeleron q java。我不认为那里有 100 毫秒的开销。
- 验证您的 tickerplant 所在的 CPU 没有过载。考虑重新调整、核心绑定等
- 分析您的网络延迟。此外,如果您使用的是 Linux,您可以尝试一些 tcp 调整,例如 TCP_QUICKACK
- 当您使用 Java 时,请在垃圾收集方面更加聪明。它是高度可配置的,虽然不能直接控制。
- 如果您发现 tickerplant 是延迟的来源,您可以将其重新编码为不写入磁盘 - 或者获得更快的本地磁盘。
还有很多建议,但是这个问题有点太模棱两可了。
编辑
早在 2007 年,使用旧的(ish)服务器和非常旧的 KDB+ 版本,我们使用 vanilla 管理每秒 90k 行的插入率c.java
。那是经过多次上述几点。我相信你现在可以取得更多成就,关键在于找到瓶颈所在并一一解决。
于 2015-01-25T16:52:39.633 回答
0
确保发布到票务工厂的数据是批量的,比如等待一点点批量插入说几行数据,但一旦有新记录出现,不要逐行插入
于 2020-04-27T10:52:14.320 回答