Sometimes NT7 uses less than 100mb memory, and suddenly it uses 1.5gb. It looks like the large amount of memory used is simply due to repetitive logging in these two files:
/trace/trace.yyyymmdd
/log/log.yyyymmdd
On "good days" the log file may be 2-7kb. And on bad days about 700mb. Same with the trace file. To me it looks like the extreme memory use is simply the fact that NT7 keeps these big files open for logging. Hence, it seems like a completely unnecessary problem, and simple thing to fix. I assume one either needs to:
1. Put some logic to avoid the repetitive logging, or
2. Put a file size limit to start on a "new file", when the size reaches some limit.
I'm not sure which logging parameter causes this, as it may be different ones. But by starting a new log file at a specified file size of say 20mb would avoid any potential error that causes this behavior to eat up all system resources and hence seems like the best solution. There is no need for an log file of 700mb, because I as a user will never be able to or want to send that to you for error-tracing anyway.
It's completely useless and unacceptable that the program priorities log files over system resources. Specially a trading program. Also the program itself has no use for these log files, at least I assume it's just pure text-dump for debugging purpose. (?)
The files are now filled with this type of message, but I believe I've seen other repetitive log messages also before:
2010-07-09 00:00:12:087 ERROR: IB.Globals.MessageLoop msg='12': Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index 2010-07-09 00:00:12:087 ERROR: IB.Globals.MessageLoop msg='12': Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

Comment