性能测试实战 30 讲
高楼
前 HP 高级性能专家,7DGroup 创始人
45941 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 37 讲
性能测试实战 30 讲
15
15
1.0x
00:00/00:00
登录|注册

28丨案例:带宽消耗以及Swap(下)

慢SQL的定位方法
Swap的原理和逻辑
开启Query Cache
优化SQL语句
分析数据库的监控信息
通过证据链分析数据库
数据库系统资源分析
优化物理内存使用率
调整JVM配置
JVM状态分析
系统资源压力表现
检查JVM设置
建议对应用服务器的swap进行优化
swap分区使用对性能的影响
Linux系统swap分区配置和swappiness参数
思考题
性能优化的无止境
技术方面和业务方面的判断
优化结果
瓶颈分析定位
优化结果
瓶颈分析定位
Swap的原理和对TPS的影响
总结
分析的第三阶段
分析的第二阶段
性能优化案例
性能优化案例知识关系脑图

该思维导图由 AI 生成,仅供参考

上一篇文章我主要分析了带宽消耗,今天,我们来看一下分析的第二和第三阶段,也就是 Swap 分析和数据库分析。

分析的第二阶段

Swap 的原理和对 TPS 的影响

前面有一个扣,是说 swap 多的问题。要理解 swap 为什么是黄的,得先知道什么是 swap。我先画个简易的示意图。
这里先解释一下,对于一个 Linux 系统来说,如果配置并开启了 swap 分区,那么默认的 swappiness 参数是 60。
swappiness 是在内存 reclaim 的时候生效的,而 reclaim 方式同时有两个动作:1. 将 file 相关内存进行回收;2. 将 anon 内存交换到 swap 分区。
所以 swapiness 值越大,swap 分区就用得越多。
对我们现在分析的这个系统来说,来看一下:
我们看到这里配置了一个内存为 8G 左右,已经使用了 7G 多了,swappiness 配置为 30%。
通过 free 看到现在只有 145M 的物理内存剩余,可用内存也只有 254M 了。
所以上面图中的 swap 飘黄也是很合理的喽!
下面我们就针对应用服务器的 swap 来看是不是可优化。
所有人都知道,当 swap 被用的时候,性能肯定会下降,所以在我的测试过程中,一般我都建议把 swap 直接关掉测试性能,有人说这样有什么问题?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入分析了带宽消耗的第二和第三阶段,即Swap分析和数据库分析。在Swap分析中,文章讨论了swap对TPS的影响以及瓶颈分析定位,指出了swap对性能的影响以及如何定位瓶颈。在数据库分析中,文章提出了优化结果和后续性能工作建议,包括调整JVM配置参数、监控分析确定swapiness的值以及解决网络带宽问题。通过对应用服务器和数据库的分析,文章指出了系统的短板,并提出了解决方案,以提高整体的TPS。文章内容涉及技术性较强,对于需要优化系统性能的读者具有一定的参考价值。文章内容深入浅出,适合技术人员阅读。文章总结了性能优化的无止境性质,强调了以最少的时间和金钱成本,达到最大的优化效果的重要性。文章内容完整,从一个项目的角度出发,提供了性能优化的全面思路和方法,对于读者快速了解性能优化的过程和技术特点具有指导意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能测试实战 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(18)

  • 最新
  • 精选
  • Geek_8e5c47
    慢查询信息和网络信息是使用什么命令查看到的啊?

    作者回复: 网络是netstat。慢查询是pt-quest-digest。

    2020-03-04
    7
  • 小老鼠
    在虚拟机或dock环境中可进行性能测试吗?

    作者回复: 这个问题过于宽泛了,但是本着认真的态度,还是回复一下吧。 对于性能测试环境,只有一个可信的答案,那就是:和生产一致。 生产用什么配置,测试就用什么配置是最靠谱的。 但是我们经常会遇到的是硬件环境会有区别。所以经常会有人在硬件不同上钻牛角尖,而不去考虑系统特性以及什么资源影响最大。 如果是CPU资源使用最多,我们只要去对比CPU能力也能比较个大概。 而虚拟机和docker能不能用于性能测试?当然可以。不管什么环境,都可以用于性能测试。 而现在我们用于应用级别的机器基本上都是虚拟机和docker。这必然是可以用的。 其核心是,这套硬件能提供的能力到底是什么样。而不用纠结是虚拟机还是docker还是物理机。

    2020-03-21
    6
  • alley
    老师查看网络带宽满的命令是什么

    作者回复: 看带宽,要看使用率和队列两个角度。通常我是用iftop和netstat。你也可以用其他命令。

    2021-01-17
    4
  • nelson
    对于为什么打开查询缓存,没有给出相关的表和SQL,没有任何理论依据,而是直接打开缓存尝试。颇有实践主义的色彩。 现在十分不建议打开查询缓存,一旦数据更新之前费劲建立起来的缓存都全部清空了,另外实在命中率不高涂层消耗,除非在非常特殊的场景 另外在My SQL 8.0中,干脆废掉了查询缓存

    作者回复: 查询缓存的使用是有适用的场景的。在查询多的应用中,打开查询缓存是会有用的。

    2020-05-11
    4
    4
  • 每天晒白牙
    老师的功力太深厚了,感觉性能测试要会的东西很多,测试,开发,运维,架构等等,我是小开发,看这种排查问题的文章真是爽,要是能在工作中这样酣畅淋漓的排查,爽啊

    作者回复: 以后我尽量多写这样的。哈哈。

    2020-03-21
    4
  • 如果真得示客户网络带宽导致瓶颈,有什么推荐的方法,比如10M带宽,如果要扩大的话,需要怎么扩大。扩大的到什么程度,

    作者回复: 根据TPS来计算需要多少带宽,扩大的手段很明确。 外网的就只能买了。 内网就是换网络设备(路由、交换、网线、网卡等),就看是哪里限制的了。

    2020-05-24
    2
    2
  • 老姜
    mysql用的是什么监控工具?

    作者回复: 本篇用的是spotlight。

    2020-02-24
    2
  • Rachel
    监控工具可以安装在独立于应用服务器、数据库服务器、压力机等之外机器吗?

    作者回复: 那就要有agent来收集数据了。

    2021-12-28
    1
  • lin~
    老师,swap飘黄的逻辑有些疑问,这里swapiness设置为30,如果设置为80的话,在available mem不够的情况下还会飘黄么

    作者回复: 在性能测试中,不建议使用swap。

    2021-10-12
    1
  • 李大.shu
    老师,我在一次性能测试过程中,cache的值一直上升,然后将物理内存占满后,cache的值趋于稳定,程序用的used也趋于稳定(内存利用率在45%左右)。但通过vmstat统计观察swpd的值一直在上涨,通过jconsole查看也没有内存泄漏的问题。压测了48小时,tps和响应时间都在要求的指标范围内,这种情况算是正常情况吗,有没有风险,我担心swpd继续涨下去会有问题

    作者回复: 压时间长一点,看有没有oom。

    2020-12-11
    1
收起评论
显示
设置
留言
18
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部