powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL не освобождает память.
28 сообщений из 28, показаны все 2 страниц
MySQL не освобождает память.
    #38484388
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MySql (Percona 5.5.34-rel32.0-591)
Debian Linux 6 “Squeeze” amd64
Физичерский сервак (Intel® Core™ i7-2600 Quadcore, 16Gb). Да, десктопное железо, не ECC.

База данных небольшая примерно 350Mb, InnoDB. Нагрузки смешные - до 10 параллельных соединений.

На сервере крутится не большой сайт на LiveSteet CMS - PHP 5.4.

Суть проблемы в том что MySQL не спеша, но неуклонно захватывает всю доступную память, потом весь доступный своп и потом, естественно перегружается системой. И плевать ему на настройки буферов.

При этом SHOW ENGINE INNODB STATUS эту, захваченную память, в упор не показывает.

И "не смотря на" все работает просто прекрасно - быстро, без всяких проблем. Slow Query - нет вообще.

Никакие манипуляции с параметрами в my.cnf не помогли. Перепробовали много чего.

Пробовали общаться у Percona : http://www.percona.com/forums/questions-discussions/mysql-and-percona-server/11851-mysql-never-release-memory. Безрезультатно...

Конфиг:
Код: 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.
[mysqld]
pid-file			= /var/run/mysqld/mysqld.pid
socket				= /var/run/mysqld/mysqld.sock
port				= 3306
bind-address			= 127.0.0.1
#skip-external-locking
character-set-server		= utf8
collation-server		= utf8_general_ci
default-storage-engine		= InnoDB


key_buffer_size			= 16M
myisam-recover-options		= FORCE,BACKUP


max_allowed_packet		= 16M
max-connect-errors		= 1000000
innodb_strict_mode		= 1

# tmpfs
tmpdir				= /var/spool/mysql/


thread_cache_size		= 4
query-cache-type		= 1
query_cache_size		= 64M
query_cache_min_res_unit	= 4K 
max_heap_table_size		= 64M
tmp_table_size			= 64M
open-files-limit		= 65535
table-definition-cache		= 400
table-open-cache		= 400
max_connections			= 200

innodb_file_per_table		= 1
innodb_file_format		= barracuda
innodb_flush_method		= O_DIRECT
innodb_use_sys_malloc		= 0
innodb_additional_mem_pool_size	= 64M
innodb_buffer_pool_size		= 1G
innodb_read_io_threads		= 8
innodb_thread_concurrency	= 0
innodb_write_io_threads 	= 16
innodb-log-files-in-group	= 2
innodb-log-file-size		= 128M
innodb-flush-log-at-trx-commit	= 2
innodb_locks_unsafe_for_binlog	= 1
innodb_adaptive_hash_index	= 1

log-error			= /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes	= 0
long-query-time			= 10
slow-query-log			= 1
slow-query-log-file		= /var/lib/mysql/mysql-slow.log



Бьемся с проблемой уже довольно долго... Буду очень благодарен за любые идеи.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38484427
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторMySql (Percona 5.5.34-rel32.0-591)
Пробовали общаться у Percona

Ну они же не могут признать, что они сами напихали туда багов . А мы можем.
Так что попробуйте обычный mysql 5.5.

Раз нагрузки небольшие, можно и остаться на том, что в дистрибутиве - 5.1.72. Не понимаю вообще зачем люди идут против концепции централизованных обновлений ОС.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38484432
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я, кстати, вспомнил: они там сменили библиотеку memory allocation.
где-то 5.5.30 эта хрень появилась
авторPercona Server for MySQL will now be shipped with the libjemalloc library.
http://www.mysqlperformanceblog.com/2013/04/10/percona-server-for-mysql-5-5-30-30-2-now-available/
Видел уже на другом форуме подобную проблему, но теперь не могу ссылку найти.
Весьма похоже на классическую дельфипроблему : компонентов с интернета понакачали, а как они там работают не разобрались.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38484514
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexei_k,

В качестве случайных идей:

1. снизить время до
long-query-time = 1

2. запустить на целый день
> mytop
возможно вы увидите нескончаемый рост соединений, или не увидите

3. если рабочий вариант 10 соединений, то уменьшите до:
max_connections = 20

2-3. Если конекции растит в числе и их статус SLEEP,
то возможно проблемы в клиенте.
ВОобшето можно попробовать отстреливать SLEEP конекции.
на которых может висеть куча зааллокированой памяти.

4. Что в ерор-логе перед перегрузкой?
потел ли пациент перед кончиной? на что жаловался конкретно?

5. В порядке експеримента -- отключите квери-каше на один день
query-cache-type = 0

6. Поставьте монитор -- возможно на каких-либо графиках
вы увидите резкий рост памяти и свяжете этот момент
с какимнибудь клиентом который грузит мултфильм в ЦМС.

наример:
www.webyog.com
newrelic.com/plugins/new-relic-inc/52 (надо иметь newrelic)

возможно есть и бесплатные алтернативы,
посмотрите monit, god...

7. вы уверены что имено мускл жрет память?
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38484516
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
8.
>> wget mysqltuner.pl
>> perl mysqltuner.pl
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38484525
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc7. вы уверены что имено мускл жрет память?
там по ссылке есть вывод с 5 Гб RSS.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38484580
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1. снизить время до
long-query-time = 1
Пробовали - ничего существенного не увидели. С производительностью запросов проблем нет - это точно. У нас В CMS есть статьи с 400+ комментариями для построения которых сотни запросов выполняются - страница строится за пару секунд, тем не менее.

автор2. запустить на целый день
> mytop
возможно вы увидите нескончаемый рост соединений, или не увидите
mytop как-то немого устарел, мне кажется. Смотреть в него - смотрели : не увидали ничего криминального. Количество соединений точно не растёт, за этим следили

автор3. если рабочий вариант 10 соединений, то уменьшите до:
max_connections = 20 Вообще сразу после старта MySQL захватывает в VIRT как по книжке : 1.6Gb - 1Gb под буфер и 600Mb под сконфигурированные 200 конектов. RES начинают расти и через какое-то время начинает расти и VIRT - паралельно. Разрыв сохраняется примерно в 1Gb. Т.е. достаточно уверенно можно предположить что утечка не связана с областью памяти которая зарезервировано под коннекты. Как выделил туда MySQL 600Mb при старте - так оно и остается там.

автор2-3. Если конекции растит в числе и их статус SLEEP,
то возможно проблемы в клиенте.
ВОобшето можно попробовать отстреливать SLEEP конекции.
на которых может висеть куча зааллокированой памяти.
мм.... я не могу слёту сказать есть ли там у нас конекты в SLEEP вообще. Но проверим. Это хоть какая-то идея. Спасиб.

автор4. Что в ерор-логе перед перегрузкой?
потел ли пациент перед кончиной? на что жаловался конкретно?

Ничего! ошибок в логах нет вообще. MySQL перегружается операционкой, в системном логе при этом стандартное сообщение линукса, о том что процесс попробовал alocate память, не смог и поэтому его убиваем - как-то так. Происходит это после 7-8 дней работы, в момент когда процессом захвачена вся доступная память.

автор5. В порядке експеримента -- отключите квери-каше на один день
query-cache-type = 0 Пробовали :) не помогает.

автор6. Поставьте монитор -- возможно на каких-либо графиках
вы увидите резкий рост памяти и свяжете этот момент
с какимнибудь клиентом который грузит мултфильм в ЦМС.
наример:
www.webyog.com
newrelic.com/plugins/new-relic-inc/52 (надо иметь newrelic)
возможно есть и бесплатные алтернативы,
посмотрите monit, god...

Понимаете, рост не эпизодический. Он постоянный. можно запустить TOP, смотреть и видеть как процесс отжирает мегабайтик-другой каждые несколько минут. Интенсивность этого явления пропорциональна загрузке сайта. Но оно и понятно - кроме CMS-ки с базой и не работает никто.

автор7. вы уверены что имено мускл жрет память?Уверены :) Там трудно ошибся. ни один другой процесс на сервере (которых совсем не много) не жрет больше пары сотен Mb.

автор8.
>> wget mysqltuner.pl
>> perl mysqltuner.pl
Смотрели. :) tuning-primer.sh понравился больше, кстати. На самом деле больше чем SHOW ENGINE INNODB STATUS эти штуки не покажут. Советы выполняли. Ничего не дало :)
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38484585
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindя, кстати, вспомнил: они там сменили библиотеку memory allocation.
где-то 5.5.30 эта хрень появилась
авторPercona Server for MySQL will now be shipped with the libjemalloc library.
http://www.mysqlperformanceblog.com/2013/04/10/percona-server-for-mysql-5-5-30-30-2-now-available/
Видел уже на другом форуме подобную проблему, но теперь не могу ссылку найти.
Весьма похоже на классическую дельфипроблему : компонентов с интернета понакачали, а как они там работают не разобрались.
Это кстати похоже на правду. Мы обнаружили проблему месяца 4 назад. Сейчас не возможно сказать, к большому сожалению, была ли проблема на сервере изначально - не следили тогда. Но есть подозрение большое, что с изначальной версией (5.5.29) её всё же не было.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38484600
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindавторMySql (Percona 5.5.34-rel32.0-591)
Пробовали общаться у Percona

Ну они же не могут признать, что они сами напихали туда багов . А мы можем.
Так что попробуйте обычный mysql 5.5.

Раз нагрузки небольшие, можно и остаться на том, что в дистрибутиве - 5.1.72. Не понимаю вообще зачем люди идут против концепции централизованных обновлений ОС.


+ 1
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38485846
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, откатываться на ветку 5.1 - это, мне кажется, слишком консервативное решение. Да и жить ветке 5.1, похоже, осталось не долго: 8-ой год уже пошел. Это я к вопросу "централизованных обновлениях в ОС". А вот уйти с Percona 5.5 на "родной" MySQL 5.5 похоже придётся, других идей уже нет...
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38485874
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы хоть разобрались что конкретно память жрет или нет?
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38485905
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexei_kНу, откатываться на ветку 5.1 - это, мне кажется, слишком консервативное решение. Да и жить ветке 5.1, похоже, осталось не долго: 8-ой год уже пошел. Это я к вопросу "централизованных обновлениях в ОС". А вот уйти с Percona 5.5 на "родной" MySQL 5.5 похоже придётся, других идей уже нет...
Ну может тогда уж сделайть апгрейд ОС до debian wheezy - там уже mysql 5.5.31 - это вполне стильно и молодежно.

авторвы хоть разобрались что конкретно память жрет или нет?
а как с этим разобраться, если не быть разработчиком из percona ?
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38485944
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора как с этим разобраться, если не быть разработчиком из percona ? v
только разработчики перконы владеют этой сильной магией? dtrace уже отменили?
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38485994
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowвы хоть разобрались что конкретно память жрет или нет?
Если бы разобрались, то уже скорее всего и проблему бы решили.
Как? Я пробовал даже магию с "Massif tool from Valgrind". И оно даже заработало. Но, я должен признать, что разобраться в выводе этого инструмента, и понять где там причина - задача не для моего уровня Linux-фу. Увы.
netwindНу может тогда уж сделать апгрейд ОС до debian wheezy - там уже mysql 5.5.31 - это вполне стильно и молодежно. Апгрейд OS, слишком большой геморрой, уж простите мой французский. Проще только MySQL.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38486047
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38486080
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы понять почему течет память, нужно понимать что именно делает с ней mysql-сервер.
Ну найдете вы может быть, если повезет, ту самую строчку, а дальше что ? Уверены, что локальное изменение не вылезет боком в других компонентах и условиях ?

ТС, ну хотя бы попробуйте самостоятельно собрать percona, но без libjemalloc. Возможно, там нужно просто с ключиками поковыряться или что-то типа того. Проблема не обязательно вызвана libjemalloc, но очень похоже на то.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38486124
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexei_kНу, откатываться на ветку 5.1 - это, мне кажется, слишком консервативное решение. Да и жить ветке 5.1, похоже, осталось не долго: 8-ой год уже пошел. Это я к вопросу "централизованных обновлениях в ОС". А вот уйти с Percona 5.5 на "родной" MySQL 5.5 похоже придётся, других идей уже нет...

Вот вопрос об централизованных обновлениях интересный. Нравится вам работать бесплатно тестерами на percona - вот получитераспишитесь проблему с утечкой.

Пока squeeze поддерживается, (а на данный момент он поддерживается и все еще не объявили срок окончания поддержки), команда debian КАК БЫ будет продолжать заниматься отслеживанием ошибок и в mysql тоже.
Из-за того, что oracle не раскрывает информацию об багах затрагивающих безопасность, им даже пришлось пойти против своих же правил и обновить версию до 5.1.71. То есть, она там сравнительно новая.

В livestreet, насколько я помню, ORM головного мозга. Они бы и без SQL написали если бы им позволить.
Зачем вообще понадобился 5.5 ?
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38486199
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет. LiveStreet работает с базой довольно прямолинейно, посредством замшелой php-библиотеки DbSimple. "ORM головного мозга" я бы это называть не стал :). Аккуратно реализованный паттерн MVC там, не более. Запросы вполне прилично написаны, базовая структура БД тоже тошноты не вызывает.

Сам-то LiveStreet и на 5.0, полагаю, будет без проблем работать - это да. Вот то что там всё жестко завязано именно на MySQL - это вот печально. Был бы выбор - никогда и не за что...

Версию 5.5 выбрали из соображений актуальности и большого количества декларированных улучшений в InnoDB - и они там действительно есть. Perconа выбрали, ибо посоветовали нам, настоятельно :)
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38515783
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну , кому интересно : замена Percona на MySQL 5.5.31 из репозитория dotdeb.org ничего не дала. Проблема так и осталась. Так что Percon-у обвиняли мы зря, дело не в этом...
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38515808
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowвы хоть разобрались что конкретно память жрет или нет?
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38516323
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexei_kНу , кому интересно : замена Percona на MySQL 5.5.31 из репозитория dotdeb.org ничего не дала. Проблема так и осталась. Так что Percon-у обвиняли мы зря, дело не в этом...
ну так надо было заменять на "дефолт". dotdeb чудики еще. Мандражируют на перкону.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38516517
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindalexei_kНу , кому интересно : замена Percona на MySQL 5.5.31 из репозитория dotdeb.org ничего не дала. Проблема так и осталась. Так что Percon-у обвиняли мы зря, дело не в этом...
ну так надо было заменять на "дефолт". dotdeb чудики еще. Мандражируют на перкону.
Да у них как раз "дефолт", насколько я понимаю. С перконы в свой репозиторий они берут только Percona toolkit.

MySQL 5.5 для Debian Squeeze в стандартных репозиториях нет. Откатываться на 5.1 не хотим, устанавливать из исходников - пока тоже не хотим. Попробовать перейти на сборку с dotdeb.org было очень просто - поэтому и сделали попытку.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38516876
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexei_k, "дефолт" - это обычная версия без единого патча. Та, которую максимально широко протестировали добровольные и невольные тестеры. Вы никогда не останетесь при таком раскладе один на один с проблемами. Их уже все решили за вас - нужно будет просто погуглить.

А у dotdeb еще 300 кб упакованных патчей. можете убедиться http://dotdeb.gosi.at/dists/squeeze/mysql-5.5/source/
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38516879
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я посмотрю, dotdeb перестали брать тащить в версии 5.5 из перконы и гугла что попало. Видимо, тестировать еще и их глюки тоже не хотят. Раньше было не так.

И все же, разве не логично использовать именно настоящий mysql ?
Вы же понимаете, что любая техподдержка просто посылает лесом всех извращенцев и поэтому прежде чем создать запись о баге, нужно протестировать на самой чистой версии?
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38516955
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind, ok. Предлагаете взять пакет от сюда http://dev.mysql.com/downloads/mysql/5.5.html#downloads ?
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38516985
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexei_k, да соберите из исходников. за вас деды собирали (tm), а вы тут пакеты ищете.

не знаю что там за качество у deb от mysql. дело не очень-то проверенное, как мне кажется.
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38517001
alexei_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хотим из исходников. По крайне мере пока...

Не хочется этот низкий уровень... в бинарниках из подключенных репозиториев есть много прелести и удобства. А из исходников пересобирать это какой-то каменный век. Нет, я понимаю, что есть свои достоинства, и вообще в мире UNIX так принято, но...
...
Рейтинг: 0 / 0
MySQL не освобождает память.
    #38517009
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в каменном веке памяти было и относились к ней внимательней.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL не освобождает память.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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