我有2个类似的服务器:16个vCPU,2.4 GHz,Intel Xeon E5-2676v3,64 GiB内存。
首先生成加载,第二个进程请求。
配置load.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不产生所需的负载?或者我可能不正确地理解结果?
答案 0 :(得分:0)
平均服务器的响应时间为250毫秒,每个幻像实例每秒发送大约4个请求一秒钟。 因此,使用默认数量的幻像实例(1000)坦克实际上无法发送> ~4000rps - 它没有可用的实例,所有实例都在忙着发送和等待数据。
您可以尝试使用更多实例,例如在[space]YourCountry
部分[phantom]
中定义https://yandextank.readthedocs.io/en/latest/core_and_modules.html#basic-options