2013-03-13 2 views
6

Я только что исправил утечку памяти в моем приложении-узле, который был в куче узла. Я профилировал это с помощью Google Profiler и смог исправить утечку памяти.Утечка памяти в Node.js вне кучи?

Теперь мое приложение работает некоторое время, и я видел, что размер кучи довольно постоянный. Нет утечки памяти больше. Но когда я проверяю бесплатную ОЗУ моего сервера, я вижу уменьшение ... Когда я перезапускаю свой сервер узлов, оперативная память до нормальной бесплатной ОЗУ. Теперь я слышал о том, что Node.js может сохранять объекты и вещи за пределами кучи. Я думаю, что именно здесь происходит утечка памяти.

Как я могу узнать, что занимает память? Не может ничего профилировать, или я могу?

Я использую:

Node.js: v0.8.18 и Socket.io: v0.9.13

Некоторые другие узловые модули, которые я использую являются: nodetime, heapdump (удалит это, тем не менее), jquery, crypto, request и querystring.

Некоторые графики:

Free OS memory и Node RSS и Heap used

+0

Как вычисляется 'Свободная память ОС? Какие еще службы работают на этом сервере? Какая ОС? –

+0

Я не знаю, как Nodetime вычисляет это, если честно. ОС - linux, Centos 5. Другими службами, запущенными на этом сервере, являются Apache и MySQL. Я слышал, что Linux использует всю память для кэширования, как вы думаете, может быть, это и есть причина? – Martin

+0

возможно, также может быть MySQL кэширование данных в памяти или кеширование файлов. Если вы не сможете повторно использовать эту память при перезагрузке приложения, это должно быть приемлемым поведением. –

ответ

0

Что-то вы можете сделать, это использовать heapdump модуль для создания дампа, а затем вы можете загрузить его в веб-инспектора WebKit для анализа состояния памяти программы. Посмотрите на конец README в модуле heapdump для инструкций по загрузке heapdump в Google Chrome, например.

Взгляните на this article, чтобы узнать, как кто-то отслеживает утечку памяти в своей программе.

+0

Прошу прощения, если я недостаточно прояснился, но размер кучи довольно постоянный, кажется, что что-то еще, связанное с узлом, занимает память. – Martin

Смежные вопросы