当前位置: 首页 > news >正文

MySQL参数优化之thread_cache_size

1.thread_cache_size简介

每建立一个连接,都需要一个线程来与之匹配,此参数用来缓存空闲的线程,以至不被销毁,如果线程缓存中有空闲线程,这时候如果建立新连接,MYSQL就会很快的响应连接请求。

show status like  'Threads%';
show global status like 'Thread%';

可以看到

Threads_cached	68
Threads_connected	310
Threads_created	378
Threads_running	8
  • Threads_cached :代表当前此时此刻线程缓存中有多少空闲线程。

  • Threads_connected :代表当前已建立连接的数量,因为一个连接就需要一个线程,所以也可以看成当前被使用的线程数。

  • Threads_created :代表从最近一次服务启动,已创建线程的数量。为处理连接请求创建过的线程数,如果发现Threads_created值过大的话,表明MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size值。

  • Threads_running :代表当前激活的(非睡眠状态)线程数。并不是代表正在使用的线程数,有时候连接已建立,但是连接处于sleep状态,这里相对应的线程也是sleep状态。

2.线程缓存未命中率

线程缓存未命中率=Threads_created /Connections
=378/65660=0.005756929637526652=6%还算合理

show global status like 'Connections%'; 

3.thread_cache_size设置原则

如果是短连接,适当设置大一点,因为短连接往往需要不停创建,不停销毁,如果大一点,连接线程都处于取用状态,不需要重新创建和销毁,所以对性能肯定是比较大的提升。
对于长连接,不能保证连接的稳定性,所以设置这参数还是有一定必要,可能连接池的问题,会导致连接数据库的不稳定性,也会出现频繁的创建和销毁,但这个情况比较少,如果是长连接,可以设置成小一点,一般在50-100左右。

物理内存设置规则:通过比较Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。(–>表示要调整的值) 根据物理内存设置规则如下:
1G —> 8
2G —> 16
3G —> 32
>3G —> 64

查询thread_cache_size设置

show global status like'thread_cache_size';

设置命令:

mysql> set global thread_cache_size=16
编辑/etc/my.cnf 更改/添加 thread_concurrency = 16

http://www.lryc.cn/news/23754.html

相关文章:

  • gRPC服务健康检查(二):gRPC健康检查协议详解
  • Android系统10 RK3399 init进程启动(四十七) Android init 进程整体代码逻辑简述
  • CSDN 编程竞赛三十二期题解
  • Kubernetes 中的 Pod Hook
  • Linux操作系统安装MySQL(rpm安装)
  • MySQL高级第二讲
  • 凸优化专题1
  • 【蓝桥杯每日一题】递推算法
  • Unity性能优化: 性能优化之内存篇
  • 华为OD机试题,用 Java 解【内存资源分配】问题
  • 微服务之Nacos注册与配置
  • Android 动画详解
  • Linux -- 程序 进程 线程 概念引入
  • Android ART dex2oat
  • 「RISC-V Arch」RISC-V 规范结构
  • 【C】线程控制
  • Maven工程打jar包的N种方式
  • 一文了解GPU并行计算CUDA
  • 全网资料最全Java数据结构与算法(1)
  • 【项目实战】SpringMVC拦截器HandlerInterceptor入门介绍
  • 阿里淘宝新势力造型合伙人P8、年薪百万的欧阳娜娜也躲不过的魔鬼面试,看的我心服口服
  • 深度学习笔记:不同的反向传播迭代方法
  • ElasticSearch 学习笔记总结(三)
  • 深入理解border以及应用
  • 如何复现论文?什么是论文复现?
  • 22.2.28打卡 Codeforces Round #851 (Div. 2) A~C
  • Learining C++ No.12【vector】
  • 【数电基础】——逻辑代数运算
  • 【Redis】什么是缓存与数据库双写不一致?怎么解决?
  • 互联网衰退期,测试工程师35岁之路怎么走...