Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: не высвобождается память  (Прочитано 2125 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн v1t83

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
не высвобождается память
« : 30 Марта 2012, 07:36:12 »
Добрый день!

Есть сервер ubuntu 10.04 серверная, на нем крутиться mysql, asterisk, apache и по мелоче (фтп и т.д.). 4 ядра + 4гига оперативы.
Работал нормално примерно с месяц, деь назад начал использовать всю память и дико торомозить. Помогает перезапуск но не надолго, черех пару часов вся память снова забита, выделил ему 16 гигов опреативы забивается часов через 8.При чем что есть память не вижу в htop. убивал все процессы (mysql, aster, apache, ftp, cron) практически все кроме init.d да ssh. память видимо не уменьшилась и продолжала расти.
Ниже результаты htop и free -m после 4 часов работы, скриншоты не удалось прикрепить. Может кто ни будь подсказать как можно отследить куда утекает память. Да кстати машина крутится на ESXi 4.1, может этот вопрос в раздел виртуалтзации, но ведь машина долго работала нормально, нагрузка не увеличилась, да и другие машины с такой же системой крутятся там же все ок.

free -m
             total       used       free     shared    buffers     cached
Mem:         16084       9150       6933          0        140        681
-/+ buffers/cache:       8328       7755
Swap:         3151          0       3151

htop

  1  [||||||||||||||||||||||||                                                                                20.9%]     Tasks: 218 total, 2 running
  2  [|||||||||||||||                                                                                         13.4%]     Load average: 3.89 4.16 4.09
  3  [|||||||||||||||||||||||||||||                                                                           25.2%]     Uptime: 04:09:46
  4  [||||||||||||||||||||                                                                                    18.2%]
  Mem[|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||                                  8350/16084MB]
  Swp[                                                                                                     0/3151MB]

Оффлайн DeOnis

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: не высвобождается память
« Ответ #1 : 30 Марта 2012, 07:55:22 »
Сделайте
ps -A all --sort=rss > ~/ps_out.logИ файл ps_out.log сюда может что нибудь и прояснится.

Оффлайн v1t83

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: не высвобождается память
« Ответ #2 : 30 Марта 2012, 08:31:15 »
Вложил, только txt разрешил

Оффлайн DeOnis

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: не высвобождается память
« Ответ #3 : 30 Марта 2012, 08:58:34 »
В вашем случае меня парит объём памяти отжираемый Apache. На моём сервере с пятью мало загруженными сайтами среднее потребление памяти одним процессом Apache2 виртуальная~=50000 реальная ~=18000 в вашем случае виртуальная~=320000 реальная ~=31000. Видимо тут и кроется проблема. Нужно рыть в сторону правильности работы apache, смотреть его логи.
Но смотрите, если я не ошибаюсь (поправьте меня кто в курсе) "виртуальная память" предоставляется процессу при его запуске исходя из его прошлых потреблений и при доступности свободной памяти. Система специально выделяет много виртуальной, что бы если уж потребуется больше памяти для этого процесса её не нужно было бы выделять в другом месте. Такой подход устраняет фрагментацию памяти. "реальная" это сколько он, процесс, её сейчас поджирает. Если памяти для других запускаемых процессов не хватает, система виртуальную память у других процессов подрежет и отдаст новому. Так что пока в вашей системе проблем не видно. Жирное потребление apache2 пока только в виртуальной. Но возможно у вас ошибка в PHP и при запуске очередного скрипта, PHP успешно войдёт в бесконечный цикл и положет бесполезными результатами своей работы всю память (это умозаключение вылезает на основании жирной виртуальной памяти. отданной процессу). У меня такое было и не раз.
 А ещё может быть проблема в динамически выделяемой памяти виртуальной машине. К сожалению опыта в виртуальных системах не имею. Всё вышесказанное моё ИМХО.
« Последнее редактирование: 30 Марта 2012, 09:00:17 от DeOnis »

Оффлайн v1t83

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: не высвобождается память
« Ответ #4 : 30 Марта 2012, 09:06:51 »
Если дело в апаче значит по логике при его остановке память должна высвободится, но этого не происходит. Может ли быть ситуация, при которй запускался бы какой ни будь скрипт, отжирал метр памяти, и после завершения не освобождал бы ее, и она так и повисла якобы занята, но процесса самого нет?

Оффлайн DeOnis

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: не высвобождается память
« Ответ #5 : 30 Марта 2012, 09:14:17 »
Скрипт - сомнительно, так его обработчик bash sh php python и др. хвосты всяко за собой подотрут. А вот софтина написанная на СИ или ASM - запросто, так как не следит за высвобождением памяти. Но по моему в Linux система следит, чтобы после завершения работы программы вся доступная ей память высвобождалась. У меня косяки, с памятью в моих программах, были только под Windows, в Linux таких проблем не было.

Оффлайн v1t83

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: не высвобождается память
« Ответ #6 : 30 Марта 2012, 09:17:30 »
ну что ж, буду клонировать машину и на тестовой по очереди отключать все подгружаемые модули, и смотреть после чего память перестанет есть. Спасибо за помощь

Оффлайн DeOnis

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: не высвобождается память
« Ответ #7 : 30 Марта 2012, 09:19:14 »
А у вас swap используется при тормозах? Или он всегда пустой?

Оффлайн v1t83

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: не высвобождается память
« Ответ #8 : 30 Марта 2012, 09:25:17 »
используется после того как останется свободной меньше 10% памяти.

 

Страница сгенерирована за 0.046 секунд. Запросов: 25.