okhttp异步请求连接阻塞问题排查

news2024/11/14 20:42:16

表现:

使用okhttp请求外部大模型接口时,当并发在2-5左右,出现请求被阻塞在建立http连接之前,阻塞时间超长(>20s,从日志看有160s存在)。但是httpconfig的connTimeout时间配置为100s,可以证明http请求被阻塞在建立连接之前,160s并非都是建立连接时间
由于是流式接口,使用okhttp-sse框架进行http长连接建立。

域名表现:

且对不同域名http请求进行先后压测,A先压测,耗时飙升到20s+时,进行B压测,耗时从1s开始累加直20s+。所以判断连接前的阻塞并非针对全局的http请求,而是与相同域名下的请求有关。所以将问题定位到okhttp对同一域名有并发请求限制,比如等待连接或某处存在等待队列。

问题定位:

我们本次使用的是okhttp的sse功能,属于http异步请求。
在OKhttp中,针对异步请求,在Dispatcher分发器里面有一个配置,异步请求同一域名同时存在的最大请求数量(setMaxRequestsPerHost=5),这就表明对同一域名的请求同一时刻仅允许有5个连接,但是大模型的接口耗时基本都在20s上下,无形中把这个问题放大了。
对该值调大之后,再次压测,解决。
在这里插入图片描述

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

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

相关文章

在线客服系统PHP源码免费开源 (搭建教程+全新UI)

安装环境 宝塔面板 php>8.0 mysql5.7 安装搭建 1.建站点 上传程序 2.建数据库 导入数据 3.网站目录/public 伪静态设置 4.修改数据库配置信息 5.修改config.js里的配置信息 6.启动wokerman命令 更详细的搭建教程请下载源码根目录下 安装教程.docx 产品亮点: …

综合评价 | 基于层次-熵权-变异系数-正态云组合法的综合评价模型(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 综合评价 | 基于层次-熵权-变异系数-正态云组合法的综合评价模型(Matlab) AHP层次分析法是一种解决多目标复杂问题的定性和定量相结合进行计算决策权重的研究方法。该方法将定量分析与定性分析…

生信之家:生物信息学爱好者的温馨交流与科研合作社区

介绍 在生物信息学这个迅速发展的领域,交流与合作显得尤为重要。生信之家正是为此而生的,它是一个专为生物信息学研究人员、学生以及爱好者打造的在线社区。在这里,用户可以分享知识、讨论技术、寻找解决方案,并与来自全球的同行…

页面卡顿检测方案

引言 卡顿现象在早期的开发项目中是一个非常值得注意的问题。随着应用功能的不断增加,代码复杂度也在不断提升,特别是在较为低端的机型上,稍有不慎就可能引发卡顿现象。虽然近年来新发布的设备性能显著提升,但卡顿问题仍然不容忽…

kettle定时发送邮件功能怎样集成到系统中?

kettle定时发送邮件的配置步骤?如何设置kettle发信? kettle不仅能够及时通知相关人员数据处理的状态,还能确保系统的自动化和高效运作。AokSend将详细探讨如何将kettle定时发送邮件功能无缝集成到系统中,让您的数据处理流程更加智…

idea2024设置中文

今天下载idea2024.2版本,发现已经装过中文插件,但是还是不显示中文,找了八天原来还需要设置中文选项 方案一 点击文件 -> 关闭项目 点击自定义 -> 选择语言 方案二 点击文件 -> 设置 外观与行为 -> 系统设置 -> 语言和地区…

C语言迷宫制造

目录 开头程序程序的流程图程序的效果我推荐要制造的迷宫下一篇博客要讲的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <string.h> void printmaze(const cha…

android关于binder的简单通信过程

文章目录 简述aidl文件服务端的实现客户端的实现验证过程 简述 主要实现的是两个应用之间跨进程通信的过程&#xff0c;client端调用server端的具体实现&#xff0c;然后server端给client回调数据&#xff0c;详细如下所示 aidl文件 以下的文件需要在服务端与客户端都配置一…

使用极狐GitLab进行K3S集群的维护与控制

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…

企业图纸防泄密怎么做?10款好用的图纸加密软件推荐

在当今竞争激烈的市场环境中&#xff0c;企业图纸作为核心技术和商业机密的重要组成部分&#xff0c;其安全性直接关系到企业的竞争力和市场地位。因此&#xff0c;采取有效措施防止图纸泄密至关重要。本文将探讨企业图纸防泄密的综合策略&#xff0c;并推荐10款优质的图纸加密…

工业企业能源管理系统

进入新世纪以来&#xff0c;我国的社会主义市场经济持续繁荣&#xff0c;在经济发展的同时&#xff0c;能源耗费量与日俱增&#xff0c;在很大程度上阻碍了我国经济的可持续发展。为了实现节能减排的目标&#xff0c;大量企业进行了产业结构调整和优化升级&#xff0c;促进了资…

OpenAI Embeddings API: How to change the embedding output dimension?

题意&#xff1a;OpenAI Embeddings API&#xff1a;如何更改嵌入输出维度&#xff1f; 问题背景&#xff1a; In the official OpenAI node library Create embeddings if for example using the model text-embedding-ada-002 the embeddings returned is an array of aroun…

PHP宿舍外面点单系统---附源码97171

目 录 摘 要 Abstract 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2 宿舍外卖点单系统分析 2.1可行性分析 2.1.1 技术可行性分析 2.1.2经济可行性分析 2.1.3操作可行性分析 2.2 功能需求分析 2.2.1普通用户功能 2.2.2商家用户功能 2.2.3管理…

Qt:玩转QPainter序列六

前言 继续看源码。 正文 剩下的大部分都是画各种图形的函数&#xff0c;它们一般都有多个重载版本&#xff0c;我就不一 一介绍使用了&#xff0c;只挑其中的一部分使用一下。 在 QPainter 类中&#xff0c;这些方法涉及到绘图的各种功能&#xff0c;主要用于设置视图变换、…

chapter08-面向对象编程——(Object类详解)——day09

目录 319-运算符 320-查看Jdk源码 321-子类重写equals 322-equals课堂练习1 323-equals重写练习2 324-equals重写练习3 325-hashCode 326-toString 327-finalize 319-运算符 引用的都是同一个地址&#xff0c;所以返回true 320-查看Jdk源码 equals只能判断引用类型是…

线程同步学习

1、线程同步的定义 线程同步不是一起、相同&#xff0c;而是协调、协同的意思。 1)按预定的先后次序进行运行&#xff0c;如:您说完&#xff0c;我再说;线程A生成数据后交给线程B处理; 2)公共资源同一时刻只能被一个线程使用;共享数据在同一时刻只能被一个线程修改&#xff0c…

uniapp 小程序支持打开手机相册和摄像头

开发uniapp 时&#xff0c;有时需要让用户上传手机相册或者拍摄图片&#xff0c;对图片进行处理&#xff0c;下面提供了一个method&#xff0c;支持打开摄像头拍照和相册功能&#xff0c;完成后&#xff0c;对图片做base64处理。 // 打开相册的方法openCamera() {let _thisthi…

给自己复盘的tjxt笔记day9

优惠券管理 开发流程 需求分析&#xff0c;接口统计&#xff0c;数据库设计&#xff0c;创建分支&#xff0c;创建新模块&#xff08;依赖&#xff0c;配置&#xff0c;启动类&#xff09;&#xff0c;生成代码&#xff0c;引入枚举状态 优惠券管理 增删改查的业务代码&#…

vagrant 创建虚拟机

创建一个名为 “Vagrantfile” 的文件&#xff0c;修改如下内容&#xff1a; Vagrant.configure("2") do |config|(1..3).each do |i|config.vm.define "k8s-node#{i}" do |node|# 设置虚拟机的Boxnode.vm.box "centos/7"# 设置虚拟机的主机名…

Behave使用体验

behaveuiautomator2jenkins 同理&#xff0c;Behave也可以和Appium/AirTest框架结合 运行环境 pip install uiautomator2 behave behave2cucumber 意事项&#xff1a;behave版本号建议1.2.5&#xff0c;因为1.2.6和Jenkins Cucumber Report插件不兼容 生成报告 html报告 …