You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm tracking high memory usage in a server application over a period of about 12 hours or so.
This is .Net Core 2.0.5 app running on Windows Server 2016.
Interesting parts from the memory dump:
000001bdb64d4b50 1590529 1762729490 Free
Total 34634797 objects
Fragmented blocks larger than 0.5 MB:
Addr Size Followed by
000001be1155bb58 1.7MB 000001be11711418 System.Byte[]
000001be117126e8 1.5MB 000001be1189d5a0 System.Byte[]
000001be118a28a0 1.2MB 000001be119d18f0 System.Byte[]
// total of 118 of these
I started to look at these, and found that we have the following distribution:
118 total fragmenting objects, all of them byte[] with the following distribution:
Do you use SslStream directly on server side?
During 2.1 we added buffer pooling in SslStream, could you try to run your app on 2.1? (see dogfooding)
If you can repro it with 2.1, we would be interested in more details about your app and/or repro.
I'm tracking high memory usage in a server application over a period of about 12 hours or so.
This is .Net Core 2.0.5 app running on Windows Server 2016.
Interesting parts from the memory dump:
I started to look at these, and found that we have the following distribution:
118 total fragmenting objects, all of them
byte[]
with the following distribution:I dumped a few of the 3176 buffers, and they look like this:

This looks like it is a buffer holding a certificate.
All communication with the application is done of over TLS, which means using SslStream.
The numbers don't match up exactly, but it does look like I have a lot of pinned instances like that.
Runing
!gcroot
shows just a pinned handle and an async pinned handle.The text was updated successfully, but these errors were encountered: