Анализ дампа памяти для приложения asp.net web api показывает, что кеширование связанных объектов занимает память - PullRequest
0 голосов
/ 30 мая 2019

У нас очень активно используется приложение веб-API asp.net, работающее в качестве службы приложений Azure.Приложение отображает тенденцию использования памяти, как показано ниже, т.е. использование памяти продолжает увеличиваться и никогда не снижается, пока не будет перезапущено (с помощью автоматического исцеления Azure).enter image description here

Для дальнейшего анализа мы взяли 3 дампа памяти, т. Е.

  1. первый дамп после перезапуска приложения
  2. Запустили тест загрузки ивзял второй дамп
  3. Снова запустил тот же нагрузочный тест и взял третий дамп

Ниже показано, как выглядит сравнение между дампами

между 1-м и 2-м дампами.

enter image description here

Между 2-м и 3-м дампом

enter image description here

Во всех этих сравненияхКажется, максимальное увеличение использования памяти происходит в некоторых объектах, связанных с кэшированием, например, ExpiresBucket, RuntimeCache, MemoryCache, CacheExpires и т. Д.

Я не эксперт и не уверен, что именно делают эти классы и откуда происходит это увеличение.Может кто-нибудь пролить свет на то, что означают эти объекты, и это нормально?Просто чтобы быть ясно, мы увидели тенденцию и видим, что память только увеличивается и никогда не падает.

...