Je viens jetter mon désaroi ici car j'ai un peu du mal à situer l'origine de mon mal et éventuellement comment le corriger. Je vous explique. Je suis en train de me monter un serveur auto-hébergé un peu particulier. En effet, c'est la même machine qui me sert (le soir en particulier) de PC de bureau (mail/rss/dev perso/musique/vidéo, j'en passe et des meilleurs).
Au début j'ai fait ça salement et ça allait. Mais progressivement je me suis dit que j'allais essayé de faire bien les choses (surtout depuis que j'ai pris la décision de m'installer un pod diaspora (ruby), migrer @home mon agrégateur de flux (leeed, php) et faire cohabiter ça avec mon blog (script perso, python). Après en avoir discuté avec un ami, j'ai tenté de me configurer différents containers LXC :
- un container "blog"
- un container "php"
- un container "fossils" (pour ma forge perso)
- un container "torrents" (le pire, c'est que c'est que du légal... j'ai pris l'habitude de seeder depuis longtemps des distro et surtout les fichiers de Scenery et Aircraft liés à FlightGear)
- reste sur le "host" mon environnement graphique (awesome), hiawatha qui me sert d'aiguillage vers les bons container et mpd
Le souci c'est que je ne suis pas sûr à 100% de pourquoi ça pète. Le symptôme est simple : je suis sur mon environnement graphique en train de faire tout et n'importe quoi et à un moment donné je vais lancer une nouvelle appli (firefox, hubic, gimp...) et là X se kill et retour à l'écran de login. Cependant, tout ce qui tourne dans des tmux n'est pas killé (enfin, normal au fond) et les containers tournent toujours (normal aussi je pense)
Après une petite analyse je soupçonne que le problème vienne de mon container transmission. En effet, lorsque je le coupe le problème n'apparaît plus (mais comme il était très aléatoire, c'est compliqué d'être sûr). J'ai également remarqué que bien souvent, lié à ce crash, apparaissait des lignes du type « Too many files open »
J'ai également remarqué, au moment du dernier crash, les lignes suivantes dans le /var/log/daemon.log (j'ai ajouté le paquet permettant de continuer à avoir les anciens logs, j'ai du mal avec journalctl) :
Code : Tout sélectionner
Jan 3 20:37:03 rapyuta systemd[1]: Failed to set memory.limit_in_bytes on : Invalid argument
Jan 3 20:37:03 rapyuta systemd[1]: Failed to reset devices.list on /system.slice: Invalid argument
Jan 3 20:37:03 rapyuta systemd[1]: Failed to reset devices.list on /user.slice: Invalid argument
Il est question souvent de modifier le fichier /etc/security/limits.conf pour augmenter le nombre de fichier ouvert par le système. Est-ce une opération courrante à faire quand on a des container ? Et si oui je modifie bien sûr le fichier du host, pas des containers ?
Pour info, voici le résultat de quelques commandes lié à ça à l'heure actuelle (donc pas de crash à l'horizon...) sur le host (rapyuta) :
Code : Tout sélectionner
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) 29258
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 29258
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
$ sudo sysctl fs.file-nr
fs.file-nr = 2720 0 372149
$ sudo sysctl fs.file-max
fs.file-max = 372149
Bref, merci beaucoup d'avance et très bonne année à tous !
PS: au passage, je vois également dans les logs revenir très fréquement la ligne « kvm: disabled by bios »... KVM est important pour faire fonctionner LXC ? La doc est pas très clair à ce sujet.