性能调优思路(待完善)

总体思路
总体性能调优思路为性能瓶颈点分析、关键参数调整以及SQL调优。在调优过程中,通过系统资源、吞吐量、负载等因素来帮助定位和分析性能问题,使系统性能达到可接受的范围
瓶颈点分析
CPU
判断CPU是否达到瓶颈,主要通过以下方式:

  1. 在所有存储节点,逐一执行top命令,查看CPU整体占用情况
  2. 在所有存储节点,逐一执行htop命令,查看每个核的占用情况
    如果CPU整体占用超过90%(id < 10),说明此时CPU已经成为瓶颈
    如果存在某个核占用接近100%,其他核使用率不高,说明某个核成为瓶颈。可以通过mpstat -P ALL 10查看每个核的使用具体情况

IO
判断IO是否达到瓶颈,主要通过命令iostat -xm 2:
3. 如果是机械盘:util项达到100%,即达到瓶颈
4. 如果是固态盘:util项达到100%也不能说明达到瓶颈, 因为固态盘支持并发操作,要结合iops(每秒读写次数)和mb/s(每秒读写大小)来确定是否达到瓶颈。
判断一个盘是否是固态盘:/sys/block//queue/rotational 值为0即固态盘
网络
sar -n DEV 1
内存

针对瓶颈点调优
CPU
当cpu成为瓶颈时, 主要通过以下手段进一步定位:
5. 执行perf top,实时查看cpu使用最多的是哪里
6. 执行vmstat 2 10,实时查看cpu的分配情况,看系统调用,上下文切换是否过多
7. 为mysql和vtgate生成火焰图,查看具体堆栈使用cpu的分配情况

网络
要分析网络的性能,要从这些协议层入手,通过使用率、饱和度以及错误数这几类性能指标,观察是否存在性能问题。比如 :
在链路层,可以从网络接口的吞吐量、丢包、错误以及软中断和网络功能卸载等角度分析;
在网络层,可以从路由、分片、叠加网络等角度进行分析;
在传输层,可以从 TCP、UDP 的协议原理出发,从连接数、吞吐量、延迟、重传等角度进行分析;
在应用层,可以从应用层协议(如 HTTP 和 DNS)、请求数(QPS)、套接字缓存等角度进行分析。
同前面几种资源类似,网络的性能指标也都来源于内核,包括 /proc 文件系统(如 /proc/net)、网络接口以及 conntrack 等内核模块。这些指标同样需要被监控系统监控。这样,当你收到网络告警时,就可以从监控系统中,查询这些协议层的各项性能指标,从而更快定位出性能问题。
比如,当我们收到网络不通的告警时,就可以从监控系统中,查找各个协议层的丢包指标,确认丢包所在的协议层。然后,从监控系统的数据中,确认网络带宽、缓冲区、连接跟踪数等软硬件,是否存在性能瓶颈。最后,再登录到发生问题的 Linux 服务器中,借助 netstat、tcpdump、bcc 等工具,分析网络的收发数据,并且结合内核中的网络选项以及 TCP 等网络协议的原理,找出问题的来源。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值