Fiddler memory issues

15 posts, 0 answers
  1. Adam
    Adam avatar
    5 posts
    Member since:
    Feb 2014

    Posted 10 Feb 2015 Link to this post

    I've been experiencing issues where Fiddler will slowly grow it's memory footprint over time from a reasonable amount to > 4GB and where I then need to kill it to free up memory.  It does not seem to matter if it is actually capturing data, how many sessions it has set to save or whether or not I'm even doing any browsing for it to capture.

    I ran a test with it just prior to submitting this.  I opened it up and captured some data to the point where it had around 200Mb of memory usage according to Task Manager.  I then stopped capturing data, set Sessions Saved to 100, cleared all data in Fiddler (both via Ctrl + X and via the 'X' button in the toolbar) and then stopped browsing or doing anything on my PC.  I watched the memory climb from 200Mb to 1500Mb over the next minute or two at which point I closed it.

    Is anyone else experiencing these issues?  I'm running Windows 8.1 Pro and have had similar issues on two different computers (home dev machine and my work PC).

  2. Eric Lawrence
    Admin
    Eric Lawrence avatar
    833 posts

    Posted 10 Feb 2015 Link to this post

    Hi, Adam--

    To understand what you're seeing, I'll need you to answer a few questions:

    0. How much physical memory is on the system in question?
    1. What version of Fiddler do you have? (Help > About)
    2. What setting do you have for "Tools > Fiddler Options > If client aborts while streaming"?
    3. In the scenario below, what is logged when you type !memory and hit enter in the QuickExec box below Fiddler's Web Sessions list?
    4. Do you have any 3rd party Fiddler add-ons installed?
    5. Is there any data being logged to the LOG tab (e.g. mention of errors, etc) as memory usage grows?
    6. What network-using applications does your system have? E.g. do you have DropBox/OneDrive/etc configured to sync your files?

    One important thing to understand is that the .NET Framework doesn't necessarily perform garbage collection unless the system is under memory pressure; if you have gobs of free memory available, it's willing to use it. One trick to help induce Fiddler to release unneeded memory is to minimize it using the minimize button at the top right.

    Regards,
    Eric Lawrence
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
  3. Adam
    Adam avatar
    5 posts
    Member since:
    Feb 2014

    Posted 11 Feb 2015 in reply to Eric Lawrence Link to this post

    Eric,

    Thanks for the help.  Answers to your questions are below:

    0. 8GB
    1. v4.4.9.9 (64-bit)
    2. "finish if Session is visible"
    3. I ran it when Fiddler was up to about 2,250MB of RAM in Task Manager
    10:56:29:2632 MEMORY ANALYSIS
    Process Bitness: 64
    PRE-GC
    GCAllocated: 2,314,758,856
    VirtualMemory: 2,386,059,264
    WorkingSet: 2,409,500,672
    4. Not that I'm aware of.  This is a fresh upgrade and I haven't installed any add-ons myself.
    5. I'm seeing a whole bunch of logs similar to the one below.
    No HTTPS request was received from (chrome:4552) new client socket, port 56568
    6. I use DropBox, OneDrive, 

    I also noticed that at this issue seems to be specific (although not limited to) to a site running on my machine.  I say not limited to because I've seen at least a very similar issue on a different PC and that didn't have this site.  I've tested a second local site as well and it's not occurring for that site.  Both are .NET MVC sites hosted in IIS so I'm not sure what would be causing one to create so many issues for Fiddler.  Basically once I hit the login page locally, Fiddler starts throwing out the HTTPS logs and memory starts spiking.  Any ideas?
  4. Eric Lawrence
    Admin
    Eric Lawrence avatar
    833 posts

    Posted 11 Feb 2015 Link to this post

    Hi, Adam--

    Thanks, this is helpful. When you ran !memory, it should have created two sections, one titled PRE-GC and one titled POST-GC. We're mostly interested in looking at the difference between those two numbers.

    When you say "whole bunch of logs", how many are we talking? Dozens? Millions? If you clear the Log and run !memory again, is there any change?

    Did you configure your system to trust Fiddler's root certificate? Do you see HTTPS traffic from Chrome in the Web Sessions list?

    In the scenario where you see memory growth, if you use Help > Troubleshoot... do you see a large number of red/struckout entries appearing in Fiddler's Web Sessions list?

    Regards,
    Eric Lawrence
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
  5. Adam
    Adam avatar
    5 posts
    Member since:
    Feb 2014

    Posted 11 Feb 2015 in reply to Eric Lawrence Link to this post

    Sorry - I must have deleted the second half on accident.  Here are new !memory logs:

    PRE-GC
    GCAllocated: 1,568,520,480
    VirtualMemory: 1,653,518,336
    WorkingSet: 1,675,415,552

    POST-GC
    GCAllocated: 1,563,494,480
    VirtualMemory: 1,637,924,864
    WorkingSet: 1,659,637,760

    When I say a bunch, a dozen is probably average.  I also noticed they tend to appear early on and then stop.  So I'll get all 12 or so in the climb up to 500MB and then nothing after that as memory usage continues to climb.

    Clearing the logs has no affect on memory usage. 

    The system is set to trust Fiddler's root cert.  Both the sites I have running locally are accessed only through HTTPS.  I see the HTTPS traffic when I initially hit the page but nothing (from that site) afterwards.  When I enable the Help -> Troubleshoot option I see a few (9 in total) struck-out entries but nothing from the site in question.

    - Adam
  6. Eric Lawrence
    Admin
    Eric Lawrence avatar
    833 posts

    Posted 12 Feb 2015 Link to this post

    Hello, Adam--

    This is quite fascinating-- it strongly suggests that Fiddler is holding on to ~1.5gb of traffic unexpectedly. That's a super-interesting finding and I'd love to figure out what's going on.

    Do you have the Streaming button set in Fiddler's toolbar? Do your scenarios include any sort of audio or video?

    I don't suppose we'll be very lucky and find out that you're a .NET Developer who has used JustTrace, ANTS Profiler, or any other sort of memory profiling tool?

    Normally, it'd be awesome to get a DMP of the memory from the process, but it would probably be at least several hundred megabytes when compressed.

    If you're up for it, you might try downloading DebugView and running it. With Fiddler running, untick File > Capture Traffic and verify that memory usage is still growing unexpectedly. Then type !spew and hit Enter in Fiddler's QuickExec box. Fiddler will begin spewing verbose logging information to DebugView, including all reads and writes to/from the network. This is almost certain to turn up the source of the missing memory.

    Thanks,
    Eric Lawrence
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
  7. Adam
    Adam avatar
    5 posts
    Member since:
    Feb 2014

    Posted 13 Feb 2015 in reply to Eric Lawrence Link to this post

    Eric,

    I was set up to use DebugView to see what was going on and the issue mysteriously vanished.  I can no longer reproduce the memory creep that I was seeing before.  Something obviously changed but I have no idea what.  If it starts up again I'll post the results back here.

    Otherwise thanks for the help!

    - Adam
  8. Adam
    Adam avatar
    5 posts
    Member since:
    Feb 2014

    Posted 13 Feb 2015 in reply to Eric Lawrence Link to this post

    The issue started up again this afternoon.  I've included a link to the log file from DebugView below.  I see what appears to be a repeating connection error but I'm not sure what would be causing it.

    https://www.dropbox.com/s/rnd1n9fyd0k24j8/Fiddler%20Memory%20Issue.LOG?dl=0
  9. Eric Lawrence
    Admin
    Eric Lawrence avatar
    833 posts

    Posted 13 Feb 2015 Link to this post

    Thanks, Adam-- There's not nearly enough in this log to account for the memory usage you're reporting. I'll keep investigating based on what we know so far.

    Regards,
    Eric Lawrence
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
  10. Ricardo
    Ricardo avatar
    3 posts
    Member since:
    Aug 2015

    Posted 17 Aug 2015 Link to this post

    Hi!

     I'm having the same issues.

    This only happens when I'm using several IIS sites and some IIS express at the same time and It's a nightmare because it goes beyond 10GB+ and starts shuting down sql databases and such.

  11. Eric Lawrence
    Admin
    Eric Lawrence avatar
    833 posts

    Posted 17 Aug 2015 Link to this post

    Hello,

    Unfortunately, saying "I'm having the same issues" doesn't do anything to help resolve the problem. What, specifically, have you tried so far? What do you have the "Keep Only" setting in Fiddler's Toolbar set to? What is the output from the !memory diagnostic run in the QuickExec box?

    Regards,
    Eric Lawrence
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items

     I'm having the same issues.
  12. Ricardo
    Ricardo avatar
    3 posts
    Member since:
    Aug 2015

    Posted 18 Aug 2015 in reply to Eric Lawrence Link to this post

    Hi! I understand and I'll help in anything I can. 

     In the Keep Only I have 100 sessions.

    !memory gives the following output when I was experiencing a slow non-stop in memory increase by fiddler:

     13:09:03:4358 MEMORY ANALYSIS
    Process Bitness: 64
    PRE-GC
    GCAllocated: 5 754 838 608
    VirtualMemory: 5 944 950 784
    WorkingSet: 5 965 074 432

    POST-GC
    GCAllocated: 5 795 679 968
    VirtualMemory: 5 912 428 544
    WorkingSet: 5 931 208 704

     

    Here's the memory reported by task manager:

    http://i.imgur.com/0uJPQe6.png

     

    When this is happening Visual Studio 2013 in debug is using 1 maxed core and after I close fiddler it returns to 1-2% usage so my bet is that it has something to do with the debuger. 

     

  13. Eric Lawrence
    Admin
    Eric Lawrence avatar
    833 posts

    Posted 18 Aug 2015 Link to this post

    Hi, Ricardo--

    The "GCAllocated" of 5gb means that Fiddler is literally storing 5 gigabytes of traffic.

    You mention that you're using Visual Studio 2013... are you doing so to debug a website, using "BrowserLink" or a similar technology? Some users have reported that this causes a huge amount of memory use as BrowserLink sends an endless stream of messages back-and-forth.

    With the "Keep only" feature disabled, do you see any WebSockets in Fiddler's Web Sessions list? If so, double-click one of them to open the WebSockets view. Are there a large number of messages?

    Thanks,
    Eric Lawrence
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  14. Ricardo
    Ricardo avatar
    3 posts
    Member since:
    Aug 2015

    Posted 18 Aug 2015 in reply to Eric Lawrence Link to this post

    Hi!

     Disabling "BrowserLink" solved the fiddler memory problems.

     I'm sorry but I didn't understand the websockets request. How do I identify them in the sessions list? For now I'm OK since I don't really need "BrowserLink" but if you want me to check anything for you just ask.

  15. Eric Lawrence
    Admin
    Eric Lawrence avatar
    833 posts

    Posted 18 Aug 2015 Link to this post

    Hello,

    Yes, BrowserLink is based on SignalR, which uses WebSockets as one of its transports. If disabling browserlink is fine by you then no further action is required.

    Fiddler shows WebSocket traffic in a Session with a small "socket" icon; see the "WebSockets" section of http://www.telerik.com/blogs/what-s-new-in-fiddler-4-5. 

    (FiddlerScript can be used to disable the parsing of WebSocket messages on BrowserLink-related connections; you'd just set oSession["x-no-parse"] on WebSocket sessions that are pointed at the local BrowserLink endpoint.)

    Regards,
    Eric Lawrence
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
Back to Top