为什么Yandex Tank不会生成所需的负载
我有2个类似的服务器:16个vCPU,2.4 GHz,Intel Xeon E5-2676v3,64 GiB内存。为什么Yandex Tank不会生成所需的负载
其中第一个生成负载,第二个处理请求。
配置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(平均响应时间为7ms)。
预计2000年,有〜2000(平均响应时间30毫秒)。
预计3000,具有〜2700(平均响应时间250毫秒)。
预期4000,具有〜2700(平均响应时间250毫秒)。
而且,不管多大计划增加RPS,实际遗体内〜2700
有一些建议:1。 Yandex的坦克“理解”,该服务器不能处理这样的负荷,不增加它。 2.服务器无法建立更多连接
测试url -/api/test由rails application + nginx作为代理进行处理。
我使用静态文件进行测试来检查第二个建议。结果:https://overload.yandex.net/8175
连接数超过2700 =〜200 000. 但是这个数小于load.ini文件中的要求 - const(500000,15s)。
问:为什么Yandex Tand不生成所需的负载?或者可能我错误地理解了结果?
平均服务器的响应时间为250ms,每秒幻像实例每秒可发送大约4个请求。 因此,使用默认数量的幻像实例(1000),物理桶不能发送>〜4000rps - 它没有可用实例,它们都在忙于发送和等待数据。
你可以尝试使用更多的情况下,像它在https://yandextank.readthedocs.io/en/latest/core_and_modules.html#basic-options
提到
[phantom]
部分instances=10000
定义还有一个情节“新语丝”的https://overload.yandex.net/8175#tab=test_data&tags= &plot_groups = extended&machines = 1859&metrics =&slider_start = 1486625970&slider_end = 1486626010&compress_ratio = 1,向您显示已使用坦克实例的数量。密切关注它 - 如果它接近最大值,那么你的坦克已经达到了当前的设置。 – r2d2