I noticed a fairly big difference in the JVM arguments used when creating containers in Fabric.
My root container runs with
A child container only runs with
An ssh container uses
What this means:
- Neither child nor SSH container set -Xmx
- Neither child nor SSH set -XX:MaxPermSize
- SSH container does not use -server, hence defaults to client JVM
- child container does not set -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass, which I thought was needed to work around some dead lock in Karaf.
I really think an
- SSH container should run with -server at the least.
- child and SSH container should explicitly set -Xmx
- child and SSH container should also set -XX:MaxPermSize