环境:阿里云

压测主机:阿里云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压测超时的问题的更多相关文章

  1. 通过k8s(Kubernetes)搭建jmeter的压测环境master-slave架构,实现弹性伸缩

    在k8s上部署jmeter的mater和slave,根据压测需求动态增减master和slave节点数量,即可以完成压测任务,又可以是资源利用最大化 https://blog.kubernauts.i ...

  2. CentOS单机安装k8s并部署.NET 6程序 压测 记录

    前面部分依照CentOS单机安装k8s并部署.NET 6程序来进行,内存.cpu.centos版本一致,之前222元买的三年8M 2c4g腾讯云轻量服务器,这个教程算是写的很详细的了,基本可以一致执行 ...

  3. HAProxy压测及参数调优

    背景 小米容器云平台,在构建云厂商集群时,需要通过HAProxy将云厂商LB流量从宿主机转到容器中,但对于HAProxy的性能没有把握.参考网上的一篇HAProxy压测文章,文章中提到HAProxy ...

  4. 使用mysqlslap对mysql进行压测,观察Azure虚拟机cpu使用率

    一直想做这个测试,原因很简单,很多人一直比较怀疑Azure的虚拟机性能,说相同的配置凭啥比阿里的虚拟机贵那么多,其实,我自己以前也怀疑过,但是接触Azure的几个月,确实发现Azure的虚拟机性能真的 ...

  5. 真刀真枪压测:基于TCPCopy的仿真压测方案

    郑昀 基于刘勤红和石雍志的实践报告 创建于2015/8/13 最后更新于2015/8/19 关键词:压测.TCPCopy.仿真测试.实时拷贝流量 本文档适用人员:技术人员 提纲: 为什么要做仿真测试 ...

  6. 压测2.0:云压测 + APM = 端到端压测解决方案

    从压力测试说起 压力测试是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患.与功能测试不同,压测是以软件响应速度为测试目标的,尤其是针对在较短时间内大量并发用户的访 ...

  7. Jmeter之http性能测试实战 非GUI模式压测 NON-GUI模式 结果解析TPS——干货(十一)

    性能测试计划 性能测试用例 录制脚本 性能测试结果 性能测试报告 性能测试监控报告 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Sec ...

  8. wrk 压测中请求无法响应问题解决过程

    ================= 遇到问题 =================$ 直连压测 wrk -c10000 -t100 -d100m http://localhost:9981/order/ ...

  9. jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包

    一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...

随机推荐

  1. P1551 亲戚 并查集

    P1551 亲戚 题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么 ...

  2. 洛谷 p3834 主席树

    题目链接:https://www.luogu.org/problem/P3834 主席树求静态区间第k小 #include<iostream> #include<cstdio> ...

  3. Gitlab应用——系统管理

    ​ 查看linux系统信息 ​ 查看日志 ​ ​ 创建账号 ​ 选择regular,这是一个普通账号,点击“create user”账号创建完成 ​ 点击“User”,然后点击“New user”.使 ...

  4. 关于爬虫的日常复习(13)—— 爬虫requests的初级高级的基本用法

  5. MyBatis.多条件排序

    <if test="orderBy != null"> order by <choose> <when test='orderBy=="ag ...

  6. Java.前端.Layer.open.btn验证无效

    今天遇到了一个很可笑的问题,在.Layer弹窗open中设置了多个按钮,只有yes按钮有效,btn2点击后直接关闭弹窗,排查了2个小时后终于解决,就是btn2要return false! var in ...

  7. 自建CDN Xnign产品指标

    Xnign-X1 Xnign-X1 性能参数 参考值 L7 HTTP RPS (128并发请求) 250W QPS L7 HTTP CPS (128并发请求) 110W QPS L7 HTTP RPS ...

  8. 【Docker】 windows10 docker 使用

    原文地址:https://www.aliyun.com/jiaocheng/872144.html 摘要:docker之前在Windows和MacOS上的版本都是通过Linux虚拟机的形式,而现在Do ...

  9. 对接口运用扩展方法 Applying Extension Methods to an Interface 精通ASP-NET-MVC-5-弗瑞曼 Listing 4-15

  10. 在ubuntu18.04下搭建kvm

    前一段时间一直在尝试Ubuntu上搭建xen,一直出现各种问题,各种坑 首先先感谢下面这个公司对我的耐心解答,非常感谢.特别是后面来的电话对我进行了详细的解答,所以选择搭建kvm. 1. 需要检查一下 ...