Details
-
Improvement
-
Resolution: Fixed
-
Major - P3
-
None
-
Fully Compatible
-
STM 2020-05-18, STM 2020-06-01, STM 2020-06-15
-
3
Description
Reloading the symbols for every process is another bottleneck. To alleviate this, hang_analyzer.py will be modified to reuse the same debugger process and analyze all processes of the same type (ex. All mongod processes will be analyzed in the same debugger process).
- Processes will be grouped by process type (Ex. all mongod processes)
- A single process will be created that will:
run debugger
|
load symbols
|
for process in processes: |
attach process
|
dump info
|
The debugger scripts are all hardcoded strings, the script for GDB is especially ugly. GDB has an API for python, so if this change turns out to be non-trivial to hardcode as plaintext, we can consider rewriting it to use the python API.
As part of this ticket, ensure the performance improves.
Attachments
Issue Links
- has to be done after
-
SERVER-46693 Parallelize debugger processes in hang-analyzer
-
- Closed
-
- is related to
-
SERVER-48479 hang-analyzer for macos doesn't work on evergreen
-
- Closed
-
-
SERVER-48590 QOL improvements for hang-analyzer
-
- Closed
-