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: ...
随机推荐
- L1-006 连续因子 (20分)
题意分析 题目中已经将意思说的很清楚了,就是输出一个数的最长连续因子的个数,并且输出是哪几个因子相乘.可以将题目从这两个角度进行分析: N为素数时,最长连续因子的个数为1,即它自己. N不为素数时,即 ...
- 如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出
这是该系列的第一篇文章:在ASP.NET Core 3.0中使用Serilog.AspNetCore. 第1部分-使用Serilog RequestLogging来简化ASP.NET Core的日志输 ...
- 如何优雅的用策略模式,取代臃肿的 if-else 嵌套,看这篇就够了
经常听同事抱怨,订单来源又加了一种,代码又要加一层if-else判断,光判断订单来源的if-else就好几百行代码,代码我都不想看了,相信很多同行都有过这样的感受! Java的二十几种设计模式背的滚瓜 ...
- 生产者消费者代码学习,Producer_Consuner
使用BlockingQuery实现生产者者消费者:考虑并发,解耦. 生产者消费者模式是面向过程的设计模式. 生产者制造数据 ------> 生产者把数据放入缓冲区 -------> ...
- idea初使用之自动编译
原文地址:https://blog.csdn.net/diaomeng11/article/details/73826564/ 因为公司需要,方便使用框架以及代码整合,使用同一开发集成环境idea,因 ...
- python3小脚本-监控服务器性能并插入mysql数据库
操作系统: centos版本 7.4 防火墙 关闭 selinux 关闭 python版本 3.6 mysql版本 5.7 #操作系统性能脚本 [root@localhost sql]# cat cp ...
- 手势识别控制pygame精灵
步骤: 编写简易pygame精灵游戏(只实现键盘上下左右控制) 解决opencv手势识别核心问题 上述2部分对接上 pygame部分我们只加载个背景,然后里面放1只乌龟精灵,用键盘的上下左右键来控制, ...
- 团队项目——Alpha发布2
一.作业描述 这个作业属于哪个课程 这个作业要求在哪里 团队名称 CTRL-IKun 这个作业的目标 在这个星期内完成团队项目α版本的第二次测试和发布,完善出错设置 二.成员列表 姓名 学号列表 廖志 ...
- 【阿K学Python系列】一Python基础语法(二)
前言 通过上一章的学习[阿k学Python]一Python入门(一),我们已经初步了解到Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,当然也是一门脚本语言,像前端需要学习的Jav ...
- Basic Thought / Data Structure: 差分 Difference
Intro: 作为查询界的\(O(1)\)王者--前缀和的亲兄弟,差分,他可是修改界的\(O(1)\)王者 Prerequisite knowledge: 前缀和 Function: 仅单次询问的区间 ...