Как динамически установить размер памяти Java в Bash? - PullRequest
2 голосов
/ 27 марта 2012
#!/bin/bash
#
module add apps/java/1.6 
java -Xmx1024m HelloWorld

Мне нужно установить -XmxYm, где Y должно составлять 95% доступной памяти в системе в Мб.

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

Вот скрипт, который вызывает Java с требуемым размером кучи.

#!/bin/bash

# Total memory in KB
totalMemKB=$(awk '/MemTotal:/ { print $2 }' /proc/meminfo)

# Percentage of memory to use for Java heap
usagePercent=95

# heap size in KB
let heapKB=$totalMemKB*$usagePercent/100

# heap size in MB
let heapMB=$heapKB/1024

module add apps/java/1.6 
java -Xmx${heapMB}m HelloWorld

Я настоятельно советую вам использовать более низкий уровень использования, поскольку приложение Java использует больше памяти, чем размер кучи (например, для.для ПермГена).

0 голосов
/ 27 марта 2012

Как сказал Питер Лори, выделение 95% памяти для кучи, вероятно, не разумно.

Однако вы можете определить объем памяти, прочитав файл "/ proc / meminfo". Попробуйте

cat /proc/meminfo
MemTotal:     32958996 kB
MemFree:      23461744 kB
Buffers:        133772 kB
Cached:        1651888 kB
SwapCached:          0 kB
Active:        8460504 kB
Inactive:       740048 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:     32958996 kB
LowFree:      23461744 kB
SwapTotal:    34996216 kB
SwapFree:     34996216 kB
Dirty:             372 kB
Writeback:           0 kB
AnonPages:     7415344 kB
Mapped:          61260 kB
Slab:           206896 kB
PageTables:      24320 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:  51475712 kB
Committed_AS: 18514524 kB
VmallocTotal: 34359738367 kB
VmallocUsed:    282388 kB
VmallocChunk: 34359454135 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     2048 kB
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...