Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Performance RAID instable

46 réponses
Avatar
Seb
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.

---1155178722-1172973178-1505744315=:30128
Content-Type: TEXT/PLAIN; FORMAT=flowed; CHARSET=ISO-8859-1
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.11.1709192101212.3710@af3358511.vc-37-187-30.rh>


Bonjour !


J'utilise Debian depuis une quinzaine d'années, sans problème de RAID
jusqu'à présent. Mon souci actuel est que deux machines qui font chacune
du RAID1 sur deux disques SSD ont des performances disque qui se dégradent
brutalement, sans raison apparente (rien trouvé dans syslog, notamment).
La vitesse du tableau passe, en gros, de 600 Mo/s à 0,5 Mo/s. La
différence est si nette qu'une mesure grossière avec 'dd' suffit à la
mettre en évidence (dd if=/dev/zero of=dd.big bs=1k count=10000).

* La machine à la maison en a été la première victime, dès son
installation sous Debian 8 en janvier 2017 (Debian 8 téléchargée en
janvier aussi). Le PC était neuf, ses disques aussi. (C'est toujours la
version stable de Debian que j'utilise.)

* La machine de bureau, qui donnait entière satisfaction depuis plusieurs
années, a commencé à montrer les mêmes symptômes juste après son passage de
Debian 8 à Debian 9 en juillet 2017. Avant la réinstallation (ce n'était pas
une migration de 8 à 9 ne nécessitant qu'un reboot), la Debian 8 n'était que
partiellement à jour car j'utilise apt-get upgrade mais jamais dist-upgrade. La
version de Debian 8 sur la machine à la maison en janvier 2017 était donc en un
sens plus récente que la version de Debian 8 sur la machine de bureau en
juillet 2017.

* Par ailleurs, j'ai passé deux autres machines en Debian 9 sans rencontrer le
problème, mais elles font toutes deux du RAID6 sur des disques à plateaux.

* Les quatre machines utilisent exclusivement JFS.

Je souligne que même quand les performances deviennent abyssales, les tableaux
RAID fonctionnent. On peut par exemple copier un fichier ('cp').

Redémarrer la machine restaure la performance normale. La performance reste
alors stable pendant plusieurs heures. Puis elle s'écroule, ce qui peut
arriver même quand il n'y a personne devant l'écran, en pleine nuit.

Je joins ci-dessous le résultat des commandes suivantes, lancées sur la machine
de bureau (RAID1 sur sda+sdb):
smartctl -t short /dev/sda
smartctl -l selftest /dev/sda
smartctl -t short /dev/sdb
smartctl -l selftest /dev/sdb

Est-ce que ces comportements vous évoquent des souvenirs, ou des pistes à
creuser ? Comment pourrais-je extraire du système des informations sur
l'origine du problème ? Voyez-vous quels changements intervenus dans la
Debian 8, après la release initiale, pourraient causer ce comportement ?


Merci d'avance pour votre aide !
Seb.

PS: si quelqu'un sait comment régler le p'tit problème suivant, ça me sera
utile aussi: jusqu'à la Debian 8 incluse, quand je faisais un copier-coller
d'une ligne entière depuis un xterm vers un xterm exécutant zsh, la commande
s'exécutait dès l'étape coller. Depuis le passage à Debian 9, la commande
collée apparaît en inverse vidéo, un retour à la ligne a bien été inséré (le
curseur est sur une nouvelle ligne), mais cela ne provoque pas l'exécution de
la commande, il faut encore que j'appuie sur Entrée. J'aimerais bien revenir à
la situation précédente (pas besoin d'appuyer sur Entrée) mais je ne sais pas
ce qu'il faut régler...

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

#smartctl -l selftest /dev/sda
smartctl 6.6 2016-05-31 r4324 [i686-linux-4.9.0-3-686-pae] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours)
LBA_of_first_error
# 1 Short offline Completed without error 00% 17786 -
# 2 Short offline Completed without error 00% 15666 -

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

#smartctl -l selftest /dev/sdb
smartctl 6.6 2016-05-31 r4324 [i686-linux-4.9.0-3-686-pae] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours)
LBA_of_first_error
# 1 Short offline Completed without error 00% 16593 -

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

> cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4]
[raid10]
md3 : active raid1 sdb3[1] sda3[0]
951464640 blocks super 1.2 [2/2] [UU]
bitmap: 2/8 pages [8KB], 65536KB chunk

md2 : active raid1 sda1[0] sdb1[1]
20955136 blocks super 1.2 [2/2] [UU]

unused devices: <none>
---1155178722-1172973178-1505744315=:30128--

6 réponses

1 2 3 4 5
Avatar
Seb
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
---1155178722-1169079127-1508421996=:13959
Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8BIT
Bonjour,
Merci beaucoup pour l'aide que vous m'avez apportée dans le diagnostic du
problème. C'était bien un souci de gestion de la mémoire lié au PAE.
Sur la machine à la maison j'ai limité la RAM à 4 Go et depuis, la
performance des disques est stable (980 Mo/s de moyenne).
Sur la machine au bureau, 4 Go de RAM est trop juste pour InDesign dans
une VirtualBox alors j'ai réinstallé en amd64.
Seb.
---1155178722-1169079127-1508421996=:13959--
Avatar
Thierry Bugier
Bonjour
Le jeudi 19 octobre 2017 à 16:06 +0200, Seb a écrit :
Bonjour,
Merci beaucoup pour l'aide que vous m'avez apportée dans le
diagnostic du
problème. C'était bien un souci de gestion de la mémoire lié au PAE.
Sur la machine à la maison j'ai limité la RAM à 4 Go et depuis, la
performance des disques est stable (980 Mo/s de moyenne).
Sur la machine au bureau, 4 Go de RAM est trop juste pour InDesign
dans
une VirtualBox alors j'ai réinstallé en amd64.
Seb.

Il y a un détail qui m'interpelle. Pourquoi la gestion mémoire avec PAE
n'impacte (apparement) que le système RAID logiciel du noyau ?
Avatar
Pascal Hambourg
Le 19/10/2017 à 16:06, Seb a écrit :
Merci beaucoup pour l'aide que vous m'avez apportée dans le diagnostic
du problème. C'était bien un souci de gestion de la mémoire lié au PAE.
Sur la machine à la maison j'ai limité la RAM à 4 Go et depuis, la
performance des disques est stable (980 Mo/s de moyenne).

Pourquoi 4 Go ? C'est un peu arbitraire.
As-tu essayé d'autres valeurs entre 4 et 8 Go ?
Avatar
Seb
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
---1155178722-1319115068-1508483121=:2408
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1; FORMAT=flowed
Content-Transfer-Encoding: 8BIT
Content-ID:
Bonjour,
Il y a un détail qui m'interpelle. Pourquoi la gestion mémoire avec PAE
n'impacte (apparement) que le système RAID logiciel du noyau ?

Chez moi seuls les tableaux RAID étaient affectés mais... je n'utilise que
du RAID. D'autres ont signalé le même problème sur des disques isolés et
même avec un clef USB. C'est donc seulement ma présentation qui donnait
cet angle RAID (je pensais que le problème pouvait provenir de la gestion
du RAID, idée plus immédiate que la gestion de la RAM).
Pourquoi 4 Go ? C'est un peu arbitraire.
As-tu essayé d'autres valeurs entre 4 et 8 Go ?

Il me semble que le PAE permet au noyau d'utiliser la RAM au-delà de 4 Go:
https://fr.wikipedia.org/wiki/Extension_d%27adresse_physique
Je me suis dit que le noyau devait avoir des fonctions pour des RAM d'au
plus 4 Go, et des astuces en plus pour les RAM au-delà, et que ce sont ces
dernières qui sont actuellement buguées. Comme « ça marche », l'hypothèse
a l'air correcte. Mais effectivement, non, je n'ai pas tenté 6 Go. Je ne
vois pas de raison pour que ça marche.
Seb.
---1155178722-1319115068-1508483121=:2408--
Avatar
Pascal Hambourg
Le 20/10/2017 à 09:10, Seb a écrit :
Pourquoi 4 Go ? C'est un peu arbitraire.
As-tu essayé d'autres valeurs entre 4 et 8 Go ?

Il me semble que le PAE permet au noyau d'utiliser la RAM au-delà de 4 Go:

Cette formulation est ambiguë.
PAE étend l'espace d'adressage en mémoire physique des processeurs 32
bits de 4 Gio à 64 Gio. Mais cet espace ne contient pas que la RAM
système. Il contient aussi les plages d'adresses des mémoires non
volatiles du firmware de la carte mère et des périphériques internes
comme la carte graphique, de la mémoire des mêmes périphériques
permettant au système de transférer des données avec eux...
Le pseudo-fichier /proc/iomem recense les plages utilisées de l'espace
mémoire physique.
Un système d'exploitation 32 bits sans PAE n'étant pas capable
d'adresser au-delà de 4 Gio, toutes les plages autres que la RAM système
doivent être accessibles à des adresses en-deça de cette limite. La
plage d'adresse réservée aux périphériques est parfois appelée "PCI
hole". Cela implique que la quantité de RAM système effectivement
accessible à des adresses en-deça de 4 Gio sera nécessairement
inférieure à 4 Gio, typiquement de l'ordre de 3,5 Go. Il ne faut pas
confondre cette diminution avec la partie de la RAM système qui est
réservée au GPU intégré.
La partie de la RAM système qui ne peut être adressée dans la plage
en-deçà de 4 Gio est accessible à des adresses au-delà de 4 Gio donc
uniquement par un système 32 bits avec PAE ou 64 bits.
Si par "au-delà de 4 Gio" tu voulais parler des adresses, alors oui.
Mais si tu voulais parler de la quantité, alors non, la limite est plus
basse notamment à cause du "PCI hole". Utiliser 4 Gio de RAM avec un
système 32 bits requiert PAE.
Je me suis dit que le noyau devait avoir des fonctions pour des RAM d'au
plus 4 Go, et des astuces en plus pour les RAM au-delà, et que ce sont
ces dernières qui sont actuellement buguées. Comme « ça marche »,
l'hypothèse a l'air correcte. Mais effectivement, non, je n'ai pas tenté
6 Go. Je ne vois pas de raison pour que ça marche.

PAE n'est pas juste une fonction qu'on active uniquement pour accéder
aux adresses mémoire au-delà de 4 Gio. C'est une réorganisation
permanente de la façon d'accéder à la mémoire physique. Avec un noyau
PAE, les mécanismes de PAE sont à l'oeuvre quelle que soit la quantité
de mémoire utilisable ou utilisée.
Bref, tout ça pour dire que la limite de 4 Gio de RAM que tu as fixée
est arbitraire du point de vue de PAE car elle est déjà supérieure à la
quantité utilisable sans PAE.
Par contre je me rappelle un commentaire de Linus Torvalds il y a déjà
fort longtemps disant en substance qu'au-delà de 8 Gio de RAM, il valait
mieux utiliser un noyau 64 bits car la gestion d'une telle quantité de
mémoire par un noyau 32 bits avec PAE risquait d'être moins performante.
Il ne faut pas oublier que même avec PAE l'espace d'adressage en mémoire
virtuelle reste limité à 4 Gio, et l'espace réservé au noyau dans
celui-ci à 1 Gio (3 Gio pour le processus).
Avatar
Seb
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
---1155178722-1324030676-1508574816=:1346
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1; FORMAT=flowed
Content-Transfer-Encoding: 8BIT
Content-ID:
Merci Pascal pour les explications !
Pascal Hambourg (Fri, 20 Oct 2017):
Le 20/10/2017 à 09:10, Seb a écrit :
Pourquoi 4 Go ? C'est un peu arbitraire.
As-tu essayé d'autres valeurs entre 4 et 8 Go ?

Il me semble que le PAE permet au noyau d'utiliser la RAM au-delà de 4 Go:

Cette formulation est ambiguë.
PAE étend l'espace d'adressage en mémoire physique des processeurs 32 bits de
4 Gio à 64 Gio. Mais cet espace ne contient pas que la RAM système. Il
contient aussi les plages d'adresses des mémoires non volatiles du firmware
de la carte mère et des périphériques internes comme la carte graphique, de
la mémoire des mêmes périphériques permettant au système de transférer des
données avec eux...
Le pseudo-fichier /proc/iomem recense les plages utilisées de l'espace
mémoire physique.
Un système d'exploitation 32 bits sans PAE n'étant pas capable d'adresser
au-delà de 4 Gio, toutes les plages autres que la RAM système doivent être
accessibles à des adresses en-deça de cette limite. La plage d'adresse
réservée aux périphériques est parfois appelée "PCI hole". Cela implique que
la quantité de RAM système effectivement accessible à des adresses en-deça de
4 Gio sera nécessairement inférieure à 4 Gio, typiquement de l'ordre de 3,5
Go. Il ne faut pas confondre cette diminution avec la partie de la RAM
système qui est réservée au GPU intégré.
La partie de la RAM système qui ne peut être adressée dans la plage en-deçà
de 4 Gio est accessible à des adresses au-delà de 4 Gio donc uniquement par
un système 32 bits avec PAE ou 64 bits.
Si par "au-delà de 4 Gio" tu voulais parler des adresses, alors oui. Mais si
tu voulais parler de la quantité, alors non, la limite est plus basse
notamment à cause du "PCI hole". Utiliser 4 Gio de RAM avec un système 32
bits requiert PAE.
Je me suis dit que le noyau devait avoir des fonctions pour des RAM d'au
plus 4 Go, et des astuces en plus pour les RAM au-delà, et que ce sont ces
dernières qui sont actuellement buguées. Comme « ça marche », l'hypothèse a
l'air correcte. Mais effectivement, non, je n'ai pas tenté 6 Go. Je ne vois
pas de raison pour que ça marche.

PAE n'est pas juste une fonction qu'on active uniquement pour accéder aux
adresses mémoire au-delà de 4 Gio. C'est une réorganisation permanente de la
façon d'accéder à la mémoire physique. Avec un noyau PAE, les mécanismes de
PAE sont à l'oeuvre quelle que soit la quantité de mémoire utilisable ou
utilisée.
Bref, tout ça pour dire que la limite de 4 Gio de RAM que tu as fixée est
arbitraire du point de vue de PAE car elle est déjà supérieure à la quantité
utilisable sans PAE.
Par contre je me rappelle un commentaire de Linus Torvalds il y a déjà fort
longtemps disant en substance qu'au-delà de 8 Gio de RAM, il valait mieux
utiliser un noyau 64 bits car la gestion d'une telle quantité de mémoire par
un noyau 32 bits avec PAE risquait d'être moins performante. Il ne faut pas
oublier que même avec PAE l'espace d'adressage en mémoire virtuelle reste
limité à 4 Gio, et l'espace réservé au noyau dans celui-ci à 1 Gio (3 Gio
pour le processus).

---1155178722-1324030676-1508574816=:1346--
1 2 3 4 5