|
|
@@ -44,9 +44,9 @@ cpu_value() {
|
|
|
}
|
|
|
|
|
|
memory_value() {
|
|
|
- awk -v total="$1" -v share="$2" 'BEGIN {
|
|
|
- value = int(total * 0.50 * share / 100);
|
|
|
- if (value < 96) value = 96;
|
|
|
+ awk -v total="$1" -v share="$2" -v minimum="${3:-96}" 'BEGIN {
|
|
|
+ value = int(total * 0.65 * share / 100);
|
|
|
+ if (value < minimum) value = minimum;
|
|
|
printf "%dm", value;
|
|
|
}'
|
|
|
}
|
|
|
@@ -62,9 +62,14 @@ integer_at_least_one() {
|
|
|
CPUS="$(detect_cpus)"
|
|
|
MEMORY_MB="$(detect_memory_mb)"
|
|
|
BUILD_CPUS="$(integer_at_least_one "$(awk -v total="$CPUS" 'BEGIN { print total * 0.80 }')")"
|
|
|
+MAVEN_HEAP_MB="$(awk -v total="$MEMORY_MB" 'BEGIN {
|
|
|
+ value = int(total * 0.65 * 0.41 * 0.70);
|
|
|
+ if (value < 768) value = 768;
|
|
|
+ printf "%d", value;
|
|
|
+}')"
|
|
|
NODE_OLD_SPACE_MB="$(awk -v total="$MEMORY_MB" 'BEGIN {
|
|
|
- value = int(total * 0.50 * 0.25);
|
|
|
- if (value < 512) value = 512;
|
|
|
+ value = int(total * 0.65 * 0.10 * 0.70);
|
|
|
+ if (value < 256) value = 256;
|
|
|
printf "%d", value;
|
|
|
}')"
|
|
|
|
|
|
@@ -73,37 +78,37 @@ cat > "$OUTPUT_FILE" <<EOF
|
|
|
services:
|
|
|
postgres:
|
|
|
cpus: "$(cpu_value "$CPUS" 20)"
|
|
|
- mem_limit: "$(memory_value "$MEMORY_MB" 25)"
|
|
|
- memswap_limit: "$(memory_value "$MEMORY_MB" 25)"
|
|
|
+ mem_limit: "$(memory_value "$MEMORY_MB" 24 384)"
|
|
|
+ memswap_limit: "$(memory_value "$MEMORY_MB" 24 384)"
|
|
|
pids_limit: 512
|
|
|
|
|
|
redis:
|
|
|
cpus: "$(cpu_value "$CPUS" 5)"
|
|
|
- mem_limit: "$(memory_value "$MEMORY_MB" 5)"
|
|
|
- memswap_limit: "$(memory_value "$MEMORY_MB" 5)"
|
|
|
+ mem_limit: "$(memory_value "$MEMORY_MB" 5 128)"
|
|
|
+ memswap_limit: "$(memory_value "$MEMORY_MB" 5 128)"
|
|
|
pids_limit: 256
|
|
|
|
|
|
rabbitmq:
|
|
|
- cpus: "$(cpu_value "$CPUS" 15)"
|
|
|
- mem_limit: "$(memory_value "$MEMORY_MB" 15)"
|
|
|
- memswap_limit: "$(memory_value "$MEMORY_MB" 15)"
|
|
|
+ cpus: "$(cpu_value "$CPUS" 20)"
|
|
|
+ mem_limit: "$(memory_value "$MEMORY_MB" 20 512)"
|
|
|
+ memswap_limit: "$(memory_value "$MEMORY_MB" 20 512)"
|
|
|
pids_limit: 512
|
|
|
|
|
|
backend:
|
|
|
- cpus: "$(cpu_value "$CPUS" 50)"
|
|
|
- mem_limit: "$(memory_value "$MEMORY_MB" 45)"
|
|
|
- memswap_limit: "$(memory_value "$MEMORY_MB" 45)"
|
|
|
+ cpus: "$(cpu_value "$CPUS" 45)"
|
|
|
+ mem_limit: "$(memory_value "$MEMORY_MB" 41 768)"
|
|
|
+ memswap_limit: "$(memory_value "$MEMORY_MB" 41 768)"
|
|
|
pids_limit: 1024
|
|
|
build:
|
|
|
args:
|
|
|
- MAVEN_OPTS: "-XX:ActiveProcessorCount=$BUILD_CPUS -XX:MaxRAMPercentage=50 -Djava.awt.headless=true"
|
|
|
+ MAVEN_OPTS: "-Xmx${MAVEN_HEAP_MB}m -XX:ActiveProcessorCount=$BUILD_CPUS -Djava.awt.headless=true"
|
|
|
environment:
|
|
|
JAVA_TOOL_OPTIONS: "-XX:MaxRAMPercentage=50"
|
|
|
|
|
|
frontend:
|
|
|
cpus: "$(cpu_value "$CPUS" 10)"
|
|
|
- mem_limit: "$(memory_value "$MEMORY_MB" 10)"
|
|
|
- memswap_limit: "$(memory_value "$MEMORY_MB" 10)"
|
|
|
+ mem_limit: "$(memory_value "$MEMORY_MB" 10 256)"
|
|
|
+ memswap_limit: "$(memory_value "$MEMORY_MB" 10 256)"
|
|
|
pids_limit: 256
|
|
|
build:
|
|
|
args:
|
|
|
@@ -112,4 +117,4 @@ EOF
|
|
|
|
|
|
echo "已生成 Docker 资源限制: $OUTPUT_FILE"
|
|
|
echo "宿主机 CPU: $CPUS, Docker CPU 总预算: 80%"
|
|
|
-echo "宿主机内存: ${MEMORY_MB}MB, Docker 内存总预算: 50%"
|
|
|
+echo "宿主机内存: ${MEMORY_MB}MB, Docker 内存总预算: 65%"
|