[NETCONF-170] Poor performance of MDSAL Northbound mapped on a Netconf connector Created: 22/Mar/16 Updated: 15/Mar/19 Resolved: 13/Apr/17 |
|
| Status: | Resolved |
| Project: | netconf |
| Component/s: | netconf |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Jozef Behran | Assignee: | Unassigned |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Attachments: |
|
| External issue ID: | 5581 |
| Description |
|
When RestPerfClient is run on MDSAL Northbound directly, the MDSAL Northbound manages to serve over 400 requests per second. However when it is run on MDSAL Northbound mapped on a Netconf Connector, the request rate drops significantly. The RestPerfClient output log attached to Yes, I expect a performance drop when going through a Netconf connector versus going directly but a performance drop of over 50% is way too severe. Looking into the logs reveals massive amount of "Timing out for 1 session(s) with id <24-to-26-random-chars>" warnings emitted during the time when RestPerfClient emitting the requests to the Netconf connector mapped MDSAL Northbound. |
| Comments |
| Comment by Andrej Mak [ 12/Sep/16 ] |
|
Hi, if you compare steps executed during direct and mountpoint access to ODL datastore, you can see, that access via netconf connector is much more complex. Direct approach: Via netconf connector Additionally, netconf mountpoint write transaction operations are implemented as sequence of multiple netconf rpcs (lock, edit-config, commit, unlock) "Timing out for 1 session(s) with id <24-to-26-random-chars>" warnings are logged by restconf and shouldn't affect this issue. I've also profiled ODL under this test and haven't found spots suitable for optimalization. |
| Comment by Peter Gubka [ 03/Jan/17 ] |
|
Attachment 5581.zip has been added with description: job files |
| Comment by Peter Gubka [ 03/Jan/17 ] |
|
All the scale jobs are hitting the same problem, that sending rest requests using netconf connector takes too long. Using refs/changes/68/49468/8 the test was done and all files are attached. The performance drop is seen comparing restperfclient- 13:11:03.692 [main] INFO o.o.n.t.t.c.http.perf.RestPerfClient - FINISHED. Execution time: 11.66 min Drop in performance from 245 req/s to 7 req/s is too significant even if the netconf connector path is more complicated. |
| Comment by Andrej Mak [ 16/Feb/17 ] |
|
Exi handler optimization With these patches, test shouldn't fail on timeout and it should make ~22 requests/s. |
| Comment by Robert Varga [ 28/Feb/17 ] |
|
I think the results are fine. We know the SSH integration needs major surgery to get the performance we would like, especially in case of single-threaded access. |
| Comment by Andrej Mak [ 13/Apr/17 ] |
|
Netconf SSH pipeline improvements are tracked here: |