J'ai passé ce samedi (et le week-end dernier) à aider @Kysofer à monter un serveur de stockage pour son entreprise et là nous nous sommes rendus compte que tout ramait, mais genre vraiment.
Je vous retrace l'enquête ? Vous êtes chô mes lapins ? Aller c'est parti :D
D'abord et pour vous illustrer notre problème, il a fallu quelque chose comme 30 sec pour installer htop après l'avoir téléchargé depuis une connexion fibrée sur une machine quadricore, 4Go RAM / SATA-III... Bref, le sentez-vous aussi ce problème qui va être bien pourri à identifier.
Étape 1 - Vérification de l'état du CPU
Tout semble normal, htop
indique une charge globale oscillant entre 2% et 5% pour 90 Mo de RAM consommée. Nous faisons également un tour dans journalctl
pour nous assurer qu'il n'y ait pas quelque chose de suspicieux d'indiqué.
=> Réponse : NADA
Étape 2 - Vérification des processus s'exécutant en tâche de fond
Un petit coup de sudo service --status--all
et sudo systemctrl list-units
pour regarder ce qui tourne en tâche de fond et rien non plus. D'ailleurs cela corrobore le fait que le load average
s'affiche aux alentours de 2,5 pour 16 processus créés, 1 running et 4 threads physiques de dispo.
Par contre, nous remarquons que l'OS swappe, alors que la consommation mémoire n'excède pas 100 Mo sur 4 000 Mo... Étonnant non ?
Étape 3 - Réduction de la swappiness
Au vu du résultat précédent, nous allons faire un petit tour dans /etc/sysctl.conf
pour y ajouter la ligne vm.swappiness = 1
comme je l'explique dans ce post
Pour vous le préciser et parce que beaucoup de lectures seront faites, les RAID1 sont montés en noatime
et nodiratime
.
=> Bref un petit reboot et, et ? Et toujours rien...
Étape 4 - Identification de la charge du disque
Nous installons iotop
afin de déterminer si un processus écrit en permanence sur le disque (car @Kysofer me disait qu'il entendait les disques crépiter). Et là, premier indice : une coquine de charge résiduelle se maintient à ~3Mo/sec en écriture. WTF oÔ ?
Un petit coup d’œil sur la grille des process et nous identifions un potentiel coupable : ext4lazyinit. Sur le coup, nous nous disons "mais c'est quoi ce truc là ?"
Explication
Lorsque vous initialisez un disque dur pour la première fois, et dans notre cas il s'agissait de 6 partitions réparties comme suit :
- Deux disques de 320 Go notés sda et sdb
- Deux disques de 10 To notés sdc et sdd
Les partitions étaient les suivantes :
- 10 Go d'attribués pour l'OS sur sda.
- 10 Go d'attribués pour la SWAP sur sdb.
- Un RAID1 de 310 Go, noté md0, monté sur l'espace restant partagé entre sda et sdb (ce sera notre /home).
- Un RAID1 de 10 To, noté md1, et monté sur les disques sdc et sdd.
Eh bien l'OS ne défini pas tous les secteurs à zéro, or il semble que ce soit une nécessité pour initialiser la table EXT4 sur les disques vierges... Ce process étant bloquant pour l'accès aux ressources disques, il se lance en priorité basse et tourne en tâche de fond. Lorsque l'initialisation sera terminée, tout sera rentré dans l'ordre... Notre problème ici est que nous avons 26,4 To à initialiser avec des zéros et le bouzin se limite à 3 Mo /sec... #Subarashi #Sugoi
Notre solution : prendre notre mal en patience...
Franchement, on dirait une manipulation à la Microsoft... Un peu comme si cette société était devenue l'une des plus grosses contributrices au noyau Linux depuis quelques temps. Oh wait...
Je viens de découvrir que le cache du disque dur n'est pas actif par défaut sous Mint et que la fonction d'arrêt du disque en cas d'inactivité ne l'est pas non plus.
Pour activer tout cela il existe l'utilitaire Disques qui fait le café. Voici la manip :
1) Aller dans Menu > Accessoires > Disques
2) Sélectionnez votre disque (colonne de gauche)
3) Ouvrir les paramètres du disque sélectionné (raccourcis CTRL + E)
4) Activez et désactivez ce qui vous plaît dans chaque onglet (attention à ce que vous faites)
Et voilà (^_^)
Toshiba, Seagate et Western Digital pris la main dans le pot de confiture. En substance il y a trois technologies d'enregistrement sur les plateaux en cuivre des disques durs, du plus lent au plus rapide nous avons : le SMR, le PMR et le CMR.
Le SMR a l'avantage de permettre de stocker plus sur un même plateau en cuivre (donc réduire les coûts de production en augmentant les marges) mais est plus lent (jusqu'à un facteur 3 apparemment) pour l'enregistrement que le CMR qui est le standard sur le marché.
Donc revendre des disques en tant que CMR avec du SMR dernière à des gens qui souhaitent faire autre chose que du stockage froid (archivage)... C'est d'une part mentir sur les caractéristiques techniques de son produit (ce qui est illégal) et c'est d'autre part ce que l'on appelle purement et simplement une arnaque.
Du coup comme ces trois entreprises se partagent 95% du marché mondiale il est quasiment impossible de les boycotter... #Génial
@Animal : les Western Digital sont comment tu disais ?