我正在使用 Azul Systems 构建的 jHiccup 工具测量“打嗝”。它收集数据以识别 JVM 运行 Java 应用程序时发生的暂停时间(打嗝)的频率和持续时间。它适用于 JVM 级别及更高级别(操作系统、驱动程序等)。
以下是结果 这些结果是在使用 SUSE SLERT 11 2.6.33 内核 PREEMPT RT、Intel i5、4g 内存的机器上获得的。该进程在 cpu 屏蔽下运行(3 个逻辑处理器被隔离)并具有 99 优先级(FIFO)。我想知道这 57 mcs 延迟是从哪里来的。该应用程序非常简单。它是网络订单处理系统,所以它解析 TCP 数据包馈送,做简单的业务逻辑等等。没有 GC,同步,它是单线程的。
我猜这可能是网络问题,例如阻止读取?当我尝试使用忙等待进行非阻塞读取时,我得到了类似的结果,但也许我做错了。我不知道这些打嗝是从哪里来的。