You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Aerospike Spark Connector批量写入限流配置及QPS计算咨询

Aerospike Spark Connector 限流配置与QPS计算

1. 16核机器设置事务速率为100时的限流生效逻辑

当配置aerospike.transaction.rate=100时,该参数是单个Spark Executor的每秒最大事务数上限。对于16核机器,若给Executor分配全部16核(即spark.executor.cores=16),Executor会同时运行最多16个并行Task,但Connector会通过令牌桶算法对所有Task的请求统一限流:每个Executor每秒仅发放100个"事务令牌",所有并行Task共享这些令牌,确保该Executor每秒发送到Aerospike的事务总数不超过100,从而避免集群CPU瞬间过载。

2. 对应的写入QPS计算

写入QPS由Executor数量和单Executor事务速率直接决定:

  • 若仅使用1台16核机器作为Executor,总写入QPS为100(默认单条记录对应一个事务);
  • 若有N台相同配置的16核Executor,总QPS则为100 * N。

注意:若开启批量写入(通过aerospike.batch.size配置),单个事务会处理多条记录,此时实际写入的记录数QPS为事务速率乘以批量大小,但事务本身的QPS仍受aerospike.transaction.rate限制。

3. 可调整的其他限流相关参数

除aerospike.transaction.rate外,以下参数可配合控制写入速率,降低Aerospike集群CPU负载:

  • aerospike.batch.size:设置单次批量写入的记录数,减少事务总数(比如设为100,单个事务可处理100条记录,在事务速率不变的前提下,既提升写入效率,又降低单事务的CPU开销)
  • aerospike.max.concurrent:限制单个Executor同时发起的最大事务数,避免短时间内大量请求压向集群
  • spark.executor.cores:减少每个Executor分配的核数,降低并行Task数量,间接控制请求并发度
  • spark.task.cpus:设置单个Task占用的CPU核心数(比如设为2),减少同一Executor内的并行Task数量,降低请求频率
  • aerospike.transaction.timeout:设置事务超时时间,避免慢请求长时间占用集群资源,导致后续请求堆积

内容的提问来源于stack exchange,提问作者Sumit Nekar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:53:22