0

我有 2 台类似的服务器:16 个 vCPU,2.4 GHz,Intel Xeon E5-2676v3,64 GiB 内存。

首先它们产生负载,第二个处理请求。

配置加载.ini:

[phantom]
address=0.0.0.0 ;target's address(chanched, of course)
port=443 ;target's port
rps_schedule=step(1000,10000,1000,15s) ;load scheme
ssl=1
header_http = 1.1
headers = [Host: api.somehost.io]
  [Content-Type: application/json]
  [Connection: close]
uris = /api/test

预期:负载将逐步生成,从 1 000 RPS 开始,每 15 个添加 1 000 RPS,最高可达 10 000 RPS。

我们有:

预期 1000,有 ~1000(平均响应时间 7 毫秒)。

预计 2000 年,有 ~2000 年(平均响应时间 30 毫秒)。

预期 3000,有 ~2700(平均响应时间 250 毫秒)。

预期 4000,有 ~2700(平均响应时间 250 毫秒)。

此外,无论计划增加多少 RPS,实际仍保持在 ~ 2700 以内。

有一些建议: 1. Yandex Tank“理解”,服务器不能处理这样的负载,不要增加它。2.服务器无法建立更多连接

测试 url - /api/test 由 rails application + nginx 作为代理处理。

我使用静态文件进行了测试以检查第二个建议。结果:https ://overload.yandex.net/8175

超过 2700 的连接数 = ~200 000。但这个数字比 load.ini 文件中的要求少 - const(500000,15s)。

问题:为什么 Yandex Tand 不产生所需的负载?或者我可能错误地理解了结果?

4

1 回答 1

0

服务器的平均响应时间为 250 毫秒,一秒钟内,每个幻像实例每秒可以发送大约 4 个请求。因此,使用默认数量的幻影实例(1000),tank 物理上无法发送 > ~4000rps - 它没有可用的实例,所有实例都在忙于发送和等待数据。

您可以尝试使用更多实例,例如在https://yandextank.readthedocs.io/en/latest/core_and_modules.html#basic-options中提到的[phantom]部分中定义instances=10000

于 2017-02-09T12:08:06.557 回答