mariadb/columnstore引擎内存阻塞

svmlkihl  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(387)

我们已经安装了mariadb和columnstore引擎,从最近几周开始,我们面临着内存阻塞问题,内存阻塞,所有dml/ddl操作都卡住了,在重新启动服务之后,它得到了修复。

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
hzbexzde

hzbexzde1#

下面是对 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 直到“窒息”被解决。
细节和其他观察: ( (key_buffer_size - 1.2 * Key_blocks_used * 1024) / _ram ) = (3072M - 1.2 * 0 * 1024) / 15360M = 20.0% --在密钥缓冲区中浪费的ram百分比。-减小密钥缓冲区大小。 ( Key_blocks_used * 1024 / key_buffer_size ) = 0 * 1024 / 3072M = 0 --使用的密钥缓冲区百分比。高水位线。-降低键缓冲区大小以避免不必要的内存使用。 ( innodb_buffer_pool_size / _ram ) = 6144M / 15360M = 40.0% --innodb缓冲池使用的ram百分比 ( 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\u infle=on是一个潜在的安全问题 ( expire_logs_days ) = 0 --自动清除binlog的时间(在这许多天之后)--太大(或零)=消耗磁盘空间;太小=需要快速响应网络/机器崩溃(如果log_bin=off,则不相关) ( long_query_time ) = 5 --定义“慢”查询的截止时间(秒)。--建议2
异常大:

read_buffer_size = 32MB
Acl_database_grants = 780
Acl_proxy_users = 4
Acl_users = 281

columstore.xml文件
95%的内存??

<MemoryCheckPercent>95</MemoryCheckPercent> <!-- Max real memory to limit growth of buffers to -->
    <DataFileLog>OFF</DataFileLog>

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

<!-- enable if you want to limit how much memory may be used for hdfs read/write memory buffers.
    <hdfsRdwrBufferMaxSize>8G</hdfsRdwrBufferMaxSize>
    -->

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

<TotalUmMemory>25%</TotalUmMemory>
    <TotalPmUmMemory>10%</TotalPmUmMemory>

相关问题