mysql 記憶體計算 mysql 記憶體的計算方法

2021-10-18 10:02:06 字數 1510 閱讀 1638

使用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左右還是合理的。

mysql 記憶體計算 MYSQL使用記憶體計算

mysql記憶體占用計算 global buffer all thread buffer global buffer innodb buffer pool size 快取表資料和索引資料,加速查詢,並且使查詢結果集儲存在內以供重用,一般設定到主機記憶體的70 以下 innodb additional...

mysql 記憶體計算 MySQL記憶體計算公式

mysql記憶體計算公式mysql used mem key buffer size query cache size tmp table size innodb buffer pool size innodb additional mem pool size innodb log buffer s...

mysql初始記憶體計算 MYSQL使用記憶體計算

mysql記憶體占用計算 global buffer all thread buffer global buffer innodb buffer pool size 快取表資料和索引資料,加速查詢,並且使查詢結果集儲存在內以供重用,一般設定到主機記憶體的70 以下 innodb additional...