В моем веб-приложении я использую клиент узла elasticsearch. с клиентом отдыха Я тестирую приложение. Я отправил запрос с тестировщиком почтальона с номером итерации 1000, и наблюдаемая память увеличивается.Узел elasticsearch клиент, вызывающий утечку памяти
Перед запуском любого тестового примера приложение занимает 45 МБ ~. После запуска тестового примера с 1000 итерациями приложение потребляет ~ 90 МБ. После повторного запуска того же теста память памяти увеличивается до ~ 120 МБ. Я чувствую, что в приложении есть утечка памяти. версия
Node: 0.12.5 Elasticsearch DB версия: 1.5.2 клиент Elasticsearch узел: 4.0.2
Пример кода:
var client = new elasticsearch.Client({
hosts: elasticHosts
});
app.all('*', function(req, res, next) {
validateApiKey(req.headers["apikey"],next,res);
})
function validateApiKey(ApiKey,next,response) {
var hits;
var isValidApiKey = false
client.search({
index: 'clients',
type: 'search',
body: {
"query":{
"match":{
"apikey" : ApiKey
}
}
}
},function(err,res) {
response.send(true);
}
я заметил утечку памяти происходит, если версия использование узла 0,10 0,39.
Это проблема с версией узла? или версия клиента Elasticsearch? или с моим кодом?
Может ли кто-то помочь решить эту проблему.
Hi snozza, спасибо за предложение. – thrivikram
Hi snozza, Спасибо за предложение. Для каждого вызова api для отдыха я наблюдал, что память увеличивается. с клиентом postman rest я побежал 3K раз такой же запрос, память продолжает расти. Я заметил увеличение памяти с помощью pm2 и linux команды ps. Считаете ли вы, есть ли ошибка в коде, вызывающая эту проблему? Использует ли elachesearch данные кэша клиента в приложении? Если это так, я могу очистить этот кеш в приложении. – thrivikram
Трудно сказать, не зная специфику приложения, что может вызвать утечку памяти (при условии, что она есть). Я нашел это руководство очень удобным http://www.nearform.com/nodecrunch/self-detect-memory-leak-node/ Он должен помочь вам отследить, что вызывает увеличение памяти. Вы, вероятно, найдете больше успеха, анализируя ваше приложение напрямую. – snozza