Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
move WEB_CONCURRENCY logic to separate file (#467)
All buildpacks use `profile/WEB_CONCURRENCY.sh` now which will be overwritten by the later buildpacks to avoid earlier buildpacks setting defaults for later ones at startup, with wrong defaults for some languages.
- Loading branch information
Showing
3 changed files
with
40 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
#!/usr/bin/env bash | ||
|
||
calculate_concurrency() { | ||
WEB_CONCURRENCY=${WEB_CONCURRENCY-$((MEMORY_AVAILABLE/WEB_MEMORY))} | ||
if (( WEB_CONCURRENCY < 1 )); then | ||
WEB_CONCURRENCY=1 | ||
fi | ||
echo $WEB_CONCURRENCY | ||
} | ||
|
||
log_concurrency() { | ||
echo "Detected $MEMORY_AVAILABLE MB available memory, $WEB_MEMORY MB limit per process (WEB_MEMORY)" | ||
echo "Recommending WEB_CONCURRENCY=$WEB_CONCURRENCY" | ||
} | ||
|
||
detect_memory() { | ||
local default=$1 | ||
local limit=$(ulimit -u) | ||
|
||
case $limit in | ||
256) echo "512";; # Standard-1X | ||
512) echo "1024";; # Standard-2X | ||
16384) echo "2560";; # Performance-M | ||
32768) echo "14336";; # Performance-L | ||
*) echo "$default";; | ||
esac | ||
} | ||
|
||
export MEMORY_AVAILABLE=${MEMORY_AVAILABLE-$(detect_memory 512)} | ||
export WEB_MEMORY=${WEB_MEMORY-512} | ||
export WEB_CONCURRENCY=$(calculate_concurrency) | ||
|
||
if [ "$LOG_CONCURRENCY" = "true" ]; then | ||
log_concurrency | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,41 +1,3 @@ | ||
calculate_concurrency() { | ||
MEMORY_AVAILABLE=${MEMORY_AVAILABLE-$(detect_memory 512)} | ||
WEB_MEMORY=${WEB_MEMORY-512} | ||
WEB_CONCURRENCY=${WEB_CONCURRENCY-$((MEMORY_AVAILABLE/WEB_MEMORY))} | ||
if (( WEB_CONCURRENCY < 1 )); then | ||
WEB_CONCURRENCY=1 | ||
fi | ||
WEB_CONCURRENCY=$WEB_CONCURRENCY | ||
} | ||
|
||
log_concurrency() { | ||
echo "Detected $MEMORY_AVAILABLE MB available memory, $WEB_MEMORY MB limit per process (WEB_MEMORY)" | ||
echo "Recommending WEB_CONCURRENCY=$WEB_CONCURRENCY" | ||
} | ||
|
||
detect_memory() { | ||
local default=$1 | ||
local limit=$(ulimit -u) | ||
|
||
case $limit in | ||
256) echo "512";; # Standard-1X | ||
512) echo "1024";; # Standard-2X | ||
16384) echo "2560";; # Performance-M | ||
32768) echo "14336";; # Performance-L | ||
*) echo "$default";; | ||
esac | ||
} | ||
|
||
export PATH="$HOME/.heroku/node/bin:$HOME/.heroku/yarn/bin:$PATH:$HOME/bin:$HOME/node_modules/.bin" | ||
export NODE_HOME="$HOME/.heroku/node" | ||
export NODE_ENV=${NODE_ENV:-production} | ||
|
||
calculate_concurrency | ||
|
||
export MEMORY_AVAILABLE=$MEMORY_AVAILABLE | ||
export WEB_MEMORY=$WEB_MEMORY | ||
export WEB_CONCURRENCY=$WEB_CONCURRENCY | ||
|
||
if [ "$LOG_CONCURRENCY" = "true" ]; then | ||
log_concurrency | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters