我们已经安装了mariadb和列存储引擎,从过去几周开始,在重新启动服务之后,内存被塞满,所有的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发布于 2018-10-30 01:06:11
下面是对VARIABLES和(可疑)GLOBAL STATUS的分析;没有什么令人兴奋的:
观测:
更重要的问题:
正常运行时间= 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
异常大:
read_buffer_size = 32MB
Acl_database_grants = 780
Acl_proxy_users = 4
Acl_users = 281Columstore.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>https://stackoverflow.com/questions/52994610
复制相似问题