cet::Ntuple, which is not yet thread-safe. Analysis should be done to determine what meaning memory-tracking has in a multi-threaded environment.
#2 Updated by Kyle Knoepfel over 2 years ago
MemoryTracker header so that users cannot explicitly interact with the
MemoryTracker service. All that remains is to make the
MemoryTracker callbacks thread-safe, which relies inherently on
cet::Ntuple. Analysis must still happen to determine if
MemoryTracker is a meaningful service in a multi-threaded environment.
#5 Updated by Kyle Knoepfel over 2 years ago
- Status changed from Assigned to Resolved
- % Done changed from 90 to 100
Although the previous commit did make the
MemoryTracker service thread-safe, it recorded information per-schedule, which, unlike the
TimeTracker, is unlikely to be helpful. Instead, I changed the SQLite database schema so that only memory snapshot information is recorded in the database. Any changes to the VSize or RSS must be calculated from the database.
MemoryTracker is enabled the summary printed at the end of the
art job now looks like:
==================================================== MemoryTracker summary (base-10 MB units used) Peak virtual memory usage (VmPeak) : 535.593 MB Peak resident set size usage (VmHWM): 186.814 MB Details saved in: 'memoryTracker.db' ====================================================
If per-event or per-module information is desired, the stored database should be queried. Base on discussions with Herb Greenlee and Rob Kutschke, the per-event/module information that was emitted to the terminal was not necessarily all that helpful.
Rob brought up the possibilities of reporting to the terminal whenever the Vsize or RSS increases at the time the increases happens. He has not been the first to suggest reinstating that. Rob also mentioned that it might be helpful to report the module in which the peak Vsize or RSS is obtained. That would be non-trivial to do since we since the peak Vsize/RSS does not necessarily correspond to whenever the memory snapshots are recorded. Rather, we retrieve the the peak Vsize/RSS values once at
If it is desired to reinstate the full event- and module-level summary, or if it is desired to reinstate the increase-in-memory-usage reporting while the increase is happening, a feature request should be opened.
Feature resolves by commit art:13d2a866.