需用外部工具压测workbuddy:一、wrk测rest api吞吐与延迟;二、jmeter模拟claw全链路多协议请求;三、python脚本构造真实用户行为流并追踪带宽;四、联动监控服务端网络、连接、队列及指标。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您尝试评估WorkBuddy在高并发场景下的流量承载能力与带宽极限,则需绕过其无内置压测模块的限制,采用外部工具模拟真实用户调用链路,重点观测模型服务响应、IM网关吞吐、Agent调度队列积压及文件系统I/O延迟;压测结果将直接反映当前部署环境所能支撑的峰值QPS与资源瓶颈点。
一、使用wrk进行轻量级HTTP接口压测
wrk支持高并发、低开销的HTTP请求模拟,适用于快速验证WorkBuddy对外暴露的REST API(如任务提交、状态查询)在不同并发等级下的响应稳定性与吞吐能力。它能准确捕获平均延迟、连接错误率及每秒请求数,是定位网络层与Web容器瓶颈的首选工具。
1、在终端执行命令:wrk -t4 -c400 -d30s http://localhost:8080/api/v1/task,其中-t4表示启用4个线程,-c400表示维持400个并发连接,-d30s表示持续压测30秒。
2、观察输出中的Requests/sec值,若该值在并发提升至600后不再线性增长,且Latency P99显著上升,则表明API网关或后端模型服务已达处理上限。
3、将测试目标URL替换为实际部署地址,并确保压测机与WorkBuddy服务处于同一局域网,避免公网抖动干扰带宽判断。
二、使用JMeter构建多协议混合压测场景
JMeter可编排包含HTTP、WebSocket及文件上传动作的复合脚本,精准复现Claw模式下用户发起语音指令→触发Agent调度→读取本地文件→调用大模型→回传结果的完整链路,从而暴露跨组件协同时的带宽争抢与序列化瓶颈。
1、新建Thread Group,设置线程数为200、Ramp-Up时间为60秒、循环次数为1,模拟渐进式流量爬升。
2、添加HTTP Request Sampler,配置POST请求至/api/v1/claw/invoke,Body Data中嵌入含base64编码的1MB测试文件片段。
3、添加WebSocket Sampler,连接ws://localhost:8080/ws?session_id=${session_id},并在PreProcessor中通过正则提取并复用session_id,确保连接复用而非重复握手。
4、添加View Results Tree与Aggregate Report监听器,重点关注“接收字节数/秒”与“发送字节数/秒”指标,若二者长期低于千兆网卡理论带宽(125MB/s),则说明应用层存在IO阻塞或缓冲区配置过小。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
三、基于自定义Python脚本模拟真实用户行为流
官方未提供标准压测SDK,但可通过requests+websockets库组合构造贴近真实业务节奏的请求流,包括随机间隔、会话保持、失败重试与上下文携带,有效识别因memory_trace.log写入频繁或长期记忆加载导致的带宽隐性消耗。
1、安装依赖:pip install requests websockets psutil。
2、编写脚本,在每次请求前调用psutil.net_io_counters()记录起始网络收发字节数,请求完成后再次采集并计算单次交互净带宽占用。
3、在请求头中注入X-WorkBuddy-Trace-ID: {uuid4()},并在WorkBuddy服务端日志中筛选对应trace,关联查看memory_trace.log中该会话的读写频次与数据量。
4、运行100个进程,每个进程循环发起50次带上下文ID的指令请求,统计各进程平均带宽消耗与P95延迟,若发现某批次请求带宽突增300%而无对应业务量变化,则高度提示记忆管理模块存在冗余序列化行为。
四、监控层联动分析:从网络设备到应用日志
仅靠客户端压测无法定位带宽是否被底层组件截留或误配,必须同步采集服务端网络栈、内核连接数及WorkBuddy内部队列深度,形成端到端带宽归因视图。
1、在WorkBuddy服务器执行:ss -s查看当前TCP连接总数,若ESTAB连接数持续高于5000且TIME-WAIT堆积超2000,则表明连接复用策略失效或IM网关未启用长连接。
2、运行cat /proc/net/dev提取eth0的rx_bytes与tx_bytes,结合时间戳差值计算实时网卡吞吐,若该值远低于wrk报告的QPS×平均响应体大小,则说明数据在用户态被截断或压缩未生效。
3、检查WorkBuddy运行目录下的queue_depth.log,搜索关键词"agent_dispatch_queue",若连续5分钟日志中该队列长度>1000且无下降趋势,则判定Agent调度模块已成带宽下游瓶颈,上游流量正被强制缓存等待分发。
4、启用WorkBuddy内置调试端口(默认8081),访问http://localhost:8081/metrics,提取workbuddy_network_bandwidth_used_bytes_total指标,比对Prometheus中同一时间窗口的rate值,确认应用层上报带宽与系统层实测是否一致。









