Skip to content

Commit 0b9a0cf

Browse files
committed
Merge branch 'cgfrost-78798560-Memory-Java-opts'
2 parents 93e7c44 + d920d76 commit 0b9a0cf

File tree

2 files changed

+43
-8
lines changed

2 files changed

+43
-8
lines changed

docs/framework-java_opts.md

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ The framework can be configured by creating or modifying the [`config/java_opts.
2323
| Name | Description
2424
| ---- | -----------
2525
| `from_environment` | Whether to append the value of the `JAVA_OPTS` environment variable to the collection of Java options
26-
| `java_opts` | The Java options to use when running the application. All values are used without modification when invoking the JVM. The options are specified as a single YAML scalar in plain style or enclosed in single or double quotes.
26+
| `java_opts` | The Java options to use when running the application. All values are used without modification when invoking the JVM. The options are specified as a single YAML scalar in plain style or enclosed in single or double quotes.
2727

28-
Any `JAVA_OPTS` from either the config file or environment variables that configure memory options will cause deployment to fail as they're not allowed. Memory options are configured by the buildpack and may not be modified.
28+
Any `JAVA_OPTS` from either the config file or environment variables that configure memory options will cause deployment to fail as they're not allowed. Memory options are configured by the buildpack and may not be modified.
2929

3030
## Example
3131
```yaml
@@ -35,5 +35,44 @@ from_environment: false
3535
java_opts: -Xloggc:$PWD/beacon_gc.log -verbose:gc
3636
```
3737
38-
[Configuration and Extension]: ../README.md#configuration-and-extension
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>` | Maximum size of young generation, known as the eden region. **This could effect the total heap size [Memory Weightings].**
57+
| `-XX:+UseGCOverheadLimit` | Use a policy that limits the proportion of the VM's time that is spent in GC before an `java.lang.OutOfMemoryError` error is thrown.
58+
| `-XX:+UseLargePages` | Use large page memory. For details, see [Java Support for Large Memory Pages].
59+
| `-XX:-HeapDumpOnOutOfMemoryError` | Dump heap to file when `java.lang.OutOfMemoryError` is thrown.
60+
| `-XX:HeapDumpPath=<PATH>` | Path to directory or filename for heap dump.
61+
| `-XX:LargePageSizeInBytes=<SIZE>` | Sets the large page size used for the Java heap.
62+
| `-XX:MaxDirectMemorySize=<SIZE>` | Upper limit on the maximum amount of allocatable direct buffer memory. **This could effect the [Memory Weightings].**
63+
| `-XX:MaxHeapFreeRatio=<RATIO>` | Maximum percentage of heap free after GC to avoid shrinking.
64+
| `-XX:MaxNewSize=<SIZE>` | Maximum size of new generation. Since `1.4`, `MaxNewSize` is computed as a function of `NewRatio`. **This could effect the total heap size [Memory Weightings].**
65+
| `-XX:MinHeapFreeRatio=<RATIO>` | Minimum percentage of heap free after GC to avoid expansion.
66+
| `-XX:NewRatio=<RATIO>` | Ratio of old/new generation sizes. 2 is equal to approximately 66%.
67+
| `-XX:NewSize=<SIZE>` | Default size of new generation. **This could effect the total heap size [Memory Weightings].**
68+
| `-XX:OnError="<CMD ARGS>;<CMD ARGS>"` | Run user-defined commands on fatal error.
69+
| `-XX:OnOutOfMemoryError="<CMD ARGS>;<CMD ARGS>"` | Run user-defined commands when an `java.lang.OutOfMemoryError` is first thrown.
70+
| `-XX:ReservedCodeCacheSize=<SIZE>` | _Java 8 Only_ Maximum code cache size. Also know as `-Xmaxjitcodesize`. **This could effect the [Memory Weightings].**
71+
| `-XX:SurvivorRatio=<RATIO>` | Ratio of eden/survivor space. Solaris only.
72+
| `-XX:TargetSurvivorRatio=<RATIO>` | Desired ratio of survivor space used after scavenge.
73+
| `-XX:ThreadStackSize=<SIZE>` | Thread stack size. (0 means use default stack size).
74+
3975
[`config/java_opts.yml`]: ../config/java_opts.yml
76+
[Configuration and Extension]: ../README.md#configuration-and-extension
77+
[Java Support for Large Memory Pages]: http://www.oracle.com/technetwork/java/javase/tech/largememory-jsp-137182.html
78+
[Memory Weightings]: jre-open_jdk_jre.md#memory-weightings

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)