Comments (10)
@franz1981 I am no expert on this topic but this is one of the applications that ran into an OOM:
The jvm started with the desired committed heap (InitialRAMPercentage
) but after a while it was shrinked. I found this on a redhat blog post:
Source: https://developers.redhat.com/blog/2017/04/04/openjdk-and-containers
Are you mentioning OOM at java level or due to OS OOM killer?
OOM on java level
from quarkus.
I'll leave it up to @franz1981 to decide
from quarkus.
You added a link to a Zulip discussion, please make sure the description of the issue is comprehensive and doesn't require accessing Zulip
This message is automatically generated by a bot.
from quarkus.
/cc @geoand (jib,kotlin)
from quarkus.
@jmtd I wonder if the choice for these flags needs to be revisited.
I'll cc @franz1981 in this discussion as well as he likely has plenty of knowledge to contribute
from quarkus.
I forgot to share one thought in my initial post: According to my current knowledge, the jvm flags are put into a Properties
object (thus a HashTable underneath) which means that the last flag provided wins (e.g. -XX:MaxRAMPercentage=80.0, -XX:MaxRAMPercentage=40.0
would lead to -XX:MaxRAMPercentage=40.0
. (We currently try to reset the defaults by providing custom jib jvm flags).
I don't know though, which rules apply to"switchable" flags, like -XX:+ExitOnOutOfMemoryError,-XX:-ExitOnOutOfMemoryError
. Does -
or +
win in such a case? Kind of the same situation if we want to use a different GC.
from quarkus.
We experienced these problems in the past as well (~1 year ago) and found out that these OOMs were caused by the resizing of the committed heap
Can you share more about this instead? G1 can return back heap memory (uncommitted) enabling periodic GCs, but I didn't hear anything about OOM cause by such. Are you mentioning OOM at java level or due to OS OOM killer?
from quarkus.
We went for a workaround that resets the new jvm flags to their defaults:
The OOMs are gone now and our quarkus applications run smoothly again as they did before the quarkus update to 3.7 happened.
from quarkus.
Thank you very much for the update!
from quarkus.
@geoand : but why did you close it? Just because we found a workaround, this is still a bug imho? Up to my understanding, quarkus is supposed to run in different scenarios like typical every day joe webservers as well as heavy lifting batch jobs? Choosing a parallelGC and a very offensive heap shrinking behaviour as default is a very bad approach especially for the later one imo.
from quarkus.
Related Issues (20)
- `quarkus image build` overrides `container-image.group` with the docker username HOT 1
- Response when invalid endpoint is called be agent responsive HOT 9
- Quarkus Diameter Stack
- Support connection reset on cancellation for generated REST clients HOT 14
- Build fails if a dependency contains dependency to old smallrye-config HOT 2
- REST Client: support download multiple files multipart/form-data HOT 2
- Support Spring Data `JpaRepository#getReferenceById(ID)` (replacement for deprecated `getOne(ID)`) HOT 7
- Improve error message when multiple hibernate interceptors are found HOT 6
- Enhance SmallRyeConfig handling HOT 5
- Enable `--exact-reachability-metadata` with Mandrel >= 23.1 (GraalVM for JDK 21) HOT 1
- quarkus rest error handling for WebApplicationExceptions and CompletionStage does not work anymore
- Improve native-image documentation for Serialization registration HOT 2
- Extend ReflectiveClassBuildItem to support `queryAllPublicConstructors`, `queryAllDeclaredConstructors`, `queryAllPublicMethods`, `queryAllDeclaredMethods` HOT 1
- Kotlin junit ParameterizedTest with functions as argument, not working anymore (Kotlin 2.0) HOT 6
- Panache for Hibernate ORM assumes the datasource has the same name as the persistence unit HOT 4
- Regression in 3.13.0.CR1: Lambda expression from custom serializable interface used as `@QuarkusTest` method parameter fails with `ClassNotFoundException` HOT 5
- create index.html link on dynamic index page HOT 1
- Add a test for `quarkus.elasticsearch.health.enabled` HOT 2
- Setting root path starting with `/dev` breaks the dev-ui HOT 1
- Infinispan marshalling of POJOs with boolean fields not working HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quarkus.