JMeter并发与持续性压测:从瞬时吞吐到系统韧性的工程实践

news2026/5/24 20:44:04
1. 为什么“并发持续”不是简单叠加而是压测成败的分水岭很多人第一次做接口性能测试时会下意识把JMeter当成“高级curl”——写个HTTP请求加个线程组跑50个用户看响应时间飘不飘。结果报告一出来平均RT 80ms90%线程在200ms内返回信心满满地跟产品说“系统扛得住”上线后第三天凌晨服务雪崩监控里CPU和GC频率像心电图一样乱跳。我去年在电商大促前就踩过这个坑当时用JMeter跑了1000并发、3分钟的短时压测所有指标都绿但真实大促期间系统在持续15分钟的中等流量下开始缓慢退化TPS从1200掉到600错误率从0.02%飙升至12%最后查出来是数据库连接池泄漏Redis缓存击穿叠加导致的连锁反应。这背后的根本问题在于并发压测验证的是系统瞬时吞吐能力而持续性压测暴露的是资源长期持有、状态累积、内存泄漏、连接复用失效等“慢性病”。就像体检不能只测血压峰值还得看静息心率、血糖稳态、肝肾功能持续负荷能力。JMeter本身不区分这两种模式但你的测试设计必须有明确意图——是测“它能不能扛住第一波洪峰”还是测“它能不能连续站岗8小时不打盹”。本篇标题里的“并发与持续性压测”不是并列关系而是递进关系先用并发确认单点瓶颈再用持续验证系统韧性。关键词“Jmeter”“接口性能测试”“并发”“持续性压测”指向的是一套完整的工程实践闭环而非工具操作手册。适合正在搭建质量保障体系的测试工程师、对线上稳定性有直接责任的后端开发以及需要向业务方交付可量化SLA承诺的技术负责人。如果你还在用“跑完就关”的方式做压测这篇内容就是你该补上的最后一块拼图。2. 并发压测的本质不是堆线程而是精准定位“第一个断点”2.1 并发模型的选择逻辑为什么不用“线程数×循环次数”硬凑QPS很多团队在设计并发场景时习惯直接设置“线程数1000循环次数1”认为这就是1000并发。这是最危险的起点。JMeter的线程组本质是模拟用户行为每个线程代表一个虚拟用户VU而VU的生命周期由“Ramp-Up Period”预热时间和“Loop Count”循环次数共同决定。假设你设线程数1000、Ramp-Up 0秒、循环1次所有线程会在毫秒级内同时发起请求——这根本不是真实业务场景而是DDoS式冲击只会触发限流熔断掩盖真实业务瓶颈。我见过某支付系统因此误判“网关层扛不住”实际是下游银行接口超时配置不合理但被瞬间打满的线程池遮蔽了真相。真正有效的并发设计必须回归业务语义。以电商下单接口为例峰值并发量大促首分钟预计涌入5000新用户其中30%会在10秒内完成下单即1500并发用户行为节奏每个用户下单后平均停留页面3秒再发起支付请求服务依赖链路下单需调用库存服务RT均值40ms、风控服务RT均值120ms、订单DBRT均值25ms。此时并发压测的目标不是“让JMeter发出1500请求”而是“让系统在1500个活跃用户持续交互的状态下各环节资源消耗是否可控”。这就要求我们拆解为两个层次入口层并发用“线程数1500Ramp-Up10秒”模拟用户均匀涌入避免脉冲链路层并发在HTTP请求后添加“定时器Constant Timer”强制每个线程在请求间等待3秒模拟用户真实操作间隙。提示JMeter的“同步定时器Synchronizing Timer”虽能制造瞬时高峰但仅适用于秒杀类极端场景日常压测中滥用会导致线程阻塞堆积掩盖服务端真实处理能力。真正的并发压力来自用户行为的自然叠加而非工具制造的假高潮。2.2 指标解读的陷阱为什么90%响应时间低于200ms系统却在崩溃边缘并发压测报告中最常被误读的指标是“90% Line”90%响应时间。团队看到“90% RT 200ms”就松一口气却忽略了一个致命细节这个百分位是基于所有采样点计算的而采样点中可能混杂了大量失败请求、重试请求、超时请求。JMeter默认将超时如HTTP请求超过5秒标记为失败但其响应时间仍计入统计——这意味着一个耗时5000ms的超时请求会拉高整体RT分布但若失败率低它对90%线影响有限更隐蔽的是当系统开始降级部分请求被快速拒绝如返回503这些RT可能只有10ms反而会把90%线拉得更低制造“性能优异”的假象。我在金融系统压测中遇到过典型反例当数据库连接池耗尽时部分下单请求因获取不到连接在10ms内直接返回500错误连接池拒绝策略而成功请求的RT稳定在150ms。最终报告呈现“90% RT 142ms错误率0.8%”团队判定合格。但实际监控显示DB连接池使用率持续98%GC频率每分钟20次JVM堆内存已无增长空间。真正的并发瓶颈信号藏在复合指标里TPSTransactions Per Second拐点当线程数从800增至1000时TPS从1100升至1120仅1.8%而平均RT从130ms跳至210ms61%说明系统已进入非线性退化区错误类型分布503服务不可用占比突增指向网关或服务注册中心500内部错误集中于特定接口指向下游依赖资源饱和度CPU使用率85%且无法随TPS线性增长或磁盘IO等待时间10ms说明硬件成为瓶颈。因此并发压测的结论不能只看RT必须交叉分析TPS曲线、错误码分布、服务端监控CPU/内存/IO/GC、中间件指标DB连接池使用率、Redis命中率、MQ积压量。我习惯用Excel把JMeter的jtl结果文件导入用数据透视表按“响应码”“线程组名”“响应时间区间”三维切片一张表就能定位是哪个环节在拖垮全局。2.3 线程组配置的实操细节为什么“Setup Thread Group”和“tearDown Thread Group”不是摆设JMeter的线程组类型常被简化为“普通线程组”但实际有四种核心变体每种解决不同问题Thread Group普通适合稳态压测但预热期Ramp-Up和结束期Scheduler控制粒度粗setUp Thread Group前置在主压测线程启动前执行用于初始化测试数据如批量创建10万用户、预热JVM执行空循环触发JIT编译、建立长连接池如初始化HttpClient连接池tearDown Thread Group后置在主压测结束后执行用于清理脏数据如删除测试订单、关闭连接、生成最终报告摘要Ultimate Thread Group终极支持复杂阶梯式并发如0-5分钟线性增至2000维持10分钟再5分钟降至0但需额外安装插件稳定性不如原生组件。我坚持用setUp/tearDown线程组因为它们解决了两个关键痛点数据污染隔离电商压测中若在主线程组内创建测试用户当压测中断时未清理的用户数据会残留影响下次压测。用setUp统一创建、tearDown统一删除配合唯一标识符如__time(yyyyMMddHHmmss)确保每次压测环境纯净JVM预热失真Java服务首次处理请求时JIT编译、类加载、连接池填充都会带来额外开销。若不预热前30秒的RT会虚高导致“有效压测时间”缩水。我在setUp中添加一个“JSR223 Sampler”用Groovy脚本循环调用目标接口100次强制触发JIT优化再启动主压测实测可使首分钟RT波动降低40%。注意setUp线程组的线程数应设为1单线程执行即可避免多线程初始化引发数据竞争tearDown线程组务必勾选“Run tearDown thread groups after shutdown of main threads”否则压测异常中断时不会执行清理。3. 持续性压测的设计哲学让系统“疲劳驾驶”而非“短途飙车”3.1 持续时间的科学设定为什么2小时比24小时更有价值持续性压测常被误解为“时间越长越好”甚至有团队要求“7×24小时不间断运行”。这是对系统韧性的严重误读。真实业务场景中系统极少面临真正意义上的“永不停歇”负载——大促有开始和结束直播有高峰和回落后台任务有调度周期。持续性压测的核心价值是验证系统在“典型业务周期”内的状态稳定性而非极限耐力。以电商为例一个完整的大促周期包含预热期30分钟用户浏览商品、加入购物车爆发期15分钟下单、支付集中发生平缓期60分钟订单履约、物流更新、客服咨询收尾期15分钟退款、售后、数据归档。这个120分钟周期就是最值得模拟的持续压测时长。我曾对比过两组实验A组24小时恒定1000并发TPS稳定在950错误率0.1%看似完美B组按上述120分钟周期编排预热期500并发→爆发期1500并发→平缓期800并发→收尾期300并发结果在第75分钟平缓期中段TPS骤降30%错误率升至5%根因是消息队列消费者线程池在长时间低负载后被JVM回收突发流量到来时无法及时扩容。这个案例说明持续性压测的关键是“节奏变化”而非单纯延长时间。2小时的动态负载比24小时的静态负载更能暴露系统在真实业务流中的脆弱点。我的经验法则是持续压测时长 业务最长单次任务周期 × 1.5倍预留状态收敛时间且必须包含至少一次“负载突变”如并发从500跳至1500。3.2 状态累积的检测方法如何发现那些“悄悄长大的内存对象”并发压测关注瞬时指标而持续性压测必须直面“状态累积”——这是系统退化的温床。最常见的三类累积现象内存对象堆积如未及时清理的缓存对象、未关闭的流、静态集合中不断add的监听器连接资源泄漏数据库连接未归还池、HTTP连接未释放、Socket未close异步任务积压MQ消息消费速度生产速度、定时任务因执行慢而堆积、线程池队列持续增长。检测这些不能只靠JMeter的响应时间而要构建“可观测性三角”客户端侧JMeter启用“Backend Listener”将实时指标推送到InfluxDBGrafana重点关注“Active Threads”活跃线程数是否随时间缓慢上升暗示线程泄漏、“Bytes”响应体大小是否异常增大暗示返回了不该返回的调试信息服务端侧应用监控通过JVM Agent如Prometheus JMX Exporter采集java_lang_Memory_Pool_Usage_used各内存区使用量趋势java_lang_Threading_ThreadCount线程总数是否持续增长com_zaxxer_hikari_HikariPool_ActiveConnectionsHikariCP连接池活跃连接数基础设施侧OS/中间件netstat -an | grep :8080 | wc -lESTABLISHED连接数是否线性增长redis-cli info memory | grep used_memory_peak_humanRedis内存峰值是否持续突破rabbitmqctl list_queues name messages_ready messages_unacknowledgedMQ队列积压量。我在一个内容平台压测中通过对比“第10分钟”和“第110分钟”的JVM堆直方图jmap -histo:live pid发现com.xxx.cache.DataWrapper实例数从2万增至18万而业务逻辑中该对象本应被LRU淘汰。根因是缓存淘汰策略配置错误导致冷数据永不释放。这个发现绝不可能在5分钟并发压测中捕捉到。3.3 持续压测的自动化巡检用“健康检查脚本”替代人工盯屏持续性压测长达数小时不可能全程人工盯控。我设计了一套轻量级自动化巡检机制核心是三个Python脚本部署在压测机上health_check.py每30秒调用JMeter的REST API需开启jmeter-server并配置server.rmi.localport获取当前TPS、错误率、活跃线程数写入本地CSValert_rule.py读取CSV当满足任一条件时触发企业微信告警TPS连续5次采样下降15%错误率单次采样3%且持续2分钟活跃线程数预设阈值如2000且30秒内未回落snapshot_trigger.py当告警触发时自动执行jstack pid jstack_$(date %s).txt线程快照jmap -dump:formatb,fileheap_$(date %s).hprof pid堆转储curl -X POST http://localhost:9000/actuator/prometheus抓取全量指标。这套机制让我在一次持续压测中于第87分钟自动捕获到线程池队列积压告警5分钟内就定位到是某个异步日志发送器因网络抖动卡死而人工监控时正巧在查看其他面板完全错过。持续性压测的自动化不是为了省事而是为了不错过任何一个微小的退化信号。4. 从压测到治理如何把JMeter报告变成可落地的技术改进清单4.1 报告解读的黄金公式TPS × RT 资源消耗而非性能指标JMeter的HTML报告常被当作“成绩单”但真正有价值的是把它转化为“诊断书”。我总结了一个黄金公式TPS × 平均RT 系统单位时间内的总工作量Workload。这个乘积直接映射到硬件资源消耗若TPS1000RT200ms则Workload 1000 × 0.2 200秒/秒即系统每秒需完成200秒的CPU计算当Workload CPU核心数 × 单核每秒处理能力如4核服务器理论上限约400秒/秒CPU必然成为瓶颈若Workload远低于CPU理论值但RT仍高则问题在IO等待磁盘/网络或锁竞争。在一次支付系统压测中TPS800RT350msWorkload280秒/秒而服务器为8核理论值应达800秒/秒。进一步分析iostat -x 1发现await平均IO等待时间高达45ms远超磁盘标称值10ms定位到是MySQL的redo log刷盘策略配置不当将innodb_flush_log_at_trx_commit1改为2后RT降至120msWorkload96秒/秒CPU使用率从92%降至65%。这个公式强迫你把抽象的RT翻译成具体的硬件资源语言让优化方向一目了然。4.2 瓶颈定位的四象限法则从“哪里慢”到“为什么慢”的思维跃迁面对一份复杂的JMeter报告新手常陷入“哪个接口RT最高”的表层思考。而资深工程师会用“四象限法则”穿透现象高TPS高频低TPS低频高RT慢紧急优化项如首页渲染接口TPS5000、RT800ms直接影响用户体验需立即优化SQL或缓存深度排查项如财务对账接口TPS2、RT15000ms虽不影响用户但暴露架构缺陷如未拆分批处理需重构低RT快监控基线项如健康检查接口TPS10000、RT5ms应设为SLO基线任何RT10ms即告警技术债项如旧版API兼容接口TPS0.5、RT200ms虽无影响但占用资源应列入下线计划。这个法则帮我快速聚焦在最近一次压测中发现“商品搜索接口”TPS1200、RT650ms高TPS高RT立刻组织攻坚而“供应商数据同步接口”TPS1、RT22000ms低TPS高RT则安排在迭代周期中重构为异步任务。四象限不是分类游戏而是资源分配的决策框架——把80%的优化精力投向左上角的“高TPS高RT”区域。4.3 压测驱动的闭环改进从“发现瓶颈”到“验证效果”的完整证据链压测的价值最终体现在能否推动真实改进。我坚持为每个压测发现的问题建立“证据链闭环”问题锚定在JMeter报告中标注具体采样点如Sample Labelorder/create, Response Code500, Elapsed5200ms根因分析结合服务端日志grep “order/create” error.log、线程快照jstack中找BLOCKED线程、数据库慢查询slow_query_log交叉验证方案实施如“增加Redis缓存”“调整HikariCP最大连接数”“SQL添加索引”回归验证用同一份JMX脚本在相同环境、相同参数下重跑压测生成对比报告效果固化将优化后的JMX脚本、参数配置、监控告警规则全部纳入Git仓库作为该服务的“性能基线”。在某次优化中我们将订单DB的order_status字段添加复合索引后JMeter报告显示“创建订单”接口RT从420ms降至65msTPS从320升至1800。但更关键的是我把这个索引语句、对应的JMX脚本、以及“TPS1500时触发DB连接池扩容”的Prometheus告警规则全部提交到项目仓库的/perf-tuning/目录下。现在新同事入职只需git clone就能复现整个优化过程。压测不是一次性动作而是把性能经验沉淀为可传承的工程资产。5. 那些没人告诉你的实战细节从环境准备到结果归因的避坑指南5.1 压测环境的“伪真实”陷阱为什么K8s集群里的压测结果可能全是假的很多团队在Kubernetes集群上做压测却忽略了容器网络和资源限制带来的巨大干扰。最典型的陷阱是网络延迟失真K8s Service的ClusterIP默认走iptables规则转发比物理机直连多2~3跳RT虚高10~15msCPU限制误导若Pod设置了resources.limits.cpu2当压测线程数超过2时Linux CFS调度器会强制限频导致TPS上不去但这并非应用代码问题而是资源配置不足内存OOM Killer误杀当压测触发JVM堆外内存暴涨如Netty Direct Buffer而Pod内存limit设置过低K8s会直接kill进程JMeter日志只显示“Connection refused”找不到根因。我的解决方案是“三层隔离法”网络层压测机与被测服务部署在同一Node的HostNetwork模式下绕过Service代理资源层为压测Pod设置resources.requests.cpu4, resources.limits.cpu0不限制CPU上限resources.limits.memory8Gi内存设足够余量监控层在压测Pod内注入node-exporter采集cgroup指标如container_cpu_cfs_throttled_periods_total一旦发现throttling立即停止压测。有一次我们按常规配置压测TPS始终卡在1200反复优化代码无效。直到启用cgroup监控发现CPU throttling rate高达35%才意识到是K8s的CPU限制在作祟。在容器化环境中压测的第一步不是写脚本而是读懂K8s的资源调度规则。5.2 JMeter自身的性能天花板当压测机成为瓶颈时该怎么办JMeter是Java应用自身也有性能极限。当线程数超过一定规模JMeter本体就会成为瓶颈内存溢出每个线程默认占用1MB堆内存1000线程需1GB若JVM堆设置不足频繁GC拖慢采样线程调度开销Linux系统线程切换成本随线程数平方增长当线程数2000JMeter主线程可能因调度延迟无法及时发送请求结果文件爆炸1000并发持续1小时jtl文件可达5GBJMeter GUI直接卡死。突破方法只有两个分布式压测用1台Master控制机 N台Slave执行机Slave只负责发压结果汇总到Master。关键配置Slave端启动jmeter-server -Dserver.rmi.localport50000 -Djava.rmi.server.hostname192.168.1.100Master端jmx中线程组设置“Run Thread Groups consecutively”关闭启用“Remote Testing”结果采样降频在JMeter的user.properties中添加# 每100个采样保存1个到jtl jmeter.save.saveservice.sample_counttrue jmeter.save.saveservice.response_data.on_errorfalse # 关闭响应体保存除非调试需要 jmeter.save.saveservice.response_datafalse这能让jtl文件体积减少90%且不影响RT、TPS等核心指标统计。我曾用3台4核8G的云服务器通过分布式压测实现了5000并发而单机JMeter在3000并发时就因GC停顿导致TPS剧烈抖动。压测工具的性能永远是你首先要验证的“第一个被测系统”。5.3 结果归因的终极心法永远质疑“这个慢真的是代码的问题吗”压测中最危险的思维是看到RT高就认定“代码写得烂”。我给自己立下铁律任何性能问题必须排除三层外部因素后才能归因到应用代码第一层基础设施网络丢包ping -c 100 host | grep packet loss、磁盘IO饱和iostat -x 1 | grep nvme0n1、DNS解析慢time nslookup api.xxx.com第二层中间件Redis连接池耗尽redis-cli info clients | grep connected_clients、MQ消费者堆积rabbitmqctl list_queues、DB连接池等待show processlist查Sleep状态连接第三层依赖服务调用第三方API超时curl -w format.txt -o /dev/null -s http://thirdparty.com/api、下游服务RT突增通过Zipkin链路追踪下钻。在一次压测中“用户登录接口”RT从80ms飙升至1200ms团队立刻开始review Spring Security代码。我坚持先查基础设施发现nslookup解析耗时1100ms追查到是压测机DNS服务器配置了错误的上游DNS导致每次解析都要超时重试。改用内网DNS后RT回归正常。性能优化的第一步不是打开IDE而是打开终端用最原始的命令一层层剥开系统的洋葱。最后再分享一个小技巧每次压测前我必做三件事——在被测服务上执行echo 3 /proc/sys/vm/drop_caches清空页缓存避免历史数据干扰在压测机上执行sysctl net.ipv4.ip_local_port_range1024 65535扩大端口范围防止TIME_WAIT端口耗尽用jstat -gc pid持续监控JVM GC确保压测期间没有Full GC发生。这三行命令比任何高级配置都更能保证压测结果的真实可信。毕竟我们测的不是JMeter而是真实世界里的那个系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2641997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…