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

CPU load rises extremely while downloading binaries from mesh #530

Closed
DevNils opened this issue Nov 5, 2018 · 4 comments
Closed

CPU load rises extremely while downloading binaries from mesh #530

DevNils opened this issue Nov 5, 2018 · 4 comments
Assignees
Labels

Comments

@DevNils
Copy link

DevNils commented Nov 5, 2018

Gentics Mesh Version, operating system, or hardware.

  • v0.24.0
  • v0.27.1

Operating System

  • Linux

JVM

  • Comes with docker

Problem

We deal with relatively large files (around 4GB) in mesh. While downloading a big file, the CPU load of the mesh java process rises to a very high base (around 100%).

Reproducer

  • Upload a big file to a node (around 4GB)
  • Download the binary file (with curl e.g.)

Expected behaviour and actual behaviour

We tried to download the same file directly from apache which caused a CPU load of 5%. The CPU load should not be to high while downloading a file from mesh.

@Jotschi
Copy link
Contributor

Jotschi commented Nov 5, 2018

@DevNils Thanks for the report. I'll profile and check the code. Serving static resources should be a zero-copy operation with nearly no CPU utilization involved.

TODO @Jotschi :

  • Check why HttpServerResponse#sendFile is not working as expected
  • Add dedicated performance test for large files
  • Check why this is not an issue for TVC installation

@Jotschi
Copy link
Contributor

Jotschi commented Nov 5, 2018

@DevNils I made a fix which will hopefully make it into the next release. I'll inform you once the version is available.

@Jotschi
Copy link
Contributor

Jotschi commented Nov 7, 2018

@DevNils I just released 0.27.2 which includes the performance fixes. The new version will also utilize native bindings when run on linux (e.g. docker) to increase HTTP performance. I was able to run downloads with 1.8 GB/s - The CPU load is now much lower. Let me know whether this solves your issue.

@Jotschi Jotschi closed this as completed Nov 7, 2018
@Jotschi Jotschi self-assigned this Nov 7, 2018
@DevNils
Copy link
Author

DevNils commented Nov 7, 2018

Thanks a lot! The download is much faster and the CPU load is low (around 8%).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants