I have a .NET application which basically does the following:
- Is connected to a bunch of serial devices (~32) via COM ports, and is processing data coming from those devices
- When a message is received from these serial devices (there are some libraries that are monitoring the raw serial data, and letting my application know when they've assembled a full "message"), my application logs the message to SQL, adds a data point to a live chart on screen, and adds the message to a list of messages scrolling by on the screen
When the PC is in active use, we see these messages come in from the serial devices about 1/sec. I know that there are always messages being being received by these devices at about that rate (they're wireless receivers, and I know how often the wireless transmitters transmit). When the PC is left idle for a while though (15-30 minutes), we stop seeing messages coming in in my application. When I interact with the program again, it's laggy for maybe a minute (this was anecdotally told to me by someone using the computer), then it becomes responsive again, and starts acting like normal.
Edited this portion:
Interestingly, we do see some intermittent SQL logs during this period. For example, on the main screen of the application, there is a feed where we see "all" messages that come in. We stopped seeing messages there at 10:02 today, but some messages were still getting logged to SQL after that (some at 10:05). In the code, the SQL logging actually happens after the message display, although on a different thread.
The system has 32GB of RAM and the application only shows using about 250 MB. The largest user of RAM on the PC is the SQL database with ~600 MB. It's running on a Xeon processor with 16 threads I believe.
Any clue on what could be causing this? Potentially windows power saving stuff? I've turned off all power management settings I could find, but some may be managed by the PC's site network. Memory being paged out to disk? It appears that these processes actually aren't executing while the program is "idling" though--which I wouldn't expect from paging.
Edit: The only system event logged in this time frame is a GroupPolicy event: "The Group Policy settings for the computer were processed successfully. There were no changes detected since the last successful processing of Group Policy."