Je n'ai pas eu beaucoup de chance en recherchant la source du problème, si ce "problème" est simplement une limitation de LXC ou de zfs, ou si ce problème est spécifique à Ubuntu.
Le problème est tout simplement que apt-get
est très lent lorsqu'il est exécuté dans un conteneur.
apt-get
s'interrompt pendant environ 30 secondes lors de la lecture des listes de paquetages (après avoir exécuté apt-get update
par exemple)
Reading package lists... 99%
Il se bloque également lors de l'installation d'un nouveau logiciel. Installer strace
par exemple, il se bloque ici:
Setting up strace (4.5.20-2.3ubuntu1) ...
J'utilise la construction quotidienne de lxc avec zfs backing store.
La solution d'OP supprimée de la question:
J'ai encore creusé et j'ai trouvé une solution avec l'aide d'un collègue.
D'abord, j'ai utilisé
strace
pour savoir où elle était suspendue:strace apt-get update
Et remarqué qu'il était accroché
msync(0x7f02a57b1000, 37879664, MS_SYNC ...
La recherche a suggéré que cela était lié aux E/S du disque.
J'ai donc installé et exécuté
iostat
:Sudo apt-get install sysstat Sudo iostat -x 1
Le disque util était à environ 90%. Ceci a confirmé le goulot d'étranglement des E/S du disque.
Mon collègue m'a suggéré d'essayer de désactiver la synchronisation synchrone des fichiers pour ZFS:
zfs set sync=disabled pool/fs
Et cela a résolu mes problèmes!
Qu'il s'agisse ou non d'un bug ou d'une fonctionnalité est encore en débat, je vais donc laisser cette question sans réponse pendant quelques jours.