Ce jour, un docker qui prend 100% de cpu sur un front web, c'est très probablement lié aux logs …

Purger les logs de traefik avec la commande truncate :

truncate -s 0 $(docker inspect --format='{{.LogPath}}' traefik) %%%

Ca semble régler le problème. Il faudrait voir tout ce qui est loggué, car il y'a surement beaucoup d'inutile ....

Une solution de mitigation, est d"activer une rotation de logs avec docker :

Pour cela, il suffit de modifier le /etc/docker/daemon.json comme suit,

{
   "live-restore": true,
   "log-driver": "json-file",
   "log-opts": {"mode": "non-blocking", "max-file": "7", "max-size": "2G"}
}

Dans le cas présent, la rotation a lieu des que le fichier de log atteint 2 gigas, et seuls les 7 derniers fichiers seront gardé. Ce qui veut dire que pour nos services, chacun à un max de log possible de 14go.

Cette valeur arbitraire est ici assez importante, mais cela est du au fait que seul traefik est présent en container sur ce serveur.

Dans un cas de production, il vaudrait mieux avoir une valeur de base faible, et des options locales au container pour ceux nécessitant plus.

Cela peut se faire au niveau de l'orchestrateur (kubenertes, mesos, ...)