Рейтинг:0

MariaDB использует гораздо больше памяти, чем должно

флаг sa

Мы используем MariaDB 10.3.32 на машине Ubuntu 20.04.4 с 6 ГБ памяти, на ней запущено около 20 приложений. Базы данных все InnoDB.

Даже в основном с настройками по умолчанию (см. внизу) использование памяти увеличивается день ото дня, казалось бы, без остановок. Примерно через месяц безотказной работы убийца OOM начинает делать свою работу.

Согласно этому оператору SQL пиковое использование памяти должно составлять около 600 МБ. Я знаю, что эти расчеты не точны, но даже после вчерашнего перезапуска сервера использование памяти уже сейчас составляет 1,6 ГБ (около 200 МБ при запуске).

ВЫБЕРИТЕ ОКРУГ(
  ( @@GLOBAL.key_buffer_size                     
   + @@GLOBAL.query_cache_size 
   + @@GLOBAL.tmp_table_size 
   + @@GLOBAL.innodb_buffer_pool_size 
   + @@GLOBAL.innodb_log_buffer_size 
   + @@GLOBAL.max_connections * ( 
       @@GLOBAL.sort_buffer_size
     + @@GLOBAL.read_buffer_size 
     + @@GLOBAL.read_rnd_buffer_size 
     + @@GLOBAL.join_buffer_size 
     + @@GLOBAL.thread_stack 
     + @@GLOBAL.binlog_cache_size)
  ) / 1024 / 1024, 1) `всего МБ`;

Что мне здесь не хватает?

ПОКАЗАТЬ ПЕРЕМЕННЫЕ;

alter_algorithm = ПО УМОЛЧАНИЮ
aria_block_size=8192
aria_checkpoint_interval=30
aria_checkpoint_log_activity=1048576
aria_encrypt_tables = ВЫКЛ.
aria_force_start_after_recovery_failures=0
aria_group_commit=нет
aria_group_commit_interval=0
aria_log_file_size=1073741824
aria_log_purge_type = немедленно
aria_max_sort_file_size=9223372036853727232
aria_page_checksum = ВКЛ.
aria_pagecache_age_threshold=300
aria_pagecache_buffer_size=134217728
aria_pagecache_division_limit=100
aria_pagecache_file_hash_size=512
aria_recover_options=РЕЗЕРВНОЕ КОПИРОВАНИЕ,БЫСТРОЕ
aria_repair_threads=1
aria_sort_buffer_size=268434432
aria_stats_method=nulls_unequal
aria_sync_log_dir=НОВЫЙ ФАЙЛ
aria_used_for_temp_tables=ВКЛ.
auto_increment_increment=1
auto_increment_offset=1
автофиксация = ВКЛ.
Automatic_sp_privacy=ВКЛ.
back_log=80
базисир=/usr
большие_таблицы=ВЫКЛ.
bind_address=::ffff:127.0.0.1
binlog_annotate_row_events = ВКЛ.
binlog_cache_size = 32768
binlog_checksum = CRC32
binlog_commit_wait_count=0
binlog_commit_wait_usec=100000
binlog_direct_non_transactional_updates=ВЫКЛ.
binlog_file_cache_size=16384
binlog_format = СМЕШАННЫЙ
binlog_optimize_thread_scheduling=ВКЛ.
binlog_row_image = ПОЛНЫЙ
binlog_stmt_cache_size=32768
bulk_insert_buffer_size = 8388608
character_set_client = utf8mb4
character_set_connection = utf8mb4
character_set_database = utf8
character_set_filesystem = двоичный
character_set_results = utf8mb4
character_set_server = utf8mb4
character_set_system = utf8
character_sets_dir=/usr/share/mysql/charsets/
check_constraint_checks=ВКЛ.
collation_connection = utf8mb4_general_ci
collation_database = utf8_general_ci
collation_server = utf8mb4_general_ci
column_compression_threshold=100
column_compression_zlib_level=6
column_compression_zlib_strategy=DEFAULT_STRATEGY
column_compression_zlib_wrap = ВЫКЛ.
завершение_тип = NO_CHAIN
concurrent_insert = АВТО
connect_timeout = 10
core_file = ВЫКЛ.
datadir=/var/lib/mysql/
date_format=%Y-%m-%d
datetime_format=%Y-%m-%d %H:%i:%s
deadlock_search_depth_long=15
deadlock_search_depth_short=4
deadlock_timeout_long=50000000
deadlock_timeout_short=10000
debug_no_thread_alarm = ВЫКЛ.
default_master_connection =
default_regex_flags=
default_storage_engine = ИнноБД
default_tmp_storage_engine =
default_week_format=0
delay_key_write = ВКЛ.
delayed_insert_limit=100
delayed_insert_timeout=300
delayed_queue_size=1000
div_precision_increment = 4
encrypt_binlog = ВЫКЛ.
encrypt_tmp_disk_tables=ВЫКЛ.
encrypt_tmp_files=ВЫКЛ.
применять_хранилище_двигатель =
eq_range_index_dive_limit=0
количество ошибок = 0
event_scheduler = ВЫКЛ.
дорогой_подзапрос_лимит = 100
expire_logs_days=10
absolute_defaults_for_timestamp=ВЫКЛ.
external_user=
extra_max_connections=1
дополнительный_порт=0
смыв=ВЫКЛ.
флеш_время = 0
external_key_checks=ВКЛ.
ft_boolean_syntax=+ -><()~*:""&|
ft_max_word_len=84
ft_min_word_len=4
ft_query_expansion_limit=20
ft_stopword_file=(встроенный)
общий_журнал = ВЫКЛ.
general_log_file=samson.log
group_concat_max_len=1048576
gtid_binlog_pos=
gtid_binlog_state =
gtid_current_pos=
gtid_domain_id = 0
gtid_ignore_duplicates=ВЫКЛ.
gtid_pos_auto_engines=
gtid_seq_no=0
gtid_slave_pos=
gtid_strict_mode=ВЫКЛ.
have_compress=ДА
have_crypt=ДА
have_dynamic_loading = ДА
have_geometry=ДА
have_openssl = НЕТ
have_profiling=ДА
have_query_cache = ДА
have_rtree_keys=ДА
have_ssl = ОТКЛЮЧЕНО
have_symlink = ДА
гистограмма_размер = 0
histogram_type = SINGLE_PREC_HB
host_cache_size = 279
имя_хоста=samson.company.com
личность = 0
idle_readonly_transaction_timeout=0
idle_transaction_timeout = 0
idle_write_transaction_timeout = 0
ignore_builtin_innodb = ВЫКЛ.
ignore_db_dirs=
in_predicate_conversion_threshold=1000
in_transaction=0
init_connect=
init_file=
init_slave=
innodb_adaptive_flushing=ВКЛ.
innodb_adaptive_flushing_lwm=10.000000
innodb_adaptive_hash_index=ВКЛ.
innodb_adaptive_hash_index_parts=8
innodb_adaptive_max_sleep_delay=150000
innodb_autoextend_increment = 64
innodb_autoinc_lock_mode=1
innodb_background_scrub_data_check_interval=3600
innodb_background_scrub_data_compressed=ВЫКЛ.
innodb_background_scrub_data_interval=604800
innodb_background_scrub_data_uncompressed=ВЫКЛ.
innodb_buf_dump_status_frequency=0
innodb_buffer_pool_chunk_size=134217728
innodb_buffer_pool_dump_at_shutdown=ВКЛ.
innodb_buffer_pool_dump_now=ВЫКЛ.
innodb_buffer_pool_dump_pct=25
innodb_buffer_pool_filename=ib_buffer_pool
innodb_buffer_pool_instances=1
innodb_buffer_pool_load_abort = ВЫКЛ.
innodb_buffer_pool_load_at_startup=ВКЛ.
innodb_buffer_pool_load_now=ВЫКЛ.
innodb_buffer_pool_size = 134217728
innodb_change_buffer_max_size=25
innodb_change_buffering=все
innodb_checksum_algorithm = crc32
innodb_checksums = ON
innodb_cmp_per_index_enabled=ВЫКЛ.
innodb_commit_concurrency=0
innodb_compression_algorithm=zlib
innodb_compression_default = ВЫКЛ.
innodb_compression_failure_threshold_pct=5
innodb_compression_level=6
innodb_compression_pad_pct_max=50
innodb_concurrency_tickets=5000
innodb_data_file_path=ibdata1:12M:авторасширение
innodb_data_home_dir=
innodb_deadlock_detect = ВКЛ.
innodb_default_encryption_key_id=1
innodb_default_row_format = динамический
innodb_defragment = ВЫКЛ.
innodb_defragment_fill_factor = 0,900000
innodb_defragment_fill_factor_n_recs=20
innodb_defragment_frequency=40
innodb_defragment_n_pages=7
innodb_defragment_stats_accuracy=0
innodb_disable_sort_file_cache = ВЫКЛ.
innodb_disallow_writes=ВЫКЛ.
innodb_doublewrite = ВКЛ.
innodb_encrypt_log = ВЫКЛ.
innodb_encrypt_tables = ВЫКЛ.
innodb_encrypt_temporary_tables=ВЫКЛ.
innodb_encryption_rotate_key_age=1
innodb_encryption_rotation_iops=100
innodb_encryption_threads=0
innodb_fast_shutdown=1
innodb_fatal_semaphore_wait_threshold=600
innodb_file_format =
innodb_file_per_table = ВКЛ.
innodb_fill_factor=100
innodb_flush_log_at_timeout=1
innodb_flush_log_at_trx_commit=1
innodb_flush_method=fsync
innodb_flush_neighbors=1
innodb_flush_sync = ВКЛ.
innodb_flushing_avg_loops=30
innodb_force_load_corrupted=ВЫКЛ.
innodb_force_primary_key = ВЫКЛ.
innodb_force_recovery=0
innodb_ft_aux_table=
innodb_ft_cache_size=8000000
innodb_ft_enable_diag_print=ВЫКЛ.
innodb_ft_enable_stopword=ВКЛ.
innodb_ft_max_token_size=84
innodb_ft_min_token_size=3
innodb_ft_num_word_optimize=2000
innodb_ft_result_cache_limit=2000000000
innodb_ft_server_stopword_table=
innodb_ft_sort_pll_степень=2
innodb_ft_total_cache_size=640000000
innodb_ft_user_stopword_table=
innodb_idle_flush_pct=100
innodb_immediate_scrub_data_uncompressed=ВЫКЛ.
innodb_instant_alter_column_allowed=добавить_последний
innodb_io_capacity=200
innodb_io_capacity_max=2000
innodb_large_prefix =
innodb_lock_schedule_algorithm=fcfs
innodb_lock_wait_timeout=50
innodb_locks_unsafe_for_binlog=ВЫКЛ.
innodb_log_buffer_size=16777216
innodb_log_checksums = ВКЛ.
innodb_log_compressed_pages=ВКЛ.
innodb_log_file_size=50331648
innodb_log_files_in_group=2
innodb_log_group_home_dir=./
innodb_log_optimize_ddl = ВЫКЛ.
innodb_log_write_ahead_size=8192
innodb_lru_scan_depth=1024
innodb_max_dirty_pages_pct=75.000000
innodb_max_dirty_pages_pct_lwm = 0,000000
innodb_max_purge_lag=0
innodb_max_purge_lag_delay=0
innodb_max_purge_lag_wait=4294967295
innodb_max_undo_log_size=10485760
innodb_monitor_disable =
innodb_monitor_enable =
innodb_monitor_reset =
innodb_monitor_reset_all =
innodb_old_blocks_pct=37
innodb_old_blocks_time=1000
innodb_online_alter_log_max_size=134217728
innodb_open_files=2000
innodb_optimize_fulltext_only=ВЫКЛ.
innodb_page_cleaners=1
innodb_page_size = 16384
innodb_prefix_index_cluster_optimization=ВЫКЛ.
innodb_print_all_deadlocks=ВЫКЛ.
innodb_purge_batch_size=300
innodb_purge_rseg_truncate_frequency=128
innodb_purge_threads=4
innodb_random_read_ahead = ВЫКЛ.
innodb_read_ahead_threshold=56
innodb_read_io_threads=4
innodb_read_only=ВЫКЛ.
innodb_replication_delay=0
innodb_rollback_on_timeout=ВЫКЛ.
innodb_rollback_segments=128
innodb_scrub_log = ВЫКЛ.
innodb_scrub_log_speed=256
innodb_sort_buffer_size = 1048576
innodb_spin_wait_delay=4
innodb_stats_auto_recalc=ВКЛ.
innodb_stats_include_delete_marked=ВЫКЛ.
innodb_stats_method=nulls_equal
innodb_stats_modified_counter=0
innodb_stats_on_metadata=ВЫКЛ.
innodb_stats_persistent=ВКЛ.
innodb_stats_persistent_sample_pages=20
innodb_stats_sample_pages=8
innodb_stats_traditional=ВКЛ.
innodb_stats_transient_sample_pages=8
innodb_status_output = ВЫКЛ.
innodb_status_output_locks=ВЫКЛ.
innodb_strict_mode = ВКЛ.
innodb_sync_array_size=1
innodb_sync_spin_loops=30
innodb_table_locks = ВКЛ.
innodb_temp_data_file_path=ibtmp1:12M:авторасширение
innodb_thread_concurrency=0
innodb_thread_sleep_delay=10000
innodb_tmpdir=
innodb_undo_directory=./
innodb_undo_log_truncate = ВЫКЛ.
innodb_undo_logs=128
innodb_undo_tablespaces=0
innodb_use_atomic_writes = ВКЛ.
innodb_use_native_aio=ВКЛ.
innodb_version=10.3.32
innodb_write_io_threads=4
insert_id = 0
интерактивный_тайм-аут = 28800
join_buffer_size = 262144
join_buffer_space_limit=2097152
join_cache_level=2
keep_files_on_create=ВЫКЛ.
key_buffer_size = 65536
key_cache_age_threshold=300
key_cache_block_size=1024
key_cache_division_limit=100
key_cache_file_hash_size=512
key_cache_segments=0
large_files_support = ВКЛ.
big_page_size=0
большие_страницы=ВЫКЛ.
last_gtid=
last_insert_id=0
lc_messages=en_US
lc_messages_dir=/usr/доля/mysql
lc_time_names=en_US
лицензия=GPL
local_infile = ВЫКЛ.
lock_wait_timeout=86400
lock_in_memory=ВЫКЛ.
log_bin = ВЫКЛ.
log_bin_basename=
log_bin_compress = ВЫКЛ.
log_bin_compress_min_len=256
log_bin_index =
log_bin_trust_function_creators=ВЫКЛ.
log_disabled_statements=sp
log_error=/var/журнал/mysql/error.log
log_output = ФАЙЛ
log_queries_not_using_indexes=ВЫКЛ.
log_slave_updates = ВЫКЛ.
log_slow_admin_statements = ON
log_slow_disabled_statements=sp
log_slow_filter=admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
log_slow_rate_limit=1
log_slow_slave_statements = ON
log_slow_verbosity =
log_tc_size = 24576
log_warnings=2
long_query_time=10.000000
low_priority_updates=ВЫКЛ.
lower_case_file_system=ВЫКЛ.
нижний_case_table_names=0
master_verify_checksum = ВЫКЛ.
max_allowed_packet = 67108864
max_binlog_cache_size=18446744073709547520
max_binlog_size = 1073741824
max_binlog_stmt_cache_size=18446744073709547520
max_connect_errors=100
макс_подключения = 151
max_delayed_threads=20
max_digest_length=1024
max_error_count=64
max_heap_table_size = 16777216
max_insert_delayed_threads=20
max_join_size = 18446744073709551615
max_length_for_sort_data=1024
max_long_data_size = 67108864
max_prepared_stmt_count=16382
max_recursive_iterations=4294967295
max_relay_log_size = 1073741824
max_seeks_for_key=4294967295
max_session_mem_used=9223372036854775807
max_sort_length=1024
max_sp_recursion_depth=0
max_statement_time = 0,000000
max_tmp_tables=32
max_user_connections=0
max_write_lock_count=4294967295
metadata_locks_cache_size=1024
metadata_locks_hash_instances=8
min_examined_row_limit=0
mrr_buffer_size = 262144
multi_range_count=256
myisam_block_size = 1024
myisam_data_pointer_size=6
myisam_max_sort_file_size=9223372036853727232
myisam_mmap_size=18446744073709551615
myisam_recover_options=РЕЗЕРВНОЕ КОПИРОВАНИЕ,БЫСТРОЕ
myisam_repair_threads=1
myisam_sort_buffer_size=134216704
myisam_stats_method=NULLS_UNEQUAL
myisam_use_mmap = ВЫКЛ.
mysql56_temporal_format = ВКЛ.
net_buffer_length=16384
net_read_timeout=30
net_retry_count=10
net_write_timeout=60
старый=ВЫКЛ.
old_alter_table = ПО УМОЛЧАНИЮ
старый_режим=
old_passwords=ВЫКЛ.
open_files_limit=32186
оптимизатор_prune_level=1
оптимизатор_поиска_глубина = 62
optimizer_selectivity_sampling_limit=100
optimizer_switch=index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on, in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka= on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on
оптимизатор_use_condition_selectivity=1
performance_schema = ВЫКЛ.
performance_schema_accounts_size=-1
performance_schema_digests_size=-1
performance_schema_events_stages_history_long_size=-1
performance_schema_events_stages_history_size=-1
performance_schema_events_statements_history_long_size=-1
performance_schema_events_statements_history_size=-1
performance_schema_events_waits_history_long_size=-1
performance_schema_events_waits_history_size=-1
performance_schema_hosts_size=-1
performance_schema_max_cond_classes=80
performance_schema_max_cond_instances=-1
performance_schema_max_digest_length=1024
performance_schema_max_file_classes=50
performance_schema_max_file_handles=32768
performance_schema_max_file_instances=-1
performance_schema_max_mutex_classes=200
performance_schema_max_mutex_instances=-1
performance_schema_max_rwlock_classes=40
performance_schema_max_rwlock_instances=-1
performance_schema_max_socket_classes=10
performance_schema_max_socket_instances=-1
performance_schema_max_stage_classes=160
performance_schema_max_statement_classes=200
performance_schema_max_table_handles=-1
performance_schema_max_table_instances=-1
performance_schema_max_thread_classes=50
performance_schema_max_thread_instances=-1
performance_schema_session_connect_attrs_size=-1
performance_schema_setup_actors_size=100
performance_schema_setup_objects_size=100
performance_schema_users_size=-1
pid_file=/run/mysqld/mysqld.pid
plugin_dir=/usr/lib/x86_64-linux-gnu/mariadb19/plugin/
plugin_maturity=гамма
порт=3306
preload_buffer_size = 32768
профилирование=ВЫКЛ.
профилирование_история_размер = 15
progress_report_time=5
протокол_версия = 10
proxy_protocol_networks =
прокси_пользователь =
псевдо_ведомый_режим = ВЫКЛ.
псевдо_поток_id = 97113
query_alloc_block_size = 16384
query_cache_limit = 1048576
query_cache_min_res_unit=4096
query_cache_size = 0
query_cache_strip_comments = ВЫКЛ.
query_cache_type = ВЫКЛ.
query_cache_wlock_invalidate = ВЫКЛ.
query_prealloc_size = 24576
rand_seed1 = 158762979
rand_seed2 = 20392611
range_alloc_block_size = 4096
read_binlog_speed_limit=0
read_buffer_size = 131072
read_only=ВЫКЛ.
read_rnd_buffer_size = 262144
реле_журнал =
relay_log_basename=
реле_лог_индекс =
relay_log_info_file=relay-log.info
relay_log_purge = ВКЛ.
relay_log_recovery = ВЫКЛ.
relay_log_space_limit=0
replicate_annotate_row_events=ВКЛ.
replicate_do_db=
replicate_do_table =
replicate_events_marked_for_skip=ПОВТОРИТЬ
репликация_игнорировать_дб =
replicate_ignore_table =
replicate_wild_do_table=
replicate_wild_ignore_table=
отчет_хост =
отчет_пароль=
отчет_порт = 3306
отчет_пользователь =
rowid_merge_buff_size = 8388608
rpl_semi_sync_master_enabled=ВЫКЛ.
rpl_semi_sync_master_timeout=10000
rpl_semi_sync_master_trace_level=32
rpl_semi_sync_master_wait_no_slave=ВКЛ.
rpl_semi_sync_master_wait_point=ПОСЛЕ_СОВЕРШЕНИЯ
rpl_semi_sync_slave_delay_master=ВЫКЛ.
rpl_semi_sync_slave_enabled=ВЫКЛ.
rpl_semi_sync_slave_kill_conn_timeout=5
rpl_semi_sync_slave_trace_level=32
secure_auth = ВКЛ.
secure_file_priv=
secure_timestamp = НЕТ
идентификатор_сервера=1
session_track_schema = ВКЛ.
session_track_state_change=ВЫКЛ.
session_track_system_variables=autocommit,character_set_client,character_set_connection,character_set_results,time_zone
session_track_transaction_info=ВЫКЛ.
skip_external_locking=ВКЛ.
skip_name_resolve=ВЫКЛ.
skip_networking=ВЫКЛ.
skip_parallel_replication=ВЫКЛ.
skip_replication=ВЫКЛ.
skip_show_database = ВЫКЛ.
slave_compressed_protocol = ВЫКЛ.
slave_ddl_exec_mode = ИДЕМПОТЕНТ
slave_domain_parallel_threads=0
slave_exec_mode = СТРОГО
slave_load_tmpdir=/tmp
slave_max_allowed_packet=1073741824
slave_net_timeout=60
slave_parallel_max_queued=131072
slave_parallel_mode = консервативный
slave_parallel_threads=0
раб_параллель_воркерс = 0
slave_run_triggers_for_rbr=НЕТ
slave_skip_errors=ВЫКЛ.
slave_sql_verify_checksum = ВКЛ.
slave_transaction_retries=10
slave_transaction_retry_errors=1213,1205
slave_transaction_retry_interval=0
slave_type_conversions=
slow_launch_time=2
slow_query_log = ВЫКЛ.
slow_query_log_file=samson-slow.log
сокет=/выполнить/mysqld/mysqld.sock
sort_buffer_size = 2097152
sql_auto_is_null = ВЫКЛ.
sql_big_selects = ВКЛ.
sql_buffer_result = ВЫКЛ.
sql_log_bin = ВКЛ.
sql_log_off = ВЫКЛ.
sql_mode = ОШИБКА_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
sql_notes = ВКЛ.
sql_quote_show_create = ВКЛ.
sql_safe_updates = ВЫКЛ.
sql_select_limit=18446744073709551615
sql_slave_skip_counter = 0
sql_warnings = ВЫКЛ.
ssl_ca=
ssl_capath =
ssl_cert=
SSL_шифр =
ssl_crl=
ssl_crlpath=
ssl_key=
standard_compliant_cte = ВКЛ.
storage_engine = InnoDB
Stored_program_cache = 256
strict_password_validation = ВКЛ.
sync_binlog=0
sync_frm = ВКЛ.
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000
system_time_zone = среднеевропейское время
system_versioning_alter_history=ОШИБКА
system_versioning_asof = ПО УМОЛЧАНИЮ
table_definition_cache=400
table_open_cache=2000
table_open_cache_instances=8
tcp_keepalive_interval = 0
tcp_keepalive_probes=0
tcp_keepalive_time = 0
thread_cache_size = 151
thread_concurrency = 10
thread_handling = один поток на соединение
thread_pool_idle_timeout = 60
thread_pool_max_threads=65536
thread_pool_oversubscribe=3
thread_pool_prio_kickup_timer=1000
thread_pool_priority = авто
thread_pool_size = 4
thread_pool_stall_limit=500
thread_stack = 299008
time_format=%H:%i:%s
time_zone = СИСТЕМА
timed_mutexes = ВЫКЛ.
отметка времени = 1646638900.010190
tmp_disk_table_size=18446744073709551615
tmp_memory_table_size=16777216
tmp_table_size = 16777216
tmpdir=/tmp
transaction_alloc_block_size=8192
transaction_prealloc_size = 4096
tx_isolation = ПОВТОРЯЕМОЕ-ЧТЕНИЕ
tx_read_only = ВЫКЛ.
unique_checks=ВКЛ.
updateable_views_with_limit = ДА
use_stat_tables=НИКОГДА
пользовательская статистика=ВЫКЛ.
версия = 10.3.32-MariaDB-0ubuntu0.20.04.1
version_comment = Убунту 20.04
version_compile_machine = x86_64
version_compile_os=debian-linux-gnu
version_malloc_library = система
version_source_revision = a2f147af35480e27bd599462db59b9b95f71acd9
version_ssl_library = YaSSL 2.4.4
ожидание_тайм-аут = 28800
warning_count=0
wsrep_osu_method=ТОИ
wsrep_auto_increment_control = ВКЛ.
wsrep_causal_reads=ВЫКЛ.
wsrep_certification_rules=строгий
wsrep_certify_nonpk = ВКЛ.
wsrep_cluster_address=
wsrep_cluster_name=my_wsrep_cluster
wsrep_convert_lock_to_trx = ВЫКЛ.
wsrep_data_home_dir=/var/lib/mysql/
wsrep_dbug_option=
wsrep_debug = ВЫКЛ.
wsrep_desync=ВЫКЛ.
wsrep_dirty_reads=ВЫКЛ.
wsrep_drupal_282555_workaround=ВЫКЛ.
wsrep_forced_binlog_format = НЕТ
wsrep_gtid_domain_id = 0
wsrep_gtid_mode=ВЫКЛ.
wsrep_load_data_splitting=ВКЛ.
wsrep_log_conflicts=ВЫКЛ.
wsrep_max_ws_rows=0
wsrep_max_ws_size=2147483647
wsrep_mysql_replication_bundle=0
wsrep_node_address =
wsrep_node_incoming_address=АВТО
wsrep_node_name=samson.company.com
wsrep_notify_cmd=
wsrep_on=ВЫКЛ.
wsrep_patch_version=wsrep_25.24
wsrep_provider = нет
wsrep_provider_options=
wsrep_recover = ВЫКЛ.
wsrep_reject_queries = НЕТ
wsrep_replicate_myisam = ВЫКЛ.
wsrep_restart_slave = ВЫКЛ.
wsrep_retry_autocommit=1
wsrep_slave_fk_checks=ВКЛ.
wsrep_slave_uk_checks=ВЫКЛ.
wsrep_slave_threads=1
wsrep_sst_auth =
wsrep_sst_donor=
wsrep_sst_donor_rejects_queries=ВЫКЛ.
wsrep_sst_method=rsync
wsrep_sst_receive_address=АВТО
wsrep_start_position=00000000-0000-0000-0000-000000000000:-1
wsrep_sync_wait = 0

ПОКАЗАТЬ ГЛОБАЛЬНЫЙ СТАТУС;

ПОКАЗАТЬ СТАТУС ДВИГАТЕЛЯ INNODB;

======================================
2022-03-07 10:41:32 0x7f9b94576700 ВЫВОД МОНИТОРА INNODB
======================================
Среднее значение за секунду, рассчитанное за последние 45 секунд.
------------------
ФОНОВАЯ РЕЗЬБА
------------------
Циклы srv_master_thread: 92093 srv_active, 0 srv_shutdown, 73474 srv_idle
Журнал srv_master_thread очищается и пишет: 165567
----------
СЕМАФОРЫ
----------
OS WAIT ARRAY INFO: количество резервирований 70036135
OS WAIT ARRAY INFO: количество сигналов 41866295
RW-общие спины 6620911, раунды 67614112, ожидания ОС 937873
RW-excl отправляет 763078, округляет 9241292, ОС ожидает 212931
RW-sx вращает 47981, раундов 864436, ОС ожидает 19051
Раундов вращения за ожидание: 10,21 RW-совместно, 12,11 RW-искл, 18,02 RW-sx
------------
СДЕЛКИ
------------
Счетчик идентификаторов транзакций 310769191
Выполнена очистка для trx n:o < 310769191 undo n:o < 0 состояние: работает, но простаивает
Длина списка истории 0
ПЕРЕЧЕНЬ СДЕЛОК ДЛЯ КАЖДОЙ СЕССИИ:
---ТРАНЗАКЦИЯ 421781198373368, не начата
таблиц mysql используется 2, заблокировано 0
0 структур блокировки, размер кучи 1128, 0 блокировок строк
---ТРАНЗАКЦИЯ 421781198369192, не начата
таблиц mysql используется 1, заблокировано 0
0 структур блокировки, размер кучи 1128, 0 блокировок строк
---ТРАНЗАКЦИЯ 421781198360840, не начата
0 структур блокировки, размер кучи 1128, 0 блокировок строк
---ТРАНЗАКЦИЯ 421781198352488, не начата
0 структур блокировки, размер кучи 1128, 0 блокировок строк
--------
ФАЙЛОВЫЙ ВВОД/ВЫВОД
--------
Состояние потока ввода-вывода 0: ожидание завершенных запросов aio (вставить поток буфера)
Состояние потока ввода-вывода 1: ожидание завершенных запросов aio (поток журнала)
Состояние потока ввода-вывода 2: ожидание завершенных запросов aio (поток чтения)
Состояние потока ввода-вывода 3: ожидание завершенных запросов aio (поток чтения)
Состояние потока ввода-вывода 4: ожидание завершенных запросов aio (поток чтения)
Состояние потока ввода-вывода 5: ожидание завершенных запросов aio (поток чтения)
Состояние потока ввода-вывода 6: ожидание завершенных запросов aio (поток записи)
Состояние потока ввода-вывода 7: ожидание завершенных запросов aio (поток записи)
Состояние потока ввода-вывода 8: ожидание завершенных запросов aio (поток записи)
Состояние потока ввода-вывода 9: ожидание завершенных запросов aio (поток записи)
В ожидании нормального чтения aio: [0, 0, 0, 0] , aio пишет: [0, 0, 0, 0] ,
 ibuf aio читает:, записывает ввод-вывод:, синхронизирует ввод-вывод:
Журнал ожидающих сбросов (fsync): 0; буферный пул: 0
57840777 операций чтения файлов ОС, 85219586 операций записи файлов ОС, 48638891 операций синхронизации ОС
776,40 операций чтения/с, 16384 байт/чтение в среднем, 74,24 операций записи/с, 21,80 fsyncs/с
-------------------------------------
ВСТАВЬТЕ БУФЕР И АДАПТИВНЫЙ ХЕШ-ИНДЕКС
-------------------------------------
Ibuf: размер 1, длина свободного списка 3093, размер сегмента 3095, слияния 1230040
объединенные операции:
 вставить 361053, удалить пометку 3219714, удалить 84980
отброшенные операции:
 вставить 0, удалить отметку 0, удалить 0
Размер хеш-таблицы 34679, куча узлов имеет 9 буферов.
Размер хеш-таблицы 34679, куча узлов имеет 43 буфера.
Размер хеш-таблицы 34679, куча узлов имеет 230 буферов.
Размер хеш-таблицы 34679, куча узлов имеет 24 буфера.
Размер хеш-таблицы 34679, куча узлов имеет 20 буферов.
Размер хеш-таблицы 34679, куча узлов имеет 24 буфера.
Размер хэш-таблицы 34679, куча узлов имеет 218 буферов.
Размер хеш-таблицы 34679, куча узлов имеет 18 буферов.
280073,24 хеш-поиска/с, 32402,72 не-хэш-поиска/с
---
ЖУРНАЛ
---
Порядковый номер журнала 634119972911
Лог очищен до 634119972851
Страницы сброшены до 634119953306
Последняя контрольная точка по телефону 634119946466.
0 ожидающих сбросов журнала, 0 ожидающих записей chkp
41824871 операций ввода-вывода журнала, 5,13 операций ввода-вывода журнала в секунду
----------------------
БУФЕРНЫЙ ПУЛ И ПАМЯТЬ
----------------------
Всего выделено большой памяти 170590208
Словарной памяти выделено 4822048
Размер буферного пула 8192
Свободные буферы 1021
Страниц базы данных 6585
Страницы старой базы данных 2411
Модифицированные страницы БД 47
Процент грязных страниц (LRU и свободные страницы): 0,618
Макс. процент грязных страниц: 75.000
В ожидании чтения 0
Ожидание записи: LRU 0, сброс списка 0, одна страница 0
Страницы сделаны молодыми 41881503, не молодыми 4455855002
173,44 детенышей/с, 18000,40 немолодых/с
Страниц прочитано 57821248, создано 1104771, написано 42475934
776,40 операций чтения/с, 0,64 операций создания/с, 66,64 операций записи/с
Частота попаданий в буферный пул 999/1000, скорость создания молодняка 0/1000, а не 19/1000
Упреждающее чтение страниц 0,00/с, вытеснение без доступа 0,00/с, Упреждающее случайное чтение 0,00/с
Длина LRU: 6585, длина unzip_LRU: 0
Сумма ввода/вывода[43405]:cur[0], разархивировать sum[0]:cur[0]
--------------
РЯДНЫЕ ОПЕРАЦИИ
--------------
0 запросов внутри InnoDB, 0 запросов в очереди
0 представлений для чтения открыто внутри InnoDB
Идентификатор процесса = 3623495, идентификатор основного потока = 140305681893120, состояние: спящий
Количество вставленных строк 749019, обновленных 1991576, удаленных 39997045, прочитанных 8188912012
5,38 вставки/с, 1,82 обновления/с, 2,53 удаления/с, 293414,08 чтения/с
Количество вставленных системных строк 0, обновленных 0, удаленных 0, прочитанных 0
0,00 вставок/с, 0,00 обновлений/с, 0,00 удалений/с, 0,00 чтений/с
----------------------------
КОНЕЦ ВЫВОДА МОНИТОРА INNODB
=============================

Редактировать 1:

После еще одного дня работы процесс mysqld теперь составляет 1,6 ГБ (RES в соответствии с командой top). Дополнительная информация по запросу:

кошка /proc/<ID>/status

Редактировать 2:

За ночь использование памяти увеличилось с 1,6 ГБ до 1,8 ГБ. Вот одна строка, которая торчит (max_memory_used выше, чем memory_used) из вывода

SELECT db, command, progress, memory_used, max_memory_used, examined_rows FROM INFORMATION_SCHEMA.PROCESSLIST в порядке max_memory_used desc limit 10;

БД;команда;прогресс;используемая_память;максимальное_используемое_память;исследуемые_строки
(NULL);Запрос;0;95384;4253032;0

Но, похоже, это только мой процесс, используемый именно для этого запроса.Так это кажется обычным? За исключением моего запроса, полный список процессов содержит только рабочие процессы очистки InnoDB, координатор очистки и обработчик завершения работы, когда никто ни к чему не обращается.

Gerrit avatar
флаг cn
Оператор SQL для размера памяти, вероятно, не включает память, затраченную на репликацию, и, возможно, также не учитывает память в движке aria. Даже в этом случае пик VM может легко удвоиться. Может быть, вы могли бы поделиться строками памяти /proc//положение дел. Вам нужно будет найти pid процесса сервера mariadb. Вероятно, в /var/run/mysqld.
Gerrit avatar
флаг cn
Можете ли вы попробовать «показать глобальный статус, например «memory_used»»?
флаг sa
Спасибо за ваши ответы. Добавил информацию в исходный пост!
Gerrit avatar
флаг cn
Все, что выскакивает в `SELECT db,command,progress,memory_used,max_memory_used,examined_rows FROM INFORMATION_SCHEMA.PROCESSLIST в порядке max_memory_used desc limit 10;`?
флаг ua
Что еще работает на машине? Например, я считаю, что Chrome растет примерно на 1 ГБ в неделю без веской причины.
флаг ua
`tmp_table_size` принадлежит второму списку; binlog_cache_size в первом. Но никакая формула не является действительно «правильной».
флаг sa
@Gerrit: я не уверен, что ищу, но memory_used и max_memory_used равны и довольно малы (
флаг sa
@RickJames: Это довольно простая безголовая установка с Apache и PHP-FPM. Если я отсортирую использование памяти, вторая запись после MySQL использует только 100 МБ (systemd-journal), apache счастливо простаивает с используемой памятью 25 МБ.
Gerrit avatar
флаг cn
Кажется, что mariadb довольно сильно пропускает память. Что я заметил из значений в глобальном статусе, так это то, что пул innodb слишком мал, только небольшая часть запросов read_requests innodb обслуживается из его пула оперативной памяти. Пропускная способность хранилища, вероятно, сейчас является самым ограничивающим фактором производительности.
Gerrit avatar
флаг cn
То же самое и с aria pagecache, он тоже слишком мал.
Gerrit avatar
флаг cn
Вопрос, у вас работает ядро ​​openVZ?
флаг sa
Я пробовал другие размеры пула innodb (последний раз и около недели: 2 ГБ). Утечка все же произошла, поэтому я сбросил ее по умолчанию, прежде чем публиковать здесь. Я бы с удовольствием попробовал другие значения снова, если это имеет смысл для целей отладки.
флаг sa
Да, это на VPS, и я знаю, что наш хостинг-провайдер использует Virtuozzo. Однако не уверен насчет OpenVZ: не могу найти установленные пакеты, такие как linux-openvz. Как мне узнать, что именно работает?
Gerrit avatar
флаг cn
Я видел две строчки в конце /proc//статус, который я не узнал. Кажется, они принадлежат ядрам openVZ и имеют какое-то отношение к MMU. Я также вижу много ядер ЦП, на самом деле, я думаю, слишком много, чтобы разумно использовать их. Но дело с MMU заставило меня задуматься о том, что, возможно, аппаратных ресурсов MMU недостаточно и что это может быть как-то связано с обширной утечкой памяти. Какая архитектура процессора используется? Возможно, mysql/mariadb не подвергается стресс-тестированию разработчиками в такой среде.
Gerrit avatar
флаг cn
Чтобы пояснить мои комментарии. Кажется, что выделение виртуальной памяти, которое обычно выполняется на основе обещаний и поддерживается реальными страницами только тогда, когда оно фактически используется, в этой системе немедленно становится поддерживаемым реальными страницами. Mysql, как и многие программы, выделяет гораздо больше виртуальной памяти, чем требуется программе в то время.Частично из-за лежащих в основе библиотек, частично из-за самой программы, и это очень распространено среди программ, потому что большинство систем хорошо с этим справляются.
Gerrit avatar
флаг cn
Либо это, либо ваша загрузка непреднамеренно сталкивается с какой-то особенно неприятной ошибкой утечки памяти в mariadb. Но поскольку ваша установка кажется почти стандартом болота, если немного осветить пул памяти, я должен был ожидать гораздо больше сообщений об этих проблемах с памятью, забивающих установки mariadb. Еще можно конечно.
Gerrit avatar
флаг cn
Также может быть, что операторы хоста активно запрещают перераспределение страниц в ядре, что приведет к точно такой же проблеме. Самым простым выходом, конечно же, было бы просто перезапускать службу базы данных каждую ночь или в другое подходящее время. Возможно, немного неудовлетворительно, но это, вероятно, удержит вас в пределах памяти, и вы можете выделить больше памяти для пулов innodb и aria, где это наиболее важно.
флаг sa
Спасибо @Gerrit за ваши подробные объяснения. Это имеет смысл, потому что наша установка на самом деле не такая уж необычная. Я обязательно сообщу нашему хостинг-провайдеру. Они хорошо разбираются в этих вещах и, возможно, знают что-то от других клиентов или даже от своего поставщика услуг. Дам вам знать, если это приведет к чему-то полезному! Если нет: одного перезапуска каждые две недели должно быть достаточно. Обычно убийца OOM появляется раз в месяц или шесть недель, так что это должно быть совершенно нормально.
Gerrit avatar
флаг cn
Если вы хотите узнать больше, вы можете следовать: https://mariadb.com/kb/en/debugging-memory-usage/. Но в Ubuntu 20 пакет называется «google-perftools», библиотека tcmalloc — «/usr/lib/x86_64-linux-gnu/libtcmalloc.so.4», а pprof — «google-pprof». См. также https://jira.mariadb.org/browse/MDEV-25925
флаг sa
Еще один вопрос о aria_pagecache_buffer_size: какой здесь разумный размер? На этом полезном сайте об этом не говорится, поэтому я не уверен: https://mariadb.com/kb/en/mariadb-memory-allocation/
Gerrit avatar
флаг cn
При ближайшем рассмотрении данных из `глобального состояния` кажется, что данные не подходят для буферизации в этом кеше, остается много неиспользуемых блоков. Если это произойдет после некоторого времени работы, то увеличение этого кеша, вероятно, не окажет никакого влияния на производительность. Тогда сосредоточьтесь на пуле innodb.
Рейтинг:0
флаг ua

buffer_pool растет, пока не достигнет innodb_buffer_pool_size. Это должен быть самый большой компонент. 128M, вероятно, опасно мал; Обычно я бы рекомендовал 4G, если на этом сервере не запущены другие приложения. Насколько велик набор данных?

Вы действительно сделали только 5 отборов за 2 дня? Возможно, это ПОКАЗАТЬ СТАТУС? Нам нужно ПОКАЗАТЬ ГЛОБАЛЬНЫЙ СТАТУС вместо.

Утечки памяти исправлены с версии 10.3

----- 06.07.2021 MariaDB 10.6.3 -- -- -----

МДЭВ-25481 Утечка памяти в Cached_item_str::Cached_item_str WITH TIES с участием большого двоичного объекта

----- 21 мая 2021 г. MariaDB 10.6.1 -- -- -----

Сообщать об утечке памяти из mariadbd, если используется -T или --debug

----- 22 февраля 2021 г. MariaDB 10.5.9 -- -- -----

МДЭВ-24693 LeakSanitizer: обнаружены утечки памяти в mem_heap_create_block_func/fts_optimize_create_msg

----- 03.11.2020 MariaDB 10.5.7 -- -- -----

МДЭВ-23526 В InnoDB происходит утечка памяти для некоторых статических объектов Merge Revision #f2739e2a96 2020-08-21 11:53:55 +0300 — Merge 10.4 в 10.5

----- 03.11.2020 MariaDB 10.5.7 -- -- -----

Исправлена ​​утечка памяти при выделении Alter_drop. Слияние ревизии #1657b7a583 22.10.2020 17:08:49 +0300 — слияние 10.4 с 10.5.

----- 03.11.2020 MariaDB 10.4.16 и 03.11.2020 MariaDB 10.3.26 -- Примечание к выпуску -- -----

Исправлена ​​утечка памяти для связанных подзапросов с ROLLUP (МДЭВ-17066)

----- 03.11.2020 MariaDB 10.4.16 -- -- -----

МДЭВ-23526 В InnoDB происходит утечка памяти для некоторых статических объектов. Ревизия слияния #2643249da5 21-08-2020, 10:19:44 +0300 - Слияние 10.3 с версией 10.4. Слияние версии #2fa9f8c53a 20-08-2020 11:01:47 +0300 - Слияние 10.3 с версией 10.4.

----- 03.11.2020 MariaDB 10.4.16 -- -- -----

МДЭВ-23559 : Galera LeakSanitizer: обнаружены утечки памяти в galera.GAL-419

----- 10.08.2020 MariaDB 10.5.5 -- -- -----

Исправлена ​​утечка памяти в item_sum.cc::report_cut_value_error().

флаг sa
Я только что сбросил innodb_buffer_pool_size в своей последней попытке исправить это. Независимо от того, какой размер я установил, использование ОЗУ растет, растет и растет. Я заменю свой вывод SHOW STATUS на SHOW GLOBAL STATUS в своем первом посте.
флаг ua
Утечки памяти в MariaDB редки, но (я полагаю) не невозможны. 10.3 несколько устарела; предложить обновить.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.