powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как уменьшить потребление памяти ?
21 сообщений из 21, страница 1 из 1
как уменьшить потребление памяти ?
    #38763056
Andaim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть mysql 5.6.19 на линуксе, который почему-то кушает 8 Гб оперативки.
SHOW ENGINE INNODB STATUS говорит, что Total memory allocated 4395630592. Не могу понять куда уходят еще 3,5Гб

На сервере работают ~150 баз, по 700 таблиц в каждой, все innodb, в сумме 30 Гб. Рекавери не нужен совсем, потеря все данных не критична.
Потребляемая память от количества активных соединений зависит слабо.

innodb_log_buffer_size = 100M
innodb_log_file_size=1000M
innodb_flush_log_at_trx_commit=0
innodb_open_files=50000
innodb_flush_method=O_DIRECT_NO_FSYNC
innodb_force_recovery=0
innodb_buffer_pool_size=4G
innodb_flush_log_at_timeout=5
innodb_stats_on_metadata=OFF
innodb_checksums=OFF
innodb_thread_concurrency=0
innodb_read_io_threads=64
innodb_write_io_threads=64
innodb_file_per_table=0
innodb_sort_buffer_size=2M
max_connections=400
tmp_table_size=20M
max_heap_table_size=20M
innodb_ft_total_cache_size=64000000
innodb_ft_result_cache_limit=100000000

interactive_timeout=1500
wait_timeout = 300

open_files_limit=50000
table_open_cache=20000
table_definition_cache=20000
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38763680
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
total memory allocated 4395630592
насколько я понимаю, это зарезервированая память иннодб

но каждое подключение к базе берёт ещо...если найду напишу точнее
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38763682
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
держи... нашол...когда то погуглил на эту тему и сделал себе


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
CREATE DEFINER=`root`@`%` PROCEDURE `sproc_show_memory_use`()
	LANGUAGE SQL
	NOT DETERMINISTIC
	CONTAINS SQL
	SQL SECURITY DEFINER
	COMMENT ''
BEGIN

select 'key_buffer_size',@@key_buffer_size
union all
select 'query_cache_size',@@query_cache_size
union all
select 'tmp_table_size',@@tmp_table_size
union all
select 'innodb_buffer_pool_size',@@innodb_buffer_pool_size
union all
select 'innodb_additional_mem_pool_size',@@innodb_additional_mem_pool_size
union all
select 'innodb_log_buffer_size',@@innodb_log_buffer_size
union all
select null,null
union all
select null,null
union all
select 'read_buffer_size',@@read_buffer_size
union all
select 'read_rnd_buffer_size',@@read_rnd_buffer_size
union all
select 'sort_buffer_size',@@sort_buffer_size
union all
select 'join_buffer_size',@@join_buffer_size
union all
select 'binlog_cache_size',@@binlog_cache_size
union all
select 'net_buffer_length',@@net_buffer_length
union all
select 'thread_stack',@@thread_stack
union all
select null,null
union all
select null,null
union all
select 'max_connections',@@max_connections
union all
select null,null
union all
select null,null
union all
select null,null
union all
select null,null
union all
select 'CONNECTION',
			@@read_buffer_size 
			+ @@read_rnd_buffer_size 
			+ @@sort_buffer_size 
			+ @@join_buffer_size 
			+ @@binlog_cache_size 
			+ @@net_buffer_length*2
			+ @@thread_stack 
union all
select 'CONNECTION MAX',@@max_connections * ( 
			@@read_buffer_size 
			+ @@read_rnd_buffer_size 
			+ @@sort_buffer_size 
			+ @@join_buffer_size 
			+ @@binlog_cache_size 
			+ @@net_buffer_length*2
			+ @@thread_stack )
union all
select null,null
union all
select 'GLOBAL',
			@@key_buffer_size
		+ @@query_cache_size 
		+ @@tmp_table_size 
		+ @@innodb_buffer_pool_size 
		+ @@innodb_additional_mem_pool_size 
		+ @@innodb_log_buffer_size 
union all
select null,null
union all
select null,null
union all
select null,null
union all
select 'TOTAL',
		@@key_buffer_size
		+ @@query_cache_size 
		+ @@tmp_table_size 
		+ @@innodb_buffer_pool_size 
		+ @@innodb_additional_mem_pool_size 
		+ @@innodb_log_buffer_size 
		+ @@max_connections * ( 
			@@read_buffer_size 
			+ @@read_rnd_buffer_size 
			+ @@sort_buffer_size 
			+ @@join_buffer_size 
			+ @@binlog_cache_size 
			+ @@net_buffer_length*2
			+ @@thread_stack );
END
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38763690
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select 'CONNECTION',
			@@read_buffer_size 
			+ @@read_rnd_buffer_size 
			+ @@sort_buffer_size 
			+ @@join_buffer_size 
			+ @@binlog_cache_size 
			+ @@net_buffer_length*2
			+ @@thread_stack 



вот столько памяти нужно на каждое подключение... то есть только к базе коннект, сразу
вот столько памяти надо выделить для подключения.
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38763696
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select 'CONNECTION',
			@@read_buffer_size 
			+ @@read_rnd_buffer_size 
			+ @@sort_buffer_size 
			+ @@join_buffer_size 
			+ @@binlog_cache_size 
			+ @@net_buffer_length*2
			+ @@thread_stack 




вот столько памяти нужно на каждое подключение... то есть только к базе коннект, сразу
вот столько памяти надо выделить для подключения.Не совсем так. Некоторые из этих буферов выделяются только по мере необходимости и в нужном, а не в максимальном, размере.
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38763843
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

правильно...и когда идёт оценка куда память деваеться, сколько ставить итд...мы на что должны смотреть?

или надеяться что не часто выделяться...

яж пишу. читал сделал для себя для оценки ...это я пользовал когда у меня мемори по факту, щитал сколько конекшинов максимум можно сделать дабы не падала база
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764445
Andaim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453, miksoft спасибо за внимание к топику )
расчет затрат на память я уже делал через http://www.mysqlcalculator.com/

собственно ваш тотал выходит 5 Гб, на что я примерно и расчитывал, а 3 Гб так и проелись не понятно куда
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764452
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andaimкушает 8 Гб оперативки.Показывайте как вы это определили.
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764455
Andaim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftAndaimкушает 8 Гб оперативки.Показывайте как вы это определили.
через top колонка RES
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764480
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andaimalex564657498765453, miksoft спасибо за внимание к топику )
расчет затрат на память я уже делал через www.mysqlcalculator.com

собственно ваш тотал выходит 5 Гб, на что я примерно и расчитывал, а 3 Гб так и проелись не понятно кудаТаки пересчитайте еще раз. Даже по тем немногим параметрам, которые приведены в начальном посте и которые умеет учитывать mysqlcalculator.com, уже получается 5,4 Гб.
И даже в более полном запросе alex564657498765453 учитываются не все параметры. Например, innodb_sort_buffer_size, innodb_ft_total_cache_size, innodb_ft_result_cache_limit.
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764501
Andaim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftAndaimalex564657498765453, miksoft спасибо за внимание к топику )
расчет затрат на память я уже делал через www.mysqlcalculator.com

собственно ваш тотал выходит 5 Гб, на что я примерно и расчитывал, а 3 Гб так и проелись не понятно кудаТаки пересчитайте еще раз. Даже по тем немногим параметрам, которые приведены в начальном посте и которые умеет учитывать mysqlcalculator.com, уже получается 5,4 Гб.
И даже в более полном запросе alex564657498765453 учитываются не все параметры. Например, innodb_sort_buffer_size, innodb_ft_total_cache_size, innodb_ft_result_cache_limit.

запрос от alex564657498765453 выдает 4936695808,
innodb_ft_total_cache_size, innodb_ft_result_cache_limit - эти параметры у меня жестко проставлены, в сумме 160 М
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764516
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andaimзапрос от alex564657498765453 выдает 4936695808,Не верю. Это получается меньше 2Мб на коннект, слишком мало. Показывайте вывод целиком.
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764525
Andaim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
key_buffer_size 8388608
query_cache_size 1048576
tmp_table_size 20971520
innodb_buffer_pool_size 4294967296
innodb_additional_mem_pool_size 8388608
innodb_log_buffer_size 104857600
(null) (null)
(null) (null)
read_buffer_size 131072
read_rnd_buffer_size 262144
sort_buffer_size 262144
join_buffer_size 262144
binlog_cache_size 32768
net_buffer_length 16384
thread_stack 262144
(null) (null)
(null) (null)
max_connections 400
(null) (null)
(null) (null)
(null) (null)
(null) (null)
CONNECTION 1245184
CONNECTION MAX 498073600
(null) (null)
GLOBAL 4438622208
(null) (null)
(null) (null)
(null) (null)
TOTAL 4936695808
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764649
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andaim,

Когда-то нам это сильно помогло минимизировать расход памяти (правда, в Оракле)- почитайте про Large Page .
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764692
Andaim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftAndaim,

Когда-то нам это сильно помогло минимизировать расход памяти (правда, в Оракле)- почитайте про Large Page .
спс, поизучаю
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764751
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftAndaimalex564657498765453, miksoft спасибо за внимание к топику )
расчет затрат на память я уже делал через www.mysqlcalculator.com

собственно ваш тотал выходит 5 Гб, на что я примерно и расчитывал, а 3 Гб так и проелись не понятно кудаТаки пересчитайте еще раз. Даже по тем немногим параметрам, которые приведены в начальном посте и которые умеет учитывать mysqlcalculator.com, уже получается 5,4 Гб.
И даже в более полном запросе alex564657498765453 учитываются не все параметры. Например, innodb_sort_buffer_size, innodb_ft_total_cache_size, innodb_ft_result_cache_limit.

я только что прочитал (новыми я называю >=5.6
innodb_sort_buffer_size, правда с трудом понял английский, но походу это для новых версий...
и используеться только при создании таблиц(модификации) а точнее при сопутсвующем действии - создание индекса.

innodb_ft_total_cache_size тоже для новых, используеться при наличии фултекст индекса,
так что если у ТС он есть, надо учитывать

innodb_ft_result_cache_limit аналогично только для результата
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764785
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
innodb_flush_method O_DIRECT_NO_FSYNC

если я правильно понимаю(интуитивно)
то вот это дают быстродействие, но не нахалявую ОС потребляет память(с её точки зрения потребляет мускл, ибо на его работу с файлами требуеться память под файловые буферы)
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38764788
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда, помостреть внимательно на текущие верхние темы...там есть тема - как уменьшить потребление памяти :)
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38765317
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор а 3 Гб так и проелись не понятно куда


А вы перегрузите mysql один раз и пронаблюдайте каким-нибудь средством типа munin насколько стабильно это число растет и насколько стабильно пропадает при каждом перезапуске.
Ситуация для mysql редкая, но возможная. Особенно если речь идет о сравнительно новых 5.6
https://ru.wikipedia.org/wiki/Утечка_памяти
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38771721
Andaim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обновился в итоге на 5.6.21, поменял немного конфиг и проблема решилась. mysql кушает ровно столько, сколько получается по формуле от alex564657498765453 +-100М

performance_schema=off

innodb_log_buffer_size = 100M
innodb_log_file_size=1000M
innodb_flush_log_at_trx_commit=0
innodb_flush_method=O_DIRECT_NO_FSYNC
innodb_force_recovery=0
innodb_buffer_pool_size=4G
innodb_flush_log_at_timeout=5
innodb_stats_on_metadata=OFF
innodb_checksums=OFF
innodb_thread_concurrency=0
innodb_file_per_table=0
max_connections=400
innodb_ft_total_cache_size=64M
innodb_ft_result_cache_limit=50M

open_files_limit=50000
table_open_cache=2000
table_definition_cache=2000

wait_timeout=2000
...
Рейтинг: 0 / 0
как уменьшить потребление памяти ?
    #38771772
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andaimобновился в итоге на 5.6.21, ... и проблема решилась.
было бы достаточно только этих слов.

или вы действительно поняли куда девалась память?
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как уменьшить потребление памяти ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]