docker_check_mem.sh
· 953 B · Bash
Surowy
#!/bin/bash
human_bytes() {
b="$1"
if [ "$b" = "0" ] || [ -z "$b" ]; then
echo "unlimited"
return
fi
mib=$((b / 1024 / 1024))
if [ "$mib" -ge 1024 ]; then
gib=$((mib / 1024))
echo "${gib}GiB"
else
echo "${mib}MiB"
fi
}
printf "%-28s %-10s %-10s %-10s %-6s\n" "CONTAINER" "MEM" "SWAP" "STATUS" "OOM"
printf "%-28s %-10s %-10s %-10s %-6s\n" "---------" "---" "----" "------" "---"
for c in $(docker ps -aq); do
name=$(docker inspect -f '{{.Name}}' "$c" 2>/dev/null | sed 's#^/##')
mem=$(docker inspect -f '{{.HostConfig.Memory}}' "$c" 2>/dev/null)
swap=$(docker inspect -f '{{.HostConfig.MemorySwap}}' "$c" 2>/dev/null)
status=$(docker inspect -f '{{.State.Status}}' "$c" 2>/dev/null)
oom=$(docker inspect -f '{{.State.OOMKilled}}' "$c" 2>/dev/null)
printf "%-28s %-10s %-10s %-10s %-6s\n" \
"$name" "$(human_bytes "$mem")" "$(human_bytes "$swap")" "$status" "$oom"
done
| 1 | #!/bin/bash |
| 2 | |
| 3 | human_bytes() { |
| 4 | b="$1" |
| 5 | if [ "$b" = "0" ] || [ -z "$b" ]; then |
| 6 | echo "unlimited" |
| 7 | return |
| 8 | fi |
| 9 | mib=$((b / 1024 / 1024)) |
| 10 | if [ "$mib" -ge 1024 ]; then |
| 11 | gib=$((mib / 1024)) |
| 12 | echo "${gib}GiB" |
| 13 | else |
| 14 | echo "${mib}MiB" |
| 15 | fi |
| 16 | } |
| 17 | |
| 18 | printf "%-28s %-10s %-10s %-10s %-6s\n" "CONTAINER" "MEM" "SWAP" "STATUS" "OOM" |
| 19 | printf "%-28s %-10s %-10s %-10s %-6s\n" "---------" "---" "----" "------" "---" |
| 20 | |
| 21 | for c in $(docker ps -aq); do |
| 22 | name=$(docker inspect -f '{{.Name}}' "$c" 2>/dev/null | sed 's#^/##') |
| 23 | mem=$(docker inspect -f '{{.HostConfig.Memory}}' "$c" 2>/dev/null) |
| 24 | swap=$(docker inspect -f '{{.HostConfig.MemorySwap}}' "$c" 2>/dev/null) |
| 25 | status=$(docker inspect -f '{{.State.Status}}' "$c" 2>/dev/null) |
| 26 | oom=$(docker inspect -f '{{.State.OOMKilled}}' "$c" 2>/dev/null) |
| 27 | |
| 28 | printf "%-28s %-10s %-10s %-10s %-6s\n" \ |
| 29 | "$name" "$(human_bytes "$mem")" "$(human_bytes "$swap")" "$status" "$oom" |
| 30 | done |
| 31 |
docker_compose_config_meme_cpu.md
· 4.8 KiB · Markdown
Surowy
# Script check Docekr Mem cpu
file --> docker_check_mem.sh
# ✅ Audit Services Docker (CPU / RAM / Swap)
> Objectif : limiter les pics RAM, éviter OOM, et garder des services réactifs.
> Format conseillé dans docker-compose (compose classique) :
> - `cpus: "X.Y"`
> - `mem_limit: XXXm|Xg`
> - `memswap_limit: XXXm|Xg`
---
## ✅ goaccess
- **Status** : Up ✅
- **CPU** : `cpus: "0.5"`
- **RAM** : `mem_limit: 768m`
- **SWAP** : `memswap_limit: 1536m`
- **Remarque** : parsing logs => pics possibles.
---
## ⚠️ pulse
- **Status** : Exited ❌
- **CPU** : `cpus: "0.5"`
- **RAM** : `mem_limit: 1g` *(ou 2g si beaucoup de hosts)*
- **SWAP** : `memswap_limit: 2g` *(ou 4g)*
- **Remarque** : sans `/var/run/docker.sock` => pas de monitoring Docker local.
---
## ⚠️ photoprism
- **Status** : Exited ❌
- **CPU** : `cpus: "2.0"`
- **RAM** : `mem_limit: 2g`
- **SWAP** : `memswap_limit: 4g`
- **Remarque** : indexation/photo => très gourmand.
---
## ✅ big-bear-adguard-home-host
- **Status** : Up ✅
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 256m`
- **SWAP** : `memswap_limit: 512m`
- **Remarque** : service léger.
---
## ✅ syncthing
- **Status** : Up ✅ (healthy)
- **CPU** : `cpus: "1.0"`
- **RAM** : `mem_limit: 512m`
- **SWAP** : `memswap_limit: 1g`
- **Remarque** : pics possibles selon volume fichiers.
---
## ⚠️ n8n
- **Status** : Created (pas lancé) ⚠️
- **CPU** : `cpus: "1.0"`
- **RAM** : `mem_limit: 1g`
- **SWAP** : `memswap_limit: 2g`
- **Remarque** : workflows + exec => pics.
---
## ✅ big-bear-filebrowser
- **Status** : Up ✅ (healthy)
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 256m`
- **SWAP** : `memswap_limit: 512m`
- **Remarque** : léger.
---
## ⚠️ big-bear-stirling-pdf
- **Status** : Exited ❌
- **CPU** : `cpus: "1.0"`
- **RAM** : `mem_limit: 1g`
- **SWAP** : `memswap_limit: 2g`
- **Remarque** : Java => peut monter.
---
## ✅ mariadb
- **Status** : Up ✅
- **CPU** : `cpus: "1.0"`
- **RAM** : `mem_limit: 1g`
- **SWAP** : `memswap_limit: 2g`
- **Remarque** : le plus important à limiter proprement.
---
## ⚠️ big-bear-ghost
- **Status** : Exited ❌
- **CPU** : `cpus: "0.5"`
- **RAM** : `mem_limit: 512m`
- **SWAP** : `memswap_limit: 1g`
- **Remarque** : OK, mais dépend trafic.
---
## ⚠️ big-bear-ghost-db (mysql:8)
- **Status** : Exited ❌
- **CPU** : `cpus: "1.0"`
- **RAM** : `mem_limit: 1g`
- **SWAP** : `memswap_limit: 2g`
- **Remarque** : si tu utilises déjà mariadb ailleurs, évite 2 DB.
---
## ✅ big-bear-erugo
- **Status** : Up ✅
- **CPU** : `cpus: "0.5"`
- **RAM** : `mem_limit: 512m`
- **SWAP** : `memswap_limit: 1g`
- **Remarque** : usage moyen.
---
## ✅ dozzle-agent
- **Status** : Up ✅
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 128m`
- **SWAP** : `memswap_limit: 256m`
- **Remarque** : léger.
---
## ✅ dozzle
- **Status** : Up ✅
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 128m`
- **SWAP** : `memswap_limit: 256m`
- **Remarque** : léger.
---
## ✅ portainer_agent
- **Status** : Up ✅
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 128m`
- **SWAP** : `memswap_limit: 256m`
---
## ✅ portainer
- **Status** : Up ✅
- **CPU** : `cpus: "0.5"`
- **RAM** : `mem_limit: 256m`
- **SWAP** : `memswap_limit: 512m`
---
## ✅ lagident
- **Status** : Up ✅
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 128m`
- **SWAP** : `memswap_limit: 256m`
---
## ✅ big-bear-glances
- **Status** : Up ✅
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 256m`
- **SWAP** : `memswap_limit: 512m`
---
## ✅ excalidraw
- **Status** : Up ✅ (healthy)
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 256m`
- **SWAP** : `memswap_limit: 512m`
---
## ⚠️ big-bear-composetoolbox
- **Status** : Exited ❌
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 256m`
- **SWAP** : `memswap_limit: 512m`
---
## ⚠️ big-bear-watchyourlan
- **Status** : Exited ❌
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 256m`
- **SWAP** : `memswap_limit: 512m`
- **Remarque** : s’arrête souvent si pas de privilèges réseau.
---
## ✅ memos
- **Status** : Up ✅
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 256m`
- **SWAP** : `memswap_limit: 512m`
---
## ⚠️ ttydbridge
- **Status** : Exited ❌
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 128m`
- **SWAP** : `memswap_limit: 256m`
---
## ✅ openspeedtest
- **Status** : Up ✅
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 128m`
- **SWAP** : `memswap_limit: 256m`
---
## ⚠️ big-bear-brave
- **Status** : Exited ❌
- **CPU** : `cpus: "1.0"`
- **RAM** : `mem_limit: 1g`
- **SWAP** : `memswap_limit: 2g`
- **Remarque** : container navigateur = lourd.
---
## ⚠️ tailscale
- **Status** : Exited ❌
- **CPU** : `cpus: "0.25"`
- **RAM** : `mem_limit: 128m`
- **SWAP** : `memswap_limit: 256m`
- **Remarque** : souvent besoin `--cap-add=NET_ADMIN` ou mode host.
---
Script check Docekr Mem cpu
file --> docker_check_mem.sh
✅ Audit Services Docker (CPU / RAM / Swap)
Objectif : limiter les pics RAM, éviter OOM, et garder des services réactifs. Format conseillé dans docker-compose (compose classique) :
cpus: "X.Y"mem_limit: XXXm|Xgmemswap_limit: XXXm|Xg
✅ goaccess
- Status : Up ✅
- CPU :
cpus: "0.5" - RAM :
mem_limit: 768m - SWAP :
memswap_limit: 1536m - Remarque : parsing logs => pics possibles.
⚠️ pulse
- Status : Exited ❌
- CPU :
cpus: "0.5" - RAM :
mem_limit: 1g(ou 2g si beaucoup de hosts) - SWAP :
memswap_limit: 2g(ou 4g) - Remarque : sans
/var/run/docker.sock=> pas de monitoring Docker local.
⚠️ photoprism
- Status : Exited ❌
- CPU :
cpus: "2.0" - RAM :
mem_limit: 2g - SWAP :
memswap_limit: 4g - Remarque : indexation/photo => très gourmand.
✅ big-bear-adguard-home-host
- Status : Up ✅
- CPU :
cpus: "0.25" - RAM :
mem_limit: 256m - SWAP :
memswap_limit: 512m - Remarque : service léger.
✅ syncthing
- Status : Up ✅ (healthy)
- CPU :
cpus: "1.0" - RAM :
mem_limit: 512m - SWAP :
memswap_limit: 1g - Remarque : pics possibles selon volume fichiers.
⚠️ n8n
- Status : Created (pas lancé) ⚠️
- CPU :
cpus: "1.0" - RAM :
mem_limit: 1g - SWAP :
memswap_limit: 2g - Remarque : workflows + exec => pics.
✅ big-bear-filebrowser
- Status : Up ✅ (healthy)
- CPU :
cpus: "0.25" - RAM :
mem_limit: 256m - SWAP :
memswap_limit: 512m - Remarque : léger.
⚠️ big-bear-stirling-pdf
- Status : Exited ❌
- CPU :
cpus: "1.0" - RAM :
mem_limit: 1g - SWAP :
memswap_limit: 2g - Remarque : Java => peut monter.
✅ mariadb
- Status : Up ✅
- CPU :
cpus: "1.0" - RAM :
mem_limit: 1g - SWAP :
memswap_limit: 2g - Remarque : le plus important à limiter proprement.
⚠️ big-bear-ghost
- Status : Exited ❌
- CPU :
cpus: "0.5" - RAM :
mem_limit: 512m - SWAP :
memswap_limit: 1g - Remarque : OK, mais dépend trafic.
⚠️ big-bear-ghost-db (mysql:8)
- Status : Exited ❌
- CPU :
cpus: "1.0" - RAM :
mem_limit: 1g - SWAP :
memswap_limit: 2g - Remarque : si tu utilises déjà mariadb ailleurs, évite 2 DB.
✅ big-bear-erugo
- Status : Up ✅
- CPU :
cpus: "0.5" - RAM :
mem_limit: 512m - SWAP :
memswap_limit: 1g - Remarque : usage moyen.
✅ dozzle-agent
- Status : Up ✅
- CPU :
cpus: "0.25" - RAM :
mem_limit: 128m - SWAP :
memswap_limit: 256m - Remarque : léger.
✅ dozzle
- Status : Up ✅
- CPU :
cpus: "0.25" - RAM :
mem_limit: 128m - SWAP :
memswap_limit: 256m - Remarque : léger.
✅ portainer_agent
- Status : Up ✅
- CPU :
cpus: "0.25" - RAM :
mem_limit: 128m - SWAP :
memswap_limit: 256m
✅ portainer
- Status : Up ✅
- CPU :
cpus: "0.5" - RAM :
mem_limit: 256m - SWAP :
memswap_limit: 512m
✅ lagident
- Status : Up ✅
- CPU :
cpus: "0.25" - RAM :
mem_limit: 128m - SWAP :
memswap_limit: 256m
✅ big-bear-glances
- Status : Up ✅
- CPU :
cpus: "0.25" - RAM :
mem_limit: 256m - SWAP :
memswap_limit: 512m
✅ excalidraw
- Status : Up ✅ (healthy)
- CPU :
cpus: "0.25" - RAM :
mem_limit: 256m - SWAP :
memswap_limit: 512m
⚠️ big-bear-composetoolbox
- Status : Exited ❌
- CPU :
cpus: "0.25" - RAM :
mem_limit: 256m - SWAP :
memswap_limit: 512m
⚠️ big-bear-watchyourlan
- Status : Exited ❌
- CPU :
cpus: "0.25" - RAM :
mem_limit: 256m - SWAP :
memswap_limit: 512m - Remarque : s’arrête souvent si pas de privilèges réseau.
✅ memos
- Status : Up ✅
- CPU :
cpus: "0.25" - RAM :
mem_limit: 256m - SWAP :
memswap_limit: 512m
⚠️ ttydbridge
- Status : Exited ❌
- CPU :
cpus: "0.25" - RAM :
mem_limit: 128m - SWAP :
memswap_limit: 256m
✅ openspeedtest
- Status : Up ✅
- CPU :
cpus: "0.25" - RAM :
mem_limit: 128m - SWAP :
memswap_limit: 256m
⚠️ big-bear-brave
- Status : Exited ❌
- CPU :
cpus: "1.0" - RAM :
mem_limit: 1g - SWAP :
memswap_limit: 2g - Remarque : container navigateur = lourd.
⚠️ tailscale
- Status : Exited ❌
- CPU :
cpus: "0.25" - RAM :
mem_limit: 128m - SWAP :
memswap_limit: 256m - Remarque : souvent besoin
--cap-add=NET_ADMINou mode host.