The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Методы обнаружения утечек памяти в программах"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Методы обнаружения утечек памяти в программах" 
Сообщение от pagan Искать по авторуВ закладки on 14-Дек-05, 10:49  (MSK)
Приветствую!
Столкнулся с неразрешимой для меня задачей.
Есть почтовый сервер, sendmail+spamassassin+...+...
OS: FreeBSD 5.4
RAM: 1Gb
SWAP: 1Gb.
Стал замечать следующую проблему, даже при наличии свободной памяти своп частично используется. Увеличил объем свопа на 2Gb - проблема не исчезла.
В логах ничего подозрительного не замечаю.
Доходит до того, что на сервер нельзя залогиниться ЛОКАЛЬНО, с КОНСОЛИ. Тормоза просто жутчайшие. Итого имеем такую вот "клинику" с сервером каждые сутки. т.е. утром reboot, и до след. утра.
Есть подозрение (плавно переходящее в уверенность) что какой-то скрипт/софтина не освобождает после себя память.
Отсюда вопрос: а какие есть методы поиска и обнаружения подобных "проблемных" мест?
Заранее спасибо.
Так же был бы очень благодарен за общие рекомендации по этому вопросу.

wbr.
p.s. Если нужны какие-нибудь дополнительные сведения - сообщайте, я их обязательно напишу.

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]

1. "Методы обнаружения утечек памяти в программах" 
Сообщение от ra Искать по авторуВ закладки(??) on 14-Дек-05, 11:02  (MSK)
Может для начал попользоваться top'ом? Например как-нибкдь так (засунув вызов в крон каждые 5 минут):
top -n 1 >> /tmp/top.log
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Методы обнаружения утечек памяти в программах" 
Сообщение от pagan Искать по авторуВ закладки on 14-Дек-05, 15:13  (MSK)
вот такая вот картина:

last pid: 39674;  load averages:  1.77,  1.22,  0.83  up 0+02:41:17    11:09:10
272 processes: 3 running, 269 sleeping

Mem: 236M Active, 100M Inact, 150M Wired, 33M Cache, 112M Buf, 482M Free
Swap: 3072M Total, 23M Used, 3048M Free


  PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
38388 root       4    0 32152K 26088K accept   0:04  2.05%  2.05% perl5.8.5

last pid: 40719;  load averages:  0.75,  0.81,  0.74  up 0+02:46:00    11:13:53
289 processes: 3 running, 286 sleeping

Mem: 291M Active, 90M Inact, 162M Wired, 30M Cache, 112M Buf, 428M Free
Swap: 3072M Total, 24M Used, 3048M Free


  PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
38686 root     111    0 77640K 71124K RUN      0:07  5.52%  5.52% perl5.8.5

last pid: 43320;  load averages:  0.64,  0.74,  0.71  up 0+02:53:58    11:21:51
262 processes: 1 running, 261 sleeping

Mem: 252M Active, 116M Inact, 150M Wired, 32M Cache, 112M Buf, 451M Free
Swap: 3072M Total, 24M Used, 3048M Free


  PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
40217 root       4    0 32872K 26728K accept   0:07  1.37%  1.37% perl5.8.5

last pid: 46155;  load averages:  1.46,  1.11,  0.86  up 0+03:02:13    11:30:06
286 processes: 1 running, 285 sleeping

Mem: 263M Active, 245M Inact, 99M Wired, 26M Cache, 112M Buf, 368M Free
Swap: 3072M Total, 24M Used, 3048M Free


  PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
36069 root       4    0 34076K 27668K accept   0:27  2.05%  2.05% perl5.8.5

last pid: 47718;  load averages:  1.31,  1.13,  0.91  up 0+03:07:06    11:34:59
295 processes: 1 running, 294 sleeping

Mem: 254M Active, 66M Inact, 166M Wired, 27M Cache, 112M Buf, 488M Free
Swap: 3072M Total, 26M Used, 3046M Free


  PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
47675 root       4    0  4772K  2380K sbwait   0:01  5.07%  2.15% sendmail

last pid: 50046;  load averages:  0.92,  1.15,  0.99  up 0+03:13:40    11:41:33
289 processes: 1 running, 288 sleeping

Mem: 263M Active, 131M Inact, 144M Wired, 23M Cache, 112M Buf, 441M Free
Swap: 3072M Total, 26M Used, 3046M Free

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Методы обнаружения утечек памяти в программах" 
Сообщение от pagan Искать по авторуВ закладки on 14-Дек-05, 17:28  (MSK)
Нашел виновного: это чайлды spamd (spamassassin)
Версия perl`а 5.8.5
К сожалению не знаю где посмотреть точную версию установленного spamassassin.

any ideas?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Методы обнаружения утечек памяти в программах" 
Сообщение от zyxman Искать по авторуВ закладки on 14-Дек-05, 17:33  (MSK)
>вот такая вот картина:
>
>last pid: 39674;  load averages:  1.77,  1.22,  0.83

замечательно. теперь нужно посмотреть историю каждого процесса, например:
egrep '(^last pid:)|(^38686)' /tmp/top.log |less

отобрать претендентов поможет такая строчка:
sort -k 5 -nr /tmp/top.log |less

еще я делаю примерно так (цифра после $ - номер знакоместа, флаг k - по какому знакоместу сортировать):
awk ' { FS = " "; print $1, $5, $6, $11 }' | sort -nr -k 2

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Методы обнаружения утечек памяти в программах" 
Сообщение от pagan Искать по авторуВ закладки on 14-Дек-05, 17:47  (MSK)
>>вот такая вот картина:
>>
>>last pid: 39674;  load averages:  1.77,  1.22,  0.83
>
>замечательно. теперь нужно посмотреть историю каждого процесса, например:
>egrep '(^last pid:)|(^38686)' /tmp/top.log |less
>
>отобрать претендентов поможет такая строчка:
>sort -k 5 -nr /tmp/top.log |less
>
>еще я делаю примерно так (цифра после $ - номер знакоместа, флаг
>k - по какому знакоместу сортировать):
>awk ' { FS = " "; print $1, $5, $6, $11
>}' | sort -nr -k 2
большое спасибо за подробный ответ!


  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру