У меня есть маршрутизатор с embedded-linux, версия ядра 2.4.22. Я знаю его очень старую версию, но я должен иметь дело с этим. Ниже приведен вывод команды free
на поле,
[8300002902-3] Отладка > бесплатно
total used free shared buffers Mem: 128104 123928 4176 0 2164 Swap: 0 0 0 Total: 128104 123928 4176
Теперь моя проблема заключается в том, что всякий раз, когда он выполняет некоторые команды и перенаправляет свой вывод в какой-либо файл с помощью оператора >
, размер буфера увеличивается на 4 КБ, и даже если я удаляю тот же файл с помощью rm -rf
, буфер снова увеличивается на 4 КБ. из-за этого, когда размер моего буфера достигает размера 5,3 МБ, возникает проблема с OOM, поскольку вы можете видеть, что у меня доступно только 128 МБ ОЗУ. Я думаю, что ядро не освобождает буферное пространство. Подскажите, пожалуйста, что можно сделать, чтобы избавиться от этой проблемы. Я исследовал значение настройки drop_caches в /proc/sys/vm
, но эта команда недоступна в моей версии ядра.
Вот дамп proc/meminfo, может поможет.
[8300002902-3] Отладка > cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 131178496 126545920 4632576 0 2211840 54927360
Swap: 0 0 0
MemTotal: 128104 kB
MemFree: 4524 kB
MemShared: 0 kB
Buffers: 2160 kB
Cached: 53640 kB
SwapCached: 0 kB
Active: 66628 kB
Inactive: 36692 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 128104 kB
LowFree: 4524 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Linux
илиuClinux
? У последнего могут возникнуть трудности с освобождением памяти, поскольку он создан для работы в системах без MMU, чтобы гибко переназначать доступное пространство и предоставлять процессам собственное частное адресное пространство. - person Chris Stratton   schedule 14.05.2013sync
? - person Ahmed Masud   schedule 15.05.2013rm
только предотвратит его повторное открытие, он не закроет дескрипторы открытых файлов или их возможность доступа к данным файла, поэтому, по-видимому, также не освободит буферы. - person Chris Stratton   schedule 17.05.2013lsof
, чтобы узнать, что еще может происходить? - person jhfrontz   schedule 18.06.2013