mysql 内存计算_mysql 内存的计算方法

使用tuning-primer 分析mysql ,看了代码后对内存的分配有了一些了解,分享一下

实际内存使用主要分为几部分

1、全局buffer   (global buffer),包括$innodb_buffer_pool_size

$innodb_additional_mem_pool_size

$innodb_log_buffer_size

$key_buffer_size

$query_cache_size

2、每个连接的buffer   (per_thread_buffer)$read_buffer_size

$read_rnd_buffer_size

$sort_buffer_size

$thread_stack

$join_buffer_size

$binlog_cache_size

所以最大需要内存是:per_thread_buffer * max_connections + global_buffer

现实中配置了那么大内存不一定使用了那么大内存,配置了最大连接不一定有那么多连接,所以有配置最大值和实际使用值

比如配置了max_connections=5000,实际发生的最大连接是500per_thread_buffer*max_used_connections + global_buffer

对代码的文本做了一些修改,方便查看,结果展示如下:

MEMORY USAGEConfigured Max Global Buffers

$innodb_buffer_pool_size+$innodb_additional_mem_pool_size

+$innodb_log_buffer_size+$key_buffer_size+$query_cache_size: 30.58 G

#

Configured every thread Buffers ($read_buffer_size+$read_rnd_buffer_size+$sort_buffer_size

+$thread_stack+$join_buffer_size+$binlog_cache_size): 12 M

#

Configured Max all thread Buffers * max_connections (5000) : 60.57 G

#

Really Max all thread Buffers * max_used_connections (255) : 3.08 G

#

Max Memory Ever Allocated lobal_buffers+per_thread_max_buffers : 33.67 G

#

Configured Max Memory Limit(total_memoryHR) max need buffer memory

global_buffers+per_thread_buffers: 91.16 G

#

Physical Memory : 64.00 G

可见配置还是有些不合理,这样配根本支持不了5000连接,改最大连接为2000-2500左右还是合理的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值