- Add MAX_CONCURRENT_AGENTS (default: 3) to limit concurrent agents - Implement acquire_agent_slot() and release_agent_slot() with flock - Wrap cmd_start, cmd_continue, and cmd_delegate with slot management - cmd_delegate holds slot until background task completes (fire-and-forget + blocking) - Add basic concurrency tests to test suite
107 lines
3.2 KiB
JSON
107 lines
3.2 KiB
JSON
[
|
|
{
|
|
"agent_count": 1,
|
|
"total_duration": 7.013643741607666,
|
|
"success_count": 1,
|
|
"failed_count": 0,
|
|
"timeout_count": 0,
|
|
"avg_response_time": 6.2816431522369385,
|
|
"stddev_response_time": 0,
|
|
"min_response_time": 6.2816431522369385,
|
|
"max_response_time": 6.2816431522369385,
|
|
"peak_cpu_percent": 0.0,
|
|
"avg_cpu_percent": 0.0,
|
|
"peak_memory_mb": 2546.8349609375,
|
|
"avg_memory_mb": 2439.7982177734375,
|
|
"peak_memory_percent": 0.0,
|
|
"avg_memory_percent": 0.0,
|
|
"peak_opencode_procs": 0,
|
|
"baseline_memory_mb": 2183.2587890625,
|
|
"memory_per_agent_mb": 363.576171875,
|
|
"total_cost_score": 2.549993742468767
|
|
},
|
|
{
|
|
"agent_count": 2,
|
|
"total_duration": 13.01965594291687,
|
|
"success_count": 2,
|
|
"failed_count": 0,
|
|
"timeout_count": 0,
|
|
"avg_response_time": 9.241770267486572,
|
|
"stddev_response_time": 4.460840653831581,
|
|
"min_response_time": 6.087479591369629,
|
|
"max_response_time": 12.396060943603516,
|
|
"peak_cpu_percent": 0.0,
|
|
"avg_cpu_percent": 0.0,
|
|
"peak_memory_mb": 2889.0400390625,
|
|
"avg_memory_mb": 2659.376727764423,
|
|
"peak_memory_percent": 0.0,
|
|
"avg_memory_percent": 0.0,
|
|
"peak_opencode_procs": 0,
|
|
"baseline_memory_mb": 2189.068359375,
|
|
"memory_per_agent_mb": 349.98583984375,
|
|
"total_cost_score": 9.113390439316863
|
|
},
|
|
{
|
|
"agent_count": 3,
|
|
"total_duration": 8.017883539199829,
|
|
"success_count": 3,
|
|
"failed_count": 0,
|
|
"timeout_count": 0,
|
|
"avg_response_time": 6.328219811121623,
|
|
"stddev_response_time": 1.4813371254887444,
|
|
"min_response_time": 4.74861478805542,
|
|
"max_response_time": 7.686349391937256,
|
|
"peak_cpu_percent": 0.0,
|
|
"avg_cpu_percent": 0.0,
|
|
"peak_memory_mb": 3233.111328125,
|
|
"avg_memory_mb": 2848.880425347222,
|
|
"peak_memory_percent": 0.0,
|
|
"avg_memory_percent": 0.0,
|
|
"peak_opencode_procs": 0,
|
|
"baseline_memory_mb": 2211.83984375,
|
|
"memory_per_agent_mb": 340.423828125,
|
|
"total_cost_score": 8.188435823624488
|
|
},
|
|
{
|
|
"agent_count": 5,
|
|
"total_duration": 12.039501190185547,
|
|
"success_count": 5,
|
|
"failed_count": 0,
|
|
"timeout_count": 0,
|
|
"avg_response_time": 6.650626277923584,
|
|
"stddev_response_time": 2.765260504640065,
|
|
"min_response_time": 4.714812755584717,
|
|
"max_response_time": 11.523208379745483,
|
|
"peak_cpu_percent": 0.0,
|
|
"avg_cpu_percent": 0.0,
|
|
"peak_memory_mb": 3911.77734375,
|
|
"avg_memory_mb": 2996.949669471154,
|
|
"peak_memory_percent": 0.0,
|
|
"avg_memory_percent": 0.0,
|
|
"peak_opencode_procs": 0,
|
|
"baseline_memory_mb": 2210.08203125,
|
|
"memory_per_agent_mb": 340.3390625,
|
|
"total_cost_score": 20.487562740176916
|
|
},
|
|
{
|
|
"agent_count": 8,
|
|
"total_duration": 62.496517181396484,
|
|
"success_count": 0,
|
|
"failed_count": 0,
|
|
"timeout_count": 8,
|
|
"avg_response_time": 60,
|
|
"stddev_response_time": 0.0,
|
|
"min_response_time": 60,
|
|
"max_response_time": 60,
|
|
"peak_cpu_percent": 0.0,
|
|
"avg_cpu_percent": 0.0,
|
|
"peak_memory_mb": 4033.01171875,
|
|
"avg_memory_mb": 3940.566368689904,
|
|
"peak_memory_percent": 0.0,
|
|
"avg_memory_percent": 0.0,
|
|
"peak_opencode_procs": 0,
|
|
"baseline_memory_mb": 2245.8857421875,
|
|
"memory_per_agent_mb": 223.3907470703125,
|
|
"total_cost_score": 111.68914929955825
|
|
}
|
|
] |