Add concurrent agent limiting to kugetsu CLI
- 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
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
[
|
||||
{
|
||||
"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
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user