首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MariaDB使用的内存比缓冲区允许的多-4倍。

MariaDB使用的内存比缓冲区允许的多-4倍。
EN

Database Administration用户
提问于 2022-06-06 22:34:09
回答 1查看 157关注 0票数 0

帮助我解决大脑信任问题,为什么我的MariaDB 10.2.27比缓冲区多使用4倍的驻留内存?

代码语言:javascript
复制
MariaDB [(none) 10.2.27]>SELECT MAX_USED_MEMORY_GB, INNODB_BUFFER FROM
(SELECT ROUND((@@key_buffer_size + @@query_cache_size + @@tmp_table_size + @@innodb_buffer_pool_size + @@innodb_log_buffer_size + @@max_connections * 
(@@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size + @@join_buffer_size + @@binlog_cache_size + @@thread_stack + @@tmp_table_size))/power(1024,3),2) AS MAX_USED_MEMORY_GB)A, 
(SELECT ROUND(SUM(@@key_buffer_size + @@query_cache_size + @@tmp_table_size + @@innodb_buffer_pool_size + @@innodb_log_buffer_size + @@max_connections)/power(1024,3),2) AS INNODB_BUFFER)B;
+--------------------+---------------+
| MAX_USED_MEMORY_GB | INNODB_BUFFER |
+--------------------+---------------+
|              33.15 |          3.13 |
+--------------------+---------------+

Memory on the box:
              total        used        free      shared  buff/cache   available
Mem:           565G        219G        4.2G        4.0G        341G        340G
Swap:          2.0G        833M        1.2G

来自HTOP

EN

回答 1

Database Administration用户

发布于 2022-06-07 04:51:51

  • 您应该使用Engine=InnoDB,而不是MyISAM。
  • key_buffer_size仅由MyISAM使用,因此,在将表转换为InnoDB之后,将其设置为30米。
  • tmp_table_sizemax_heap_size很少发挥作用。也就是说,它们不必要地夸大了总数。
  • query_cache_size应该是0 --这是一个正在消亡的旧设备。
  • innodb_buffer_pool_size是最重要的设置,它应该是大约70%的可积内存。
  • 有些尺寸需要乘以max_connections,但即使是这样也很少准确--通常太高,有时太低。

等。

底线是没有一个好的内存使用公式。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/313021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档