cAdvisor ničí CPU Raspberry Pi – príčiny a alternatívy
cAdvisor je bežne zahrnutý v homelab monitorovacích stackoch spolu s Prometheusom a Grafanou. Zbiera metriky kontajnerov (CPU, RAM, sieť) a posiela ich do Prometheusu. Na desktope alebo serveri funguje dobre. Na Raspberry Pi s 15+ bežiacimi kontajnermi môže byť katastrofálny.
Problém
Záťaž môjho RPi 4 vyskočila z 1.0 na 7.0+ po pridaní cAdvisora. Docker stats ukázali:
cadvisor 115.83% 373MiB / 384MiB
Viac ako 100% využitie CPU a takmer na pamäťovom limite. Logy ukazovali operácie skenovania filesystémov trvajúce 56 minút až 1 hodinu:
fs: disk usage and inodes count on following dirs took 56m4s
fs: disk usage and inodes count on following dirs took 1h1m25s
Prečo sa to deje
cAdvisor predvolene skenuje všetky pripojené filesystémy pre každý kontajner, vrátane Docker overlay filesystémov. Na systéme s mnohými kontajnermi to vytvára obrovské I/O a záťaž CPU. ARM architektúra Raspberry Pi to ešte zhoršuje.
Čiastočné riešenie – agresívne flagy
Môžete znížiť vplyv cAdvisora s týmito flagmi:
cadvisor:
command:
- '--docker_only=true'
- '--housekeeping_interval=60s'
- '--store_container_labels=false'
- '--disable_metrics=advtcp,cpu,cpuLoad,disk,diskIO,hugetlb,memory_numa,network,percpu,referenced_memory,resctrl,sched,tcp,udp'
To pomáha, ale na zaťaženom RPi môže stále spôsobovať problémy.
Lepšia alternatíva – preskočte cAdvisor
Pre väčšinu domácich používateľov nie sú metriky CPU a RAM na kontajner kritické. Dôležité je:
- Je služba hore alebo dole?
- Je celkový systém zdravý (CPU, RAM, disk)?
Node Exporter už pokrýva zdravie systému perfektne. Pre monitorovanie dostupnosti služieb môžu Home Assistant rest sensory pollovat HTTP endpoint každej služby a upozorniť vás, ak niečo padne.
Výsledok po odstránení cAdvisora
Po odstránení cAdvisora z môjho stacku:
- Záťaž: 7.0 → 1.0
- Voľná RAM: zvýšila sa o ~380MB
- Všetky ostatné služby sa stali responzívnejšími
Odporúčanie
Na Raspberry Pi 4 s viac ako 10 bežiacimi kontajnermi:
- Preskočte cAdvisor
- Používajte Node Exporter pre systémové metriky
- Používajte Home Assistant alebo ľahký nástroj pre monitorovanie dostupnosti služieb