- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在将数据从我们的数据库(一个 rdf 存储数据库)传输到 AWS Neptune,但我遇到了一些性能问题。
我有一个 db.r4.large
Neptune 实例和 ec2 实例与 Neptune 在同一 vpc 上。
基本上,我正在尝试使用以下 http 请求将数据提取到 Neptune:<myinstance>:8182/sparql
.
实际上,我从我的 ec2 实例发送 http 请求,Neptune 处理时间似乎很慢。另外,好像Neptune的处理不是并行的。
以下是我的测试和结果:
我向 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 秒后收到的。
当我发送 100m 的数据时,用了 1 多分钟。
当我并行发送相同的 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
我拍了一张 tcpdump
从 wireshark
可以清楚地看到该请求是并行发送的,但在 Neptune 返回之前有约 1 分钟的延迟 200 OK
对于这两个请求。
其实Neptune的处理好像不是并发的
请求在时间 12 和 200 ok
中发送这两个请求都是在时间 69 中发送的,正好延迟了 57 秒。
我尝试将我的 Neptune 实例大小增加到 db.r4.xlarge
还有db.r4.2xlarge
, db,但我得到了相同的性能。
gzip
中发送压缩数据格式以缩短时间,但 Neptune 似乎不支持它(检查 wireshark
请求已正确发送)。我想听听您对我的测试和结果的看法:
最佳答案
您正在将 time
(客户端往返时间)的输出与服务器报告的 totalEllapsedMillis
进行比较。前者包括您的网络传输时间,而后者只是数据库从接受请求开始计算查询所花费的时间。对于传输 100MB 文件所花费的时间,您有任何指标吗?
Neptune 确实会并行处理查询(实际上,并行度的数量与您的实例类型成比例)。如果您的查询与它在网络上花费的时间相比真的很小,那么它可能看起来像是一个接一个地完成的结果。我想查看您实验的更详细信息,看看您的设置是否存在问题。
首先,您的客户端和数据库端点之间的网络延迟是多少? (例如,您向/status API 发出请求需要多长时间)
关于performance - AWS 海王星性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54089779/
我很难在 gremlin 中找出以下场景的查询。这是有向图(可能是循环的)。 我想获得前 N 个有利节点,从节点“Jane”开始,这里的优先级定义为: favor(Jane->Lisa) = edge
我运行了一个很长的查询(可能长达两分钟),代码因超时错误而崩溃。 我不使用 Gremlin 服务器,我直接从 Python 代码连接到 Neptune 端点。 对于 NEO4J,我更改了位于 http
我有一个关于将 Neptune DB 用作网络数据库的最佳实践及其扩展复杂计算能力的通用问题。我想开发一个用户推荐系统,在该系统中,平台上的新用户会被提示他们可能会关注的其他用户,以发展网络。 为了实
我是一名优秀的程序员,十分优秀!