Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink Flink异步IO操作员调整/微基准测试_Apache Flink_Asynchttpclient - Fatal编程技术网

Apache flink Flink异步IO操作员调整/微基准测试

Apache flink Flink异步IO操作员调整/微基准测试,apache-flink,asynchttpclient,Apache Flink,Asynchttpclient,由于FlinkAsync IO运算符是为外部API或DB调用而设计的,因此是否有任何特定的准则/提示来扩展此运算符?特别是在传入事件以非常高的速度被接收的情况下,使用orderedWait模式的异步IO操作符无法跟上该速度(尽管它调用的目标API端点经过负载测试,以提供更高的吞吐量和非常小的延迟)。在我们的例子中,将异步IO操作符添加到管道将吞吐量减少了88%到90%。这是巨大的性能打击 我们尝试了两种方法: 增加异步缓冲区容量参数 增加中任意给定点的并发请求数 等待响应的时间。事实证明,这适得

由于Flink
Async IO
运算符是为外部API或DB调用而设计的,因此是否有任何特定的准则/提示来扩展此运算符?特别是在传入事件以非常高的速度被接收的情况下,使用
orderedWait
模式的异步IO操作符无法跟上该速度(尽管它调用的目标API端点经过负载测试,以提供更高的吞吐量和非常小的延迟)。在我们的例子中,将
异步IO
操作符添加到管道将吞吐量减少了88%到90%。这是巨大的性能打击

我们尝试了两种方法:

  • 增加
    异步缓冲区容量
    参数 增加中任意给定点的并发请求数 等待响应的时间。事实证明,这适得其反 超过一个非常小的数字,比如50或100
  • 增加操作符的并行性。这没有多大帮助,因为我们机器上的内核数量有限(8或12个)
  • 调整
    AsyncHTTPClient
    配置(
    keepAlive=true,maxConnections,maxConnectionsPerHost
    )及其未来侦听器使用的FixedThreadPool的大小。又一次没有多大改善
  • 我们的观察结果是,尽管
    Async IO
    操作符一次只能处理一个流元素,但操作符及其底层HTTP客户端是多线程的,需要更高的核心机器来进行高速流处理。如果这类应用程序的可用机器只有8到16核,那么我们在满足所需的吞吐量和延迟SLA方面将面临挑战


    对于使用
    Async IO
    进行高速流处理,是否有任何微观基准测试或调整指南,以便我们知道从中可以获得多少吞吐量?

    关于ML的交叉引用讨论关于ML的交叉引用讨论