|
|
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
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. Бьемся с проблемой уже довольно долго... Буду очень благодарен за любые идеи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2013, 13:45:39 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
авторMySql (Percona 5.5.34-rel32.0-591) Пробовали общаться у Percona Ну они же не могут признать, что они сами напихали туда багов . А мы можем. Так что попробуйте обычный mysql 5.5. Раз нагрузки небольшие, можно и остаться на том, что в дистрибутиве - 5.1.72. Не понимаю вообще зачем люди идут против концепции централизованных обновлений ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2013, 14:50:54 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
я, кстати, вспомнил: они там сменили библиотеку 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/ Видел уже на другом форуме подобную проблему, но теперь не могу ссылку найти. Весьма похоже на классическую дельфипроблему : компонентов с интернета понакачали, а как они там работают не разобрались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2013, 15:03:44 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
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. вы уверены что имено мускл жрет память? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2013, 17:36:57 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
8. >> wget mysqltuner.pl >> perl mysqltuner.pl ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2013, 17:39:30 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
javajdbc7. вы уверены что имено мускл жрет память? там по ссылке есть вывод с 5 Гб RSS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2013, 17:46:55 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
автор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 эти штуки не покажут. Советы выполняли. Ничего не дало :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2013, 19:03:53 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
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) её всё же не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2013, 19:10:48 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
netwindавторMySql (Percona 5.5.34-rel32.0-591) Пробовали общаться у Percona Ну они же не могут признать, что они сами напихали туда багов . А мы можем. Так что попробуйте обычный mysql 5.5. Раз нагрузки небольшие, можно и остаться на том, что в дистрибутиве - 5.1.72. Не понимаю вообще зачем люди идут против концепции централизованных обновлений ОС. + 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2013, 19:25:19 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
Ну, откатываться на ветку 5.1 - это, мне кажется, слишком консервативное решение. Да и жить ветке 5.1, похоже, осталось не долго: 8-ой год уже пошел. Это я к вопросу "централизованных обновлениях в ОС". А вот уйти с Percona 5.5 на "родной" MySQL 5.5 похоже придётся, других идей уже нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 12:58:36 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
вы хоть разобрались что конкретно память жрет или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 13:15:01 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
alexei_kНу, откатываться на ветку 5.1 - это, мне кажется, слишком консервативное решение. Да и жить ветке 5.1, похоже, осталось не долго: 8-ой год уже пошел. Это я к вопросу "централизованных обновлениях в ОС". А вот уйти с Percona 5.5 на "родной" MySQL 5.5 похоже придётся, других идей уже нет... Ну может тогда уж сделайть апгрейд ОС до debian wheezy - там уже mysql 5.5.31 - это вполне стильно и молодежно. авторвы хоть разобрались что конкретно память жрет или нет? а как с этим разобраться, если не быть разработчиком из percona ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 13:28:30 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
автора как с этим разобраться, если не быть разработчиком из percona ? v только разработчики перконы владеют этой сильной магией? dtrace уже отменили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 13:48:05 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
ScareCrowвы хоть разобрались что конкретно память жрет или нет? Если бы разобрались, то уже скорее всего и проблему бы решили. Как? Я пробовал даже магию с "Massif tool from Valgrind". И оно даже заработало. Но, я должен признать, что разобраться в выводе этого инструмента, и понять где там причина - задача не для моего уровня Linux-фу. Увы. netwindНу может тогда уж сделать апгрейд ОС до debian wheezy - там уже mysql 5.5.31 - это вполне стильно и молодежно. Апгрейд OS, слишком большой геморрой, уж простите мой французский. Проще только MySQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 14:21:40 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
"Massif tool from Valgrind" https://projects.kde.org/projects/extragear/sdk/massif-visualizer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 15:06:53 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
Чтобы понять почему течет память, нужно понимать что именно делает с ней mysql-сервер. Ну найдете вы может быть, если повезет, ту самую строчку, а дальше что ? Уверены, что локальное изменение не вылезет боком в других компонентах и условиях ? ТС, ну хотя бы попробуйте самостоятельно собрать percona, но без libjemalloc. Возможно, там нужно просто с ключиками поковыряться или что-то типа того. Проблема не обязательно вызвана libjemalloc, но очень похоже на то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 15:36:01 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 16:02:07 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
Да нет. LiveStreet работает с базой довольно прямолинейно, посредством замшелой php-библиотеки DbSimple. "ORM головного мозга" я бы это называть не стал :). Аккуратно реализованный паттерн MVC там, не более. Запросы вполне прилично написаны, базовая структура БД тоже тошноты не вызывает. Сам-то LiveStreet и на 5.0, полагаю, будет без проблем работать - это да. Вот то что там всё жестко завязано именно на MySQL - это вот печально. Был бы выбор - никогда и не за что... Версию 5.5 выбрали из соображений актуальности и большого количества декларированных улучшений в InnoDB - и они там действительно есть. Perconа выбрали, ибо посоветовали нам, настоятельно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 16:44:14 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
Ну , кому интересно : замена Percona на MySQL 5.5.31 из репозитория dotdeb.org ничего не дала. Проблема так и осталась. Так что Percon-у обвиняли мы зря, дело не в этом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2013, 12:49:43 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
ScareCrowвы хоть разобрались что конкретно память жрет или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2013, 13:06:10 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
alexei_kНу , кому интересно : замена Percona на MySQL 5.5.31 из репозитория dotdeb.org ничего не дала. Проблема так и осталась. Так что Percon-у обвиняли мы зря, дело не в этом... ну так надо было заменять на "дефолт". dotdeb чудики еще. Мандражируют на перкону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 02:14:16 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
netwindalexei_kНу , кому интересно : замена Percona на MySQL 5.5.31 из репозитория dotdeb.org ничего не дала. Проблема так и осталась. Так что Percon-у обвиняли мы зря, дело не в этом... ну так надо было заменять на "дефолт". dotdeb чудики еще. Мандражируют на перкону. Да у них как раз "дефолт", насколько я понимаю. С перконы в свой репозиторий они берут только Percona toolkit. MySQL 5.5 для Debian Squeeze в стандартных репозиториях нет. Откатываться на 5.1 не хотим, устанавливать из исходников - пока тоже не хотим. Попробовать перейти на сборку с dotdeb.org было очень просто - поэтому и сделали попытку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2013, 13:43:13 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
alexei_k, "дефолт" - это обычная версия без единого патча. Та, которую максимально широко протестировали добровольные и невольные тестеры. Вы никогда не останетесь при таком раскладе один на один с проблемами. Их уже все решили за вас - нужно будет просто погуглить. А у dotdeb еще 300 кб упакованных патчей. можете убедиться http://dotdeb.gosi.at/dists/squeeze/mysql-5.5/source/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2014, 23:01:54 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
Я посмотрю, dotdeb перестали брать тащить в версии 5.5 из перконы и гугла что попало. Видимо, тестировать еще и их глюки тоже не хотят. Раньше было не так. И все же, разве не логично использовать именно настоящий mysql ? Вы же понимаете, что любая техподдержка просто посылает лесом всех извращенцев и поэтому прежде чем создать запись о баге, нужно протестировать на самой чистой версии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2014, 23:07:02 |
|
||
|
MySQL не освобождает память.
|
|||
|---|---|---|---|
|
#18+
netwind, ok. Предлагаете взять пакет от сюда http://dev.mysql.com/downloads/mysql/5.5.html#downloads ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2014, 14:40:51 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38485994&tid=1835461]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 331ms |

| 0 / 0 |
