Apache flink Flink异步IO操作员调整/微基准测试
由于FlinkApache flink Flink异步IO操作员调整/微基准测试,apache-flink,asynchttpclient,Apache Flink,Asynchttpclient,由于FlinkAsync IO运算符是为外部API或DB调用而设计的,因此是否有任何特定的准则/提示来扩展此运算符?特别是在传入事件以非常高的速度被接收的情况下,使用orderedWait模式的异步IO操作符无法跟上该速度(尽管它调用的目标API端点经过负载测试,以提供更高的吞吐量和非常小的延迟)。在我们的例子中,将异步IO操作符添加到管道将吞吐量减少了88%到90%。这是巨大的性能打击 我们尝试了两种方法: 增加异步缓冲区容量参数 增加中任意给定点的并发请求数 等待响应的时间。事实证明,这适得
Async IO
运算符是为外部API或DB调用而设计的,因此是否有任何特定的准则/提示来扩展此运算符?特别是在传入事件以非常高的速度被接收的情况下,使用orderedWait
模式的异步IO操作符无法跟上该速度(尽管它调用的目标API端点经过负载测试,以提供更高的吞吐量和非常小的延迟)。在我们的例子中,将异步IO
操作符添加到管道将吞吐量减少了88%到90%。这是巨大的性能打击
我们尝试了两种方法:
异步缓冲区容量
参数
增加中任意给定点的并发请求数
等待响应的时间。事实证明,这适得其反
超过一个非常小的数字,比如50或100AsyncHTTPClient
配置(keepAlive=true,maxConnections,maxConnectionsPerHost
)及其未来侦听器使用的FixedThreadPool的大小。又一次没有多大改善Async IO
操作符一次只能处理一个流元素,但操作符及其底层HTTP客户端是多线程的,需要更高的核心机器来进行高速流处理。如果这类应用程序的可用机器只有8到16核,那么我们在满足所需的吞吐量和延迟SLA方面将面临挑战
对于使用
Async IO
进行高速流处理,是否有任何微观基准测试或调整指南,以便我们知道从中可以获得多少吞吐量?关于ML的交叉引用讨论关于ML的交叉引用讨论