0

启动了一个 Simple Crate AMI EC2 实例,并在 4200 和 5000 上为 Flask 开放了 Crate 的端口。

当我使用 Crate AMI 运行 EC2 实例时,速度较慢但仍然足够快(约 1-2 秒),但是当我使用 Flask Endpoint 调用相同的实例时,它通过传递一个调用 Crate DB(在同一实例上)查询它,它需要接近 10 秒。

我在本地主机上测试了端点,因此速度执行没有改变。因此,我排除了代码是问题所在。

我的问题:

  • 为什么通过 EC2 上的 Flask-Restful 端点运行的查询如此缓慢?
  • 与开箱即用的 Crate AMI 相比,从头开始制作 EC2 AMI 并将 CrateDB 安装到其中是否会对速度性能产生影响?
4

1 回答 1

0

这可能是几件事之一,但我怀疑是“硬件”问题:

  • 硬件规格一样吗?更多内核、更多内存、SSD 与旋转磁盘?
  • 环境变量是否CRATE_HEAP_SIZE设置为可用 RAM 的一半?( /etc/sysconfig/crate)
  • CREATE TABLE说法一样吗?如果未指定,不同数量的核心会导致不同数量的分片。Oversharding/undersharding 会显着降低性能。

我假设表大小和查询是相同的;)否则看似微小的变化可能会影响性能。如果分区列在子句中,则分区表WHERE会优化,并且直接命中主键的查询要快得多。同样,字符串的聚合/比较比数字类型等慢。

干杯,克劳斯

于 2016-12-22T22:30:33.047 回答