aliyun---经过LB到后端k8s压测超时的问题
环境:阿里云
压测主机:阿里云ECS(非LB后的主机)
压测目标:阿里云k8s自己的某个服务
k8s配置在kube-system 按照之前的ingress-nginx 配置了一个内网的ingress-nginx,对监听的443和80进行代理
LB为内网IP的lb,共享性的,然后在service的kube-system的ingress里添加了lb的实例
压测经过LB的时候,总是出现超时3%左右的超时连接
最后优化nginx-controler还是不行
然后试着把 ingress-nginx的Cluster类型改成了Local ---- externalTrafficPolicy: Local,结果好了。Cluster和Local为什么会影响压测结果呢
补充:
当时还优化了一部分参数,主要是nginx-ingress内参数
具体优化的参数: 1:我按照阿里云那边的建议把ingress副本调成了3个; 2:优化了部分参数,参数文章https://cloud.tencent.com/developer/article/1537695 3:对比fat环境把nginx-ingress-intranet 的类型改成了Local 具体优化的参数: net.ipv4.tcp_syncookies = 0 fs.file-max=655350 $ cat /etc/security/limits.conf ... * hard nofile 655350 * soft nofile 655350 * hard nproc 655350 * soft nproc 655350 $ kubectl -n kube-system edit configmap nginx-configuration ... apiVersion: v1 data: keep-alive: "75" keep-alive-requests: "100" upstream-keepalive-connections: "10000" upstream-keepalive-requests: "100" upstream-keepalive-timeout: "60"
dev-azero环境进行压测api和azvs出现超时,错误率较多
解决:
1、绕开LB判断超时是否和LB有关,直接压测后端node:port,正常
2、api经LB到kube-system名称空间ingress-nginx-controller转发,初步判断是这里问题
3:搜索ingress调优,修改如下:
$ kubectl -n kube-system edit configmap nginx-configuration ... apiVersion: v1 data: keep-alive: "75" keep-alive-requests: "100" upstream-keepalive-connections: "10000" upstream-keepalive-requests: "100" upstream-keepalive-timeout: "60"
以上内容具体解释
keep-alive-requests指令用于设置一个keep-alive连接上可以服务的请求的最大数量,当最大请求数量达到时,连接被关闭
Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。默认75为timeout时间,对于一些请求比较大的内部服务器通讯的场景,适当加大为120s或者300s。
upstream-keepalive-connections 到upstream服务器即到server的空闲keepalive连接的最大数量 ,如何调:根据到服务器接受请求的响应时间和qps去设置,如果相应时间为100ms,性能要达到10000qps,值需设置为1000
upstream-keepalive-requests: 设置通过一个keepalive连接可以处理的最大请求数。发出最大数量的请求后,将关闭连接。
upstream-keepalive-timeout :设置一个超时,在此超时期间,与upstream服务器的空闲keepalive连接将保持打开状态
从官网总结的这几个参数 http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive,前三个如何调优给出了结论,后两个没找到优化的依据
4:以上优化完成后错误率仍然存在,稍有降低,按照prod环境修改ingress类型为Local
aliyun---经过LB到后端k8s压测超时的问题的更多相关文章
- 通过k8s(Kubernetes)搭建jmeter的压测环境master-slave架构,实现弹性伸缩
在k8s上部署jmeter的mater和slave,根据压测需求动态增减master和slave节点数量,即可以完成压测任务,又可以是资源利用最大化 https://blog.kubernauts.i ...
- CentOS单机安装k8s并部署.NET 6程序 压测 记录
前面部分依照CentOS单机安装k8s并部署.NET 6程序来进行,内存.cpu.centos版本一致,之前222元买的三年8M 2c4g腾讯云轻量服务器,这个教程算是写的很详细的了,基本可以一致执行 ...
- HAProxy压测及参数调优
背景 小米容器云平台,在构建云厂商集群时,需要通过HAProxy将云厂商LB流量从宿主机转到容器中,但对于HAProxy的性能没有把握.参考网上的一篇HAProxy压测文章,文章中提到HAProxy ...
- 使用mysqlslap对mysql进行压测,观察Azure虚拟机cpu使用率
一直想做这个测试,原因很简单,很多人一直比较怀疑Azure的虚拟机性能,说相同的配置凭啥比阿里的虚拟机贵那么多,其实,我自己以前也怀疑过,但是接触Azure的几个月,确实发现Azure的虚拟机性能真的 ...
- 真刀真枪压测:基于TCPCopy的仿真压测方案
郑昀 基于刘勤红和石雍志的实践报告 创建于2015/8/13 最后更新于2015/8/19 关键词:压测.TCPCopy.仿真测试.实时拷贝流量 本文档适用人员:技术人员 提纲: 为什么要做仿真测试 ...
- 压测2.0:云压测 + APM = 端到端压测解决方案
从压力测试说起 压力测试是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患.与功能测试不同,压测是以软件响应速度为测试目标的,尤其是针对在较短时间内大量并发用户的访 ...
- Jmeter之http性能测试实战 非GUI模式压测 NON-GUI模式 结果解析TPS——干货(十一)
性能测试计划 性能测试用例 录制脚本 性能测试结果 性能测试报告 性能测试监控报告 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Sec ...
- wrk 压测中请求无法响应问题解决过程
================= 遇到问题 =================$ 直连压测 wrk -c10000 -t100 -d100m http://localhost:9981/order/ ...
- jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包
一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...
随机推荐
- Flutter使用SingleTickerProviderStateMixin报错
最近在学习开发Flutter应用项目,在创建tabbar和tabview后,进行网络请求后显示顶部tab标签,设置TabController,并使class类实现SingleTickerProvide ...
- .net Core 使用IHttpClientFactory请求
导读:本文已添加在晨曦微服务之旅,现在自己在尝试微服务架构,一边学边做项目快速的进入状态.当然在学习的过程中会将自己学到的知识进行分享. 一.为什么不用HttpClient ...
- 通过ArcGIS将数据存储到SQL Server2012中
一.软件安装: ARCGIS 10.3安装 SQLserver2012安装 ARCGIS 10.3 安装(注意ARCGIS10.3并不用安装配置ARCSDE). https://wenku.baidu ...
- TornadoFx学习笔记(1)——常用的代码片段
Tornadofx是基于JavaFx的一个kotlin实现的框架 之后看情况补充.. 1.读取resources文件夹中的文件 如图 想要读取config.properties文件,有两种方法 在cl ...
- git 工作中实用合并分支
合并分支 .克隆远程分支 git clone -b dev1. url .创建本地分支,并关联远程分支 git checkout -b dev_wt orgin/dev_wt .合并某分支到当前分支 ...
- MySQL-5.7.29 的安装与配置
解压缩,我这里的解压路径是:D:\Program Files\Java MySQL-5.7.29下载地址:https://www.jianguoyun.com/p/DcKSfd8Q6LnsBxiY8c ...
- Map梳理
Map梳理 类型介绍 通用Map:用于在应用程序中管理映射,通常在 java.util 程序包中实现 HashMap.Hashtable.Properties.LinkedHashMap.Identi ...
- MySQL8.0 MIC高可用集群搭建
mysql8.0带来的新特性,结合MySQLshell,不需要第三方中间件,自动构建高可用集群. mysql8.0作为一款新产品,其内置的mysq-innodb-cluster(MIC)高可用集群的技 ...
- Activity--Eclipse安装Activity designer插件失败
案例 今天使用Eclipse 安装Activity designer插件时,出现了如下错误: An error occurred while collecting items to be instal ...
- 3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降. ...