• 性能学习笔记--k8s下mysql的连接数分析和调优


    k8s的架构下,登录并发100后,发现cpu的利用率过高,超过75%;开始不知道是哪个微服务导致的cpu利用率过高,需要进行分析(最终分析是mysql连接数不够),调优,再执行并发操作。
    场景描述:登录并发100,监控tps、响应时间、出错率、cpu、系统负载、内存等
    **场景类型:**单场景
    补充测试点:

    	k8s命令:
        #查看所有的命名空间: kubectl get namespace
        #获取到所有命名空间的pod:  kubectl get pods --all-namespaces 
        #获取某个业务的命名空间的下的pod :  kubectl get pods -n  pod所属的命名空间
        #查看某个pod的更多信息(包括所属node):kubectl get pod pod名称 -o wide -n pod所属的命名空间
        #查看某个pod的配置信息(资源cpu等):kubectl describe  pod pod的名称 -n  pod所属的命名空间
        #查看到所有node的ip信息:kubectl get node -o wide
        #查看某个node的配置信息(资源cpu等):kubectl describe nodes node名字
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    场景分析:
    第一步:通过jmeter并发100个用户,在master1这个node中发现cpu和平均负载比较高
    Cpu:
    。%user—相对比较高
    。%sys
    。%si
    。%iowait
    第二步:用top命令发现java进程比较耗资源;同时也发现redis也有使用率(发现登录接口比较特殊,响应数据大量写入redis—高频数据,需要向开发确认一下,这个问题)
    第三步:分析java进程:查看master1中的web应用的日志(java的日志):kubectl logs -f —tail==500 pod名称 -n pod所属的命名空间
    第四步:在日志中发现一个mysql连接数报错了
    第五步:去查下mysql这个pod里面的应用的连接数
    方法一:
    >通过后端服务器找到mysql:docker ps|grep mysql
    >进入到mysql的容器内:docker exec -it mysql容器编号 /bin/bash
    >输入mysql账户和password :mysql -u mysql账户名 -h mysql的连接地址 -p
    在这里插入图片描述

    **方法二:**直接在数据库连接工具的进行查询
    在这里插入图片描述

    第六步:修改mysql配置文件中的连接数
    >修改mysql配置文件;
    >修改临时配置(重启之后恢复原值):
    在这里插入图片描述
    **第七步:**修改mysql的连接数(调优)之后,在jmeter执行并发测试,监控cpu和系统平均负载

  • 相关阅读:
    华为 2024 届实习校园招聘-硬件通⽤(大部分硬件技术工程师岗位适用)/单板开发——第四套
    wait 和 notify 这个为什么要在 synchronized 代码块中?
    初始Git及Linux Centos下安装Git
    2022-09-07 mysql/stonedb-查询优化器逻辑记录及优化器魔改
    C++DAY 结构体·结构体与函数
    【PAT(甲级)】1054 The Dominant Color
    flutter组件 InheritedWidget
    8个优秀的CSS实践,web开发语言
    初阶数据结构学习记录——열셋 排序(2)
    python基础语法:数字类型(中篇)
  • 原文地址:https://blog.csdn.net/qq_37405087/article/details/125622976