首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MariaDB / Columnstore引擎内存被阻塞

MariaDB / Columnstore引擎内存被阻塞
EN

Stack Overflow用户
提问于 2018-10-25 17:03:56
回答 1查看 755关注 0票数 1

我们已经安装了mariadb和列存储引擎,从过去几周开始,在重新启动服务之后,内存被塞满,所有的DML/DDL操作都卡住了。

代码语言:javascript
复制
below are the stats :

              total        used        free      shared  buff/cache   available
Mem:             15           2           7           0           5          12
Swap:             4           0           4


[mysqld]
port = 3306
socket          = /opt/evolv/mariadb/columnstore/mysql/lib/mysql/mysql.sock
datadir         = /opt/evolv/mariadb/columnstore/mysql/db
skip-external-locking
key_buffer_size = 512M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 64M
read_buffer_size = 64M
read_rnd_buffer_size = 512M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 0
# Try number of CPU's*2 for thread_concurrency
#thread_concurrency = 8
thread_stack = 512K
lower_case_table_names=1
group_concat_max_len=512
infinidb_use_import_for_batchinsert=1
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 8192M
#innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 100M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-30 01:06:11

下面是对VARIABLES和(可疑)GLOBAL STATUS的分析;没有什么令人兴奋的:

观测:

  • 版本: 10.1.26-MariaDB
  • 15 GB内存
  • 正常运行时间= 03:04:25;请在数小时后重新运行显示全局状态。
  • 你确定这是一场全球演出吗?
  • 您不在Windows上运行。
  • 运行64位版本
  • 您似乎正在完全(或大部分)运行InnoDB。

更重要的问题:

正常运行时间= 03:04:25;请在数小时后重新运行显示全局状态。

你确定这是一场全球演出吗?

key_buffer_size太大了(3G)。如果你不需要MyISAM来做任何事情,把它设为50米。

检查infinidb_um_mem_limit,看看它对应用程序是否有意义。

建议将innodb_buffer_pool_size降低到2G,直到“窒息”得到解决为止。

细节和其他观察: ( (key_buffer_size - 1.2 * Key_blocks_used * 1024) / _ram ) = (3072M - 1.2 * 0 * 1024) / 15360M = 20.0% --内存浪费在key_buffer中的百分比。-降低key_buffer_size。

( Key_blocks_used * 1024 / key_buffer_size ) = 0 * 1024 / 3072M = 0 --使用key_buffer的百分比。高水渍。-降低key_buffer_size以避免不必要的内存使用。

( innodb_buffer_pool_size / _ram ) = 6144M / 15360M = 40.0% --用于InnoDB buffer_pool的内存的百分比

( Innodb_buffer_pool_pages_free * 16384 / innodb_buffer_pool_size ) = 392,768 * 16384 / 6144M = 99.9% --免费缓冲池

( innodb_print_all_deadlocks ) = innodb_print_all_deadlocks = OFF --是否记录所有死锁。--如果你被死锁所困扰,把这个打开警告:如果您有很多死锁,这可能会写入很多磁盘。

( local_infile ) = local_infile = ON - local_infile = ON是一个潜在的安全问题

( expire_logs_days ) = 0 --自动清除绑定日志(在这么多天之后)有多快--太大(或零)=消耗磁盘空间;太小=需要对网络/机器崩溃作出快速响应。(如果log_bin =OFF,则不相关)

( long_query_time ) = 5 --定义“慢速”查询的截止值(秒)。-建议2

异常大:

代码语言:javascript
复制
read_buffer_size = 32MB
Acl_database_grants = 780
Acl_proxy_users = 4
Acl_users = 281

Columstore.xml

95%的记忆??

代码语言:javascript
复制
    <MemoryCheckPercent>95</MemoryCheckPercent> <!-- Max real memory to limit growth of buffers to -->
    <DataFileLog>OFF</DataFileLog>

我想这是不相关的,因为它被注释掉了??

代码语言:javascript
复制
    <!-- enable if you want to limit how much memory may be used for hdfs read/write memory buffers.
    <hdfsRdwrBufferMaxSize>8G</hdfsRdwrBufferMaxSize>
    -->

请记住,除了Columnstore之外,MySQL正在消耗大量内存:

代码语言:javascript
复制
    <TotalUmMemory>25%</TotalUmMemory>
    <TotalPmUmMemory>10%</TotalPmUmMemory>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52994610

复制
相关文章

相似问题

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