J'ai un serveur domestique sans tête basé sur Debian Jessie, 24 heures sur 24, 7 jours sur 7, qui dispose d'un grand SSD de 1 To pour le système d'exploitation et de tous mes fichiers fréquemment consultés. Ce même système dispose de 4 disques durs plus grands dans une matrice SnapRAID. Ceux-ci sont principalement destinés à l'archivage de Blu-ray rarement consultés et veulent que ces lecteurs restent en veille à moins que je ne les lise ou n'écrive réellement. Ils sont tous formatés en ext4 et montés avec noatime et nodiratime activés.
Ainsi, même si aucun processus ou programme ne devrait accéder régulièrement à ces disques de manière directe, les disques durs sortent constamment du mode veille. Cela semble être lié aux programmes graphiques qui fournissent un navigateur de fichiers gui, même quelque chose comme Chromium. Si je ne navigue même pas dans ces lecteurs, je pense que ces processus en obtenant simplement une liste des lecteurs disponibles font tourner les disques durs. Un peu comme le fait blkid. Le problème est qu'il est difficile d'en déterminer la cause première, car aucun de ces processus ne lit ou n'écrit réellement le système de fichiers sur ces lecteurs, donc aucun fichier ne change ou n'est touché. Existe-t-il une sorte de cache que je peux remplir ou un tampon pour empêcher ces programmes de faire tourner le disque dur simplement en obtenant une liste des disques disponibles ? Honnêtement, cela me rend fou, car je ne trouve pas de moyen fiable de maintenir ces disques en marche même s'il n'y a pas d'accès direct au système de fichiers.
MISE À JOUR :Grâce à la réponse de Stephen, j'ai pu tracer l'activité du disque sur gvfs et udisques . Il est vraiment dommage que ces processus insistent pour réveiller les disques en veille alors qu'ils ne sont pas réellement consultés pour effectuer de véritables E / S avec le système de fichiers. Jusqu'à présent, je les ai juste désinstallés, sachant que cela supprimera certaines fonctionnalités de PCManFM et autres.
Réponse acceptée :
Vous pouvez utiliser blktrace
(disponible dans Debian) pour tracer toute l'activité sur un appareil donné ; par exemple
sudo blktrace -d /dev/sda -o - | blkparse -i -
ou simplement
sudo btrace /dev/sda
affichera toute l'activité sur /dev/sda
. La sortie ressemble à
8,0 3 51 135.424002054 16857 D WM 167775248 + 8 [kworker/u16:0]
8,0 3 52 135.424011323 16857 I WM 209718336 + 8 [kworker/u16:0]
8,0 3 0 135.424011659 0 m N cfq496A / insert_request
La cinquième colonne est l'identifiant du processus, et la dernière donne le nom du processus lorsqu'il y en a un.
Vous pouvez également stocker des traces pour une analyse ultérieure ; blktrace
comprend un certain nombre d'outils d'analyse tels que le blkparse
mentionné ci-dessus et btt
. blktrace
est un outil de très bas niveau, il n'est donc peut-être pas si facile de comprendre ce qui a causé l'activité en premier lieu, mais avec l'aide de la documentation incluse (voir /usr/share/doc/blktrace
si vous avez installé le paquet Debian) et le blktrace
papier, il devrait être possible de comprendre ce qui cause les spin-ups.