gpt4 book ai didi

performance - AWS 海王星性能

转载 作者:可可西里 更新时间:2023-11-01 16:35:41 25 4
gpt4 key购买 nike

我正在将数据从我们的数据库(一个 rdf 存储数据库)传输到 AWS Neptune,但我遇到了一些性能问题。

我有一个 db.r4.large Neptune 实例和 ec2 实例与 Neptune 在同一 vpc 上。

基本上,我正在尝试使用以下 http 请求将数据提取到 Neptune:<myinstance>:8182/sparql .

实际上,我从我的 ec2 实例发送 http 请求,Neptune 处理时间似乎很慢。另外,好像Neptune的处理不是并行的。

以下是我的测试和结果:

  1. 我向 Neptune 发送了以下请求:

    time curl -X POST -d @/tmp/my_file_32m.txt http://myneptune-poc.c0zm6uyrnnwp.us-east-1.neptune.amazonaws.com:8182/sparql

    /tmp/my_file_32m.txt包含 sparql 插入命令,此请求的时间是 34.037s而海王星声称它花了 21.846 s :

    {"type" : "Commit","totalElapsedMillis" : 21846}

    real 0m34.037s
    user 0m0.044s
    sys 0m0.062s

    A tcpdump可以清楚地证明 Neptune 的响应是在延迟 34 秒后收到的。

  2. 当我发送 100m 的数据时,用了 1 多分钟。

  3. 当我并行发送相同的 32m 文件时,时间是 2 的倍数:

    time xargs -I % -P 8 curl -vX POST -d @/tmp/my_file_32m.txt "http://myneptune-poc.c0zm6uyrnnwp.us-east-1.neptune.amazonaws.com:8182/sparql" < <(printf '%s\n' {1..2})<

    {"type" : "Commit","totalElapsedMillis" : 29797}{"type" : "Commit","totalElapsedMillis" : 30362}

    real 0m57.752s
    user 0m0.137s
    sys 0m0.101s

    我拍了一张 tcpdumpwireshark 可以清楚地看到该请求是并行发送的,但在 Neptune 返回之前有约 1 分钟的延迟 200 OK对于这两个请求。

    其实Neptune的处理好像不是并发的

    请求在时间 12 和 200 ok 中发送这两个请求都是在时间 69 中发送的,正好延迟了 57 秒。

  4. 我尝试将我的 Neptune 实例大小增加到 db.r4.xlarge还有db.r4.2xlarge , db,但我得到了相同的性能。

  5. 我试图在 gzip 中发送压缩数据格式以缩短时间,但 Neptune 似乎不支持它(检查 wireshark 请求已正确发送)。

我想听听您对我的测试和结果的看法:

  1. 为什么单个 http 请求的性能很慢?
  2. 为什么 Neptune 的处理不是并行的?

最佳答案

您正在将 time(客户端往返时间)的输出与服务器报告的 totalEllapsedMillis 进行比较。前者包括您的网络传输时间,而后者只是数据库从接受请求开始计算查询所花费的时间。对于传输 100MB 文件所花费的时间,您有任何指标吗?

Neptune 确实会并行处理查询(实际上,并行度的数量与您的实例类型成比例)。如果您的查询与它在网络上花费的时间相比真的很小,那么它可能看起来像是一个接一个地完成的结果。我想查看您实验的更详细信息,看看您的设置是否存在问题。

首先,您的客户端和数据库端点之间的网络延迟是多少? (例如,您向/status API 发出请求需要多长时间)

关于performance - AWS 海王星性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54089779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com