Équivalent de `nice` pour le système de fichiers IO?

11

Lorsque j'exécute un rsynctravail de sauvegarde qui implique la copie de fichiers volumineux, la machine exécutant la sauvegarde (à la fois les ordinateurs de bureau Mac et les serveurs Linux) s'arrête et la moyenne de charge passe par le toit.

J'ai essayé:

  • niceing le rsyncprocessus (n'aide pas - le goulot d'étranglement est le disque)
  • Sous Linux, reniceing a kjournald(aide, mais semble être un hack et ne fonctionne pas sur Mac)
  • Utilisation du --bwlimit rsyncdrapeau (aide, mais cela signifie que tous les transferts sont lents - même lorsqu'ils n'ont pas besoin de l'être)

Alors, est-ce que je peux " nice" rsyncutiliser les IO pour que les machines soient utilisables pendant que la sauvegarde est en cours?

PS: Je suis conscient des dangers du rsyncMac… Mais j'ai cependant utilisé BackupBouncer pour vérifier mes sauvegardes, et elles semblent OK.

David Wolever
la source

Réponses:

7

Il semble que l' setpriorityAPI sur Mac OS X soit censée pouvoir modifier la planification des E / S (voir http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man2/setpriority.2.html ) . Je n'ai pas de MacOS à portée de main, donc je ne peux pas tester qui nicemodifie réellement la priorité IO.

Côté Linux, ionicec'est ce que vous recherchez.

Evan Anderson
la source
1
Ah merci. Voici ce que setprioritydit la page de manuel: "Lorsque vous définissez un thread en arrière-plan, la priorité de planification est définie sur la valeur la plus basse, les disques et les E / S réseau sont limités." - ce qui semble indiquer que les E / S disque / réseau ne sont limitées que lorsque quelque chose est réduit à 20 ("l'état d'arrière-plan").
David Wolever
2
Certains tests rapides semblent également le confirmer - lorsque le script de sauvegarde n'était que de 10 (c'est-à-dire nice backup), j'ai remarqué un ralentissement ... Mais quand il est réduit à 20 (c'est-à-dire nice -n 20 backup), je ne remarque aucun ralentissement.
David Wolever
(et par "remarqué un ralentissement", je veux dire "remarqué que les programmes interactifs exécutés sur l'ordinateur ne répondaient pas aussi rapidement qu'ils le font normalement")
David Wolever
1
C'est un peu décevant que vous n'obteniez que la limitation à une priorité de 20, cependant.
Evan Anderson
+1, belle réponse. Je me suis toujours interrogé sur le twiddling IO
Avery Payne du
4

Sous linux, vous pouvez utiliser ionice http://linux.die.net/man/1/ionice

Rory
la source
Exemple d'utilisation:ionice -c idle rsync ...args...
VasyaNovikov