我观察到,在使用内存后端时,使用检查点会导致观察到的延迟意外增加。
考虑以下检查点:
2019-02-27 15:35:46,322 INFO org.apache.flink.runtime.checkpoint.CheckpointCoordinator - Triggering checkpoint 2 @ 1551281746322 for job a80597b3312f0704beed75397c371bf5.
2019-02-27 15:35:46,326 INFO org.apache.flink.runtime.state.heap.HeapKeyedStateBackend - Heap backend snapshot (In-Memory Stream Factory, synchronous part) in thread Thread[KeyedProcess -> Map -> Sink: Unnamed (1/1),5,Flink Task Threads] took 0 ms.
2019-02-27 15:35:46,342 INFO org.apache.flink.runtime.state.DefaultOperatorStateBackend - DefaultOperatorStateBackend snapshot (In-Memory Stream Factory, synchronous part) in thread Thread[Async calls on Source: Custom Source -> Map -> Timestamps/Watermarks (1/1),5,Flink Task Threads] took 2 ms.
2019-02-27 15:35:46,346 INFO org.apache.flink.runtime.state.DefaultOperatorStateBackend - DefaultOperatorStateBackend snapshot (In-Memory Stream Factory, asynchronous part) in thread Thread[pool-14-thread-2,5,Flink Task Threads] took 3 ms.
2019-02-27 15:35:46,351 INFO org.apache.flink.runtime.state.heap.HeapKeyedStateBackend - Heap backend snapshot (In-Memory Stream Factory, asynchronous part) in thread Thread[pool-11-thread-2,5,Flink Task Threads] took 14 ms.
2019-02-27 15:35:46,378 INFO org.apache.flink.runtime.checkpoint.CheckpointCoordinator - Completed checkpoint 2 for job a80597b3312f0704beed75397c371bf5 (1157653 bytes in 54 ms).
尽管端到端持续时间仅为50ms,但在15:35:46385注入的事件的响应仅在520ms后到达。在这两个时间戳之间,没有处理任何事件。在没有检查点的情况下,99.99%的延迟约为15ms。
设置:
编辑:这是一项线性工作,所以我想检查点屏障并没有对齐。
将时间花在同步确认消息到RabbitMQ上(MessageAcknowledgeingSourceBase\notifyCheckpointComplete
因为我的检查点间隔是3分钟,并且我正在注入200 ev/s,这意味着每个检查点都会触发36k条消息的确认(200*60*3),这大约需要500毫秒。
使用较小的间隔可能有助于获得更可预测的延迟,但代价是更高的中值延迟。
我试图将SDL程序限制为60 FPS,并使用以下代码计算FPS: 但似乎SDL_Delay以某种方式影响了SDL_GetTicks的返回值,因此time_delta得到的值类似于0到3,而当我只删除最后2行时,它通常约为15。 对我来说,这毫无意义。有人知道怎么回事吗? 编辑: 上面的代码基本上是我程序的主循环。我首先实现了一个fps计数器,通过在start_time和afterwords中计算多
问题内容: 我在GAE上检查Go应用程序的性能时,我认为静态文件的响应时间非常长(183毫秒)。是吗?为什么?我该怎么办? 问题答案: 对于静态文件来说,“常规” 200毫秒似乎很重要。我从我的应用程序提供了相同的“ bootstrap- sensitive.css”的静态版本,并且可以看到两种类型的回答时间: 50-100ms(大部分时间) 150-500ms(有时) 由于我与Google Ap
RDB的时间:latest_fork_usec:936 上次导出rdb快照,持久化花费,微秒。 检查是否有人使用了SAVE。
查看info里面的total_connections_received,如果该值不断升高,则需要修改应用,采用连接池方式进行,因为频繁关闭再创建连接redis的开销很大。
mpstat -P ALL 1
我试图理解延迟和延迟订阅操作符之间的区别。 本文件描述了延迟操作员: 延迟操作符通过在发出每个源可观察项之前暂停特定的时间增量(您指定)来修改其源可观察项。这会将可观测项发出的整个项目序列在时间上向前移动指定的增量 delaySubscription是这样描述的: 还有一个操作符,您可以使用它延迟对源可观察对象的订阅:delaySubscription。 然而,当我测试这两个操作员的行为时,我觉得