Skip to content
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

Optimize PermissionChecker performance && adjust jsonrpc configuration #13034

Merged
merged 6 commits into from
Sep 11, 2019

Conversation

skabashnyuk
Copy link
Contributor

@skabashnyuk skabashnyuk commented Apr 1, 2019

What does this PR do?

It's an attempt to reduce the time needed to execute a single json-rpc call.
To test that I was using a scenario that is emulating Che6 workspace startup. It has 10 times more minor events aka logs in comparison to major aka statuses.

Figure 1:

this is how che server behaves without changes
Знімок екрана  о 21 40 21
Знімок екрана  о 15 43 53

what we can see here is

  • we can see the degradation of major queue. The size of this queue is very big. In this pr, I've changed an upper limit to reduce pressure on the heap.
  • The maximum duration of json/rpc call between 20-40 and it's started degrading after the point when heap was consumed almost completely.

Figure 2:

this is how che server behaves with queue adjustmens and query cache
Знімок екрана  о 21 38 24
Знімок екрана  о 15 26 54
what we can see here is :

  • performance of minor queue increased 8 times, major - ~12 times.
  • maximum time of message execution reduced about 10 times in avg.
  • a big part of the heap was consumed by http sessions (TODO create an issue here)

Figure 3

The number of rows fetched with and without query cache.

  • Time of execution with caching enabled from 13-53 -> 14-57
  • Time of execution without caching from 15-09 -> 15-13
    Знімок екрана  о 15 20 35
    Знімок екрана  о 15 21 37
    what we can see here is :
  • If we are speaking about the test without caching - it's about ten's of millions of rows.
  • If we are speaking about the test with caching - it's about hundreds of rows.
  • it's important to constantly monitor DB statistic [Metrics] Database metrics #13223

What issues does this PR fix or reference?

#13221
#13131
redhat-developer/rh-che#1323

@skabashnyuk skabashnyuk force-pushed the tunejsonrpc branch 2 times, most recently from b649430 to c631924 Compare April 6, 2019 20:21
@skabashnyuk skabashnyuk force-pushed the tunejsonrpc branch 2 times, most recently from 960f8cf to 3b9e278 Compare April 19, 2019 08:17
@skabashnyuk skabashnyuk force-pushed the tunejsonrpc branch 4 times, most recently from 4c0fefd to ba3b9b3 Compare April 25, 2019 05:58
@che-bot che-bot added status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community. kind/task Internal things, technical debt, and to-do tasks to be performed. labels Aug 6, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Aug 6, 2019
@che-bot
Copy link
Contributor

che-bot commented Sep 6, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:

  • build details
  • "che-server" docker image: maxura/che-server:13034

@che-bot
Copy link
Contributor

che-bot commented Sep 6, 2019

E2E tests of Eclipse Che Multiuser on OCP has been successful:

Signed-off-by: Sergii Kabashniuk <skabashniuk@redhat.com>
@che-bot
Copy link
Contributor

che-bot commented Sep 9, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:

  • build details
  • "che-server" docker image: maxura/che-server:13034

@che-bot
Copy link
Contributor

che-bot commented Sep 9, 2019

E2E tests of Eclipse Che Multiuser on OCP has failed:

@skabashnyuk skabashnyuk marked this pull request as ready for review September 9, 2019 14:01
@skabashnyuk skabashnyuk changed the title Adjust jsonrpc configuration. Optimize PermissionChecker performance && adjust jsonrpc configuration Sep 9, 2019
@skabashnyuk
Copy link
Contributor Author

ci-test

…d workspaceid

Signed-off-by: Sergii Kabashniuk <skabashniuk@redhat.com>
@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E tests of Eclipse Che Multiuser on OCP has failed:

@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has failed:

…erId and workspaceid

Signed-off-by: Sergii Kabashniuk <skabashniuk@redhat.com>
@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has failed:

@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E tests of Eclipse Che Multiuser on OCP has been successful:

@skabashnyuk
Copy link
Contributor Author

crw-ci-test

@che-bot
Copy link
Contributor

che-bot commented Sep 10, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has failed:

@che-bot
Copy link
Contributor

che-bot commented Sep 11, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:

  • build details
  • "che-server" docker image: maxura/che-server:13034

@che-bot
Copy link
Contributor

che-bot commented Sep 11, 2019

E2E tests of Eclipse Che Multiuser on OCP has failed:

@skabashnyuk
Copy link
Contributor Author

crw-ci-test

@skabashnyuk
Copy link
Contributor Author

ci-build

@skabashnyuk
Copy link
Contributor Author

ci-test

@che-bot
Copy link
Contributor

che-bot commented Sep 11, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:

  • build details
  • "che-server" docker image: maxura/che-server:13034

@che-bot
Copy link
Contributor

che-bot commented Sep 11, 2019

E2E tests of Eclipse Che Multiuser on OCP has been successful:

Copy link
Member

@sleshchenko sleshchenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Signed-off-by: Sergii Kabashniuk <skabashniuk@redhat.com>
@ibuziuk
Copy link
Member

ibuziuk commented Sep 11, 2019

@ScrewTSW do we override those values on rh-che side ?

@che-bot
Copy link
Contributor

che-bot commented Sep 11, 2019

E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:

  • build details
  • "che-server" docker image: maxura/che-server:13034

@eclipse-che eclipse-che deleted a comment from che-bot Sep 11, 2019
@eclipse-che eclipse-che deleted a comment from che-bot Sep 11, 2019
@skabashnyuk
Copy link
Contributor Author

ci-test

@che-bot
Copy link
Contributor

che-bot commented Sep 11, 2019

E2E tests of Eclipse Che Multiuser on OCP has failed:

@skabashnyuk skabashnyuk merged commit 00eaa1a into master Sep 11, 2019
@skabashnyuk skabashnyuk deleted the tunejsonrpc branch September 11, 2019 12:18
@che-bot che-bot removed the status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community. label Sep 11, 2019
@che-bot che-bot added this to the 7.2.0 milestone Sep 11, 2019
@skabashnyuk skabashnyuk mentioned this pull request Sep 19, 2019
23 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/task Internal things, technical debt, and to-do tasks to be performed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants