mysql调优

mysql调优

调优的目的是突破性能瓶颈。性能监测的目的是测试瓶颈在哪里。不同的硬件,不同的系统,不同的应用,优化的重点/参数/方法都是不一样的。

对于mysql而言,调优也要从这三方面入手:硬件/系统/mysql应用。

1 硬件基础

1.1 cpu-NUMA架构

  在NUMA出现之前,cpu的所有core共享一个北桥来访问内存。cpu向多核多socket发展之后,总线争用问题就变得很突出,北桥的响应时间变长。所以北桥中的内存控制器被拆分,出现了NUMA架构(non-uniform memory access非统一型内存访问)架构。

  NUMA相关概念:node是一个逻辑概念,对应服务器上物理的socket。

  NUMA基本理解:一个node中有多个core,多个core共用一个内存控制器。core访问local memery速度较快。node之间通过互联模块,可以使core访问remote memery,但是速度较慢。如果一台四路服务器,就有4个node,core可以访问的remote memery有三个,访问速度与节点距离有关,称为node distance。

1.2 进程

  进程运行在cpu上,是硬件资源分配的对象。

  进程的生命周期和调用:父进程fork子进程,子进程执行代码然后返回信息给父进程,父进程回收相关资源。

  进程优先级:进程调度涉及优先级(nice level),范围是19~-20,值越小,nice越大,默认为0。如果调高nice值,进程被调度的频率就会下降,对cpu的争抢就会减少。

  context switch和中断::一个进程原在cpu中运行,现被中断,进程被刷到内存中。另一个进程切换到cpu中运行。

1.3 linux下的cpu调度

  user time:用户空间的cpu时间(未使用nice调度)。

  system time:系统内核程序的cpu时间。

  nice time:用户空间中经过nice调度的cpu时间。

  idel time:空闲cpu时间。

  wait time:cpu运行时在等磁盘io的时间。

1.4 Load average: the average of the sum of TASK_RUNNING(running or in the running queue) and TASK_UNINTERRUPTIBLE(不被中断,等待io完成) processes. If processes that request CPU time are blocked (which means that the CPU has no time to process them), the load average will increase. On the other hand, if each process gets immediate access to CPU time and there are no CPU cycles lost, the load will decrease.

 

posted @   Sinsen柳  阅读(117)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示