Closed nathanwoctopusdeploy closed 1 year ago
This PR changes the way ILog instances are created which are used by the InMemoryConnectionLog to improve a performance issue observed in Halibut.
ILog
InMemoryConnectionLog
Snippet of pstacks from a Server process dump showing the issue
pstacks
Before this change, an ILog would be constructed for every log message that Halibut wanted to write.
After this change, the LogFactory constructs an ILog which is reused for all InMemoryConnectionLogs and so all log messages halibut writes.
Related to https://github.com/OctopusDeploy/Issues/issues/8266
Quality :heavy_check_mark:
[sc-56658]
This pull request has been linked to Shortcut Story #56658: Halibut fix logging thread pool exhaustion.
Background
This PR changes the way
ILog
instances are created which are used by theInMemoryConnectionLog
to improve a performance issue observed in Halibut.Snippet of
pstacks
from a Server process dump showing the issueBefore this change, an ILog would be constructed for every log message that Halibut wanted to write.
After this change, the LogFactory constructs an ILog which is reused for all InMemoryConnectionLogs and so all log messages halibut writes.
Related to https://github.com/OctopusDeploy/Issues/issues/8266
How to review this PR
Quality :heavy_check_mark:
Pre-requisites