LINUX.ORG.RU

Утечка памяти


0

0

Вопрос такой , есть машина с Linux она работает как роутер, делит инет между компами из локалки. Пробовал на ней Slackware и Gentoo оба в дефолтной установке. Она конектится к провайдеру клиентом PPTP. Трафик делится при помощи IPTABLES . Работает всё стабильно , но потихоньку память отьедается. Например сразу после загрузки свободно скажем 20Мг в течении дня остается 1.8 Мг и так держится до следующей перезагрузки, как узнать какой процес отьедает память и что с этим делать. Так ведь не должно быть. Спасибо за консультацию.

anonymous

не факт что есть утечка. то, что показывает
команда free как "free", это память, которой
ядро не смогло найти никакого полезного применения,
это нормально, если там мало. скорее всего,
память "уходит" в page cache, и будет немедленно
отдана, когда понадобится какому-нибудь процессу.

простой пример. наберите free, потом cat big_file > /dev/null,
затем снова free. увидите, что свободной памяти
стало меньше на размер файла. но она никуда не делась
и будет использована, как только понадобится.

idle ★★★★★
()
Ответ на: комментарий от anonymous

> Понятно . А почему тогда используется swap ?

вам бы следовало поточнее формулировать вопросы,
если хотите получить полезный ответ, это и к первому
посту относится. что значит "используется" ?
в swap'е что-то есть? или vm туда постоянно пишет/читает?
см. /proc/{stat,meminfo,slabinfo}. man ps и смотреть,
у какого процесса растет память. vmstat и top опять же.

однако, это нормально, если в swap что-то есть при том,
что свободной и cached памяти вдоволь. например, какая-то
часть кода и данных ssh сервера использовалась при старте
процесса для инициализации, разбора параметров и т.д.
код можно просто отбросить (его можно сновасчитать с диска),
данные имеет смысл сбросить в swap, иначе эти страницы
будут висеть мертвым грузом до перезагрузки.

другое дело, что vm не всегда правильно угадывает, какие
страницы не понадобятся в будущем, и page cache вымывает
полезные даннные.

кроме того, считанные из swap данные не удаляются из него
до тех пор, пока в swap "достаточно" места, и страницы
не модифицируются процессом - это swap cache.

блин, да на эту тему можно бесконечно писать, если вовремя
не остановиться :)

idle ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.