【发布时间】:2015-05-13 03:23:23
【问题描述】:
我们正在开发一个基于 Java 的 HFT 应用程序,该应用程序的即时交易性能要求低于 10 微秒。详情如下:
核心数:6
应用程序线程数:5
线程的功能和利用
- 线程 1-3 - 捕获交换滴答(3-4% cpu 利用率)
- 线程 4 - 根据简单的算术规则检查交易条件(100% cpu 利用率 - 由于繁忙的旋转)
- 线程 5 - 校验和生成、int、双字节转换、发送命令等(100% cpu 利用率 - 由于忙自旋)
问题:
我们相信 CPU 隔离(将线程专门分配给内核)会减少上下文切换和缓存未命中。目前,我们已将前 3 个线程分配给 3 个不同的内核。在这种情况下,将线程分配给内核的最佳策略是什么?
【问题讨论】:
标签: multithreading performance linux-kernel cpu-cache hft