SIPServer is heavy, not my brother
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Fix Released
|
Wishlist
|
Unassigned | ||
SIPServer |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
SIPServer is inordinately heavy, memory-wise, at least for Evergreen. This is primarily because connections are stateful and the ILS driver for Evergreen generates a lot of code. In-memory footprint of 65MB+ is common for a quiescent server, and larger for active sites. Add to that the fact that active sites have more SIPServer processes running, and you've got a lot of wasted RAM.
SIPServer is based on Net::Server, and Net::Server has a server personality called Multiplex, which allows a small number of backends to process many requests. However, because of the statefulness, this requires maintaining some state must be maintained, and passed, to the stateless backends. The following branch does that, but requires OpenSRF 2.3+ to be safe in production.
Use of the multiplex personality is optional based on a setting in the sip config file.
tags: | removed: pullrequest |
Changed in sipserver: | |
status: | Fix Committed → Fix Released |
The Evergreen side of this is available in the collab/ gmcharlt/ eg-sip2- support- multiplex- personality branch of the working/Evergreen repository:
http:// git.evergreen- ils.org/ ?p=working/ Evergreen. git;a=shortlog; h=refs/ heads/collab/ gmcharlt/ eg-sip2- support- multiplex- personality
Note that the patches are dependent on those for bug 134871