Skip to content

Commit fdf07ad

Browse files
author
Christopher Frost
committed
Document memory settings
This commit adds more details documentation about the memory settings that can and can not be supplied to the Java buildpack and if the setting is likely to effect the memory weighting in relation to the total memory provided to an application. [#78798560]
1 parent 93e7c44 commit fdf07ad

File tree

2 files changed

+39
-5
lines changed

2 files changed

+39
-5
lines changed

docs/framework-java_opts.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,43 @@ from_environment: false
3535
java_opts: -Xloggc:$PWD/beacon_gc.log -verbose:gc
3636
```
3737
38+
## Memory Settings
39+
40+
The following `JAVA_OPTS` are restricted and will cause the application to fail deployment.
41+
42+
* `-Xms`
43+
* `-Xmx`
44+
* `-Xss`
45+
* `-XX:MaxMetaspaceSize`
46+
* `-XX:MaxPermSize`
47+
* `-XX:MetaspaceSize`
48+
* `-XX:PermSize`
49+
50+
### Allowed Memory Settings
51+
52+
Setting any of the allowed memory settings may require a change to the [Memory Weightings]. Where a value is shown it is the default value for that setting.
53+
54+
| Argument| Description
55+
| ------- | -----------
56+
| `-Xmn size` | The size of the heap for the young generation objects, known as the eden region. This could effect the total heap size [Memory Weightings].
57+
| `-XX:MaxDirectMemorySize=64m` | Upper limit on the maximum amount of allocatable direct buffer memory. This could effect the [Memory Weightings].
58+
| `-XX:+UseGCOverheadLimit` | Use a policy that limits the proportion of the VM's time that is spent in GC before an OutOfMemory error is thrown. Performance Options.
59+
| `-XX:HeapDumpPath=./java_pid<pid>.hprof` | Path to directory or filename for heap dump. Manageable.
60+
| `-XX:-HeapDumpOnOutOfMemoryError` | Dump heap to file when java.lang.OutOfMemoryError is thrown. Manageable.
61+
| `-XX:OnError="<cmd args>;<cmd args>"` | Run user-defined commands on fatal error.
62+
| `-XX:OnOutOfMemoryError="<cmd args>;<cmd args>"` | Run user-defined commands when an OutOfMemoryError is first thrown.
63+
| `-XX:+UseLargePages` | Use large page memory. For details, see Java Support for Large Memory Pages. Debugging Options
64+
| `-XX:LargePageSizeInBytes=4m` | Sets the large page size used for the Java heap.
65+
| `-XX:MaxHeapFreeRatio=70` | Maximum percentage of heap free after GC to avoid shrinking.
66+
| `-XX:MaxNewSize=size` | Maximum size of new generation (in bytes). Since 1.4, MaxNewSize is computed as a function of NewRatio. This could effect the total heap size [Memory Weightings].
67+
| `-XX:MinHeapFreeRatio=40` | Minimum percentage of heap free after GC to avoid expansion.
68+
| `-XX:NewRatio=2` | Ratio of old/new generation heap sizes. 2 is equal to approximately 66%.
69+
| `-XX:NewSize=2m` | Default size of new generation heap region (in bytes). This could effect the total heap size [Memory Weightings].
70+
| `-XX:ReservedCodeCacheSize=32m (aka -Xmaxjitcodesize)` - Java 8 Only | Reserved code cache size (in bytes) - maximum code cache size. This could effect the [Memory Weightings].
71+
| `-XX:SurvivorRatio=8` | Ratio of eden/survivor space size. Solaris only.
72+
| `-XX:TargetSurvivorRatio=50` | Desired percentage of survivor space used after scavenge.
73+
| `-XX:ThreadStackSize=512` | Thread Stack Size (in Kbytes). (0 means use default stack size)
74+
75+
[Memory Weightings]: jre-open_jdk_jre.md#memory-weightings
3876
[Configuration and Extension]: ../README.md#configuration-and-extension
3977
[`config/java_opts.yml`]: ../config/java_opts.yml

java-buildpack.iml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<module type="RUBY_MODULE" version="4">
3-
<component name="CompassSettings">
4-
<option name="compassSupportEnabled" value="true" />
5-
</component>
63
<component name="ModuleRunConfigurationManager">
74
<configuration default="false" name="All Tests" type="RSpecRunConfigurationType" factoryName="RSpec" singleton="true">
85
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
@@ -305,5 +302,4 @@
305302
<LOAD_PATH number="4" string0="$MODULE_DIR$/lib" string1="$MODULE_DIR$/spec" string2="$MODULE_DIR$/bin" string3="$MODULE_DIR$/spec/bin" />
306303
<I18N_FOLDERS number="0" />
307304
</component>
308-
</module>
309-
305+
</module>

0 commit comments

Comments
 (0)