-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Forwarder processes requests too slowly when there are a lot of clients #1666
Comments
Current plan is to investigate why
|
Some statistics after
|
Did some analysis:
|
Current plan:
|
Current plan:
|
After removing all resource limits from The most time consuming elements:
Other Testing of |
I think the main question for now is whether the situation with |
Collected more statistics without resource limits on pods
Testing Testing on unix sockets without |
ConclusionScenario with 30-40 clients and 1 endpoint on a cluster with one node works good. Currernt plan
|
Decomposition: positive scenario: 7d
negative scenario: 15d
vpp elements shoud be considered in the separate issue. |
Description
After some analysis we found out that forwarder processes requests too slowly. Here are top 5 places:
discoverforwarder
- up to 6sdiscoverendpoint
- up to 4sroundrobin
- up to 1spostpone
- up to 900mssdk-vpp
chain elements - can take up to tens of secondsdiscoverforwarder
anddiscoverendpoint
The root cause of these issues is probably slow
registry-k8s
Issues:
networkservicemesh/sdk-k8s#512
roundrobin
Needs more investigation...
postpone
The root cause of
postpone
being to slow is improper use of contexts in some places.trace
relies heavily oncontext.WithValue
. Also a lot of other chain elements use this function.Issues:
#1665
#1667
Closes in many
sdk-vpp
chain elementsClients can wait for the error from a forwarder for the time much longer than request timeout because some chain elements call
close
ifrequest
fails.Issues:
networkservicemesh/sdk-vpp#851
The text was updated successfully, but these errors were encountered: