Forum Linux.général Utiliser directement la SWAP

Posté par  (site web personnel) .
Étiquettes : aucune
0
15
jan.
2008
Bonjour,

je dois utiliser rsync pour migrer 150 millions de fichiers (4To de données)

mon problème c'est que rsync créer un index avec 100bit par fichier

ce qui me fait un besoin de 15Go de RAM.

je peux créer un gros SWAP mais mon problème c'est que pendant l'utilisation rsync plus aucune application ne pourrat utiliser de RAM...

connaitriez-vous une commande genre "exec -option rsync blabla trucmuche"

qui permettrais de lancer rsync directement en SWAP pour laisser la RAM à mes daemons comme samba???

Merci d'avance...

Bye
  • # ulimit ?

    Posté par  . Évalué à 2.

    peut etre qu'avec ulimit et les options -m ou -d, tu peux approximer ce comportement. De toute façon, il n'est pas possible de lancer un processus completement en SWAP. Si le processus tourne, il y aura forcement une partie en RAM.
    Ce que je ne sais pas, c'est si ulimit permet de differencier la RAM et la SWAP, ou si on parle juste de "memoire".
    • [^] # Re: ulimit ?

      Posté par  . Évalué à 6.

      Dans la man page, on trouve :

      ulimit [-SHacdefilmnpqrstuvx [limit]]
      -a All current limits are reported
      -c The maximum size of core files created
      -d The maximum size of a process's data segment
      -e The maximum scheduling priority ('nice')
      -f The maximum size of files created by the shell
      -i The maximum number of pending signals
      -l The maximum size that may be locked into memory
      -m The maximum resident set size
      -n The maximum number of open file descriptors (most systems do not allow this value to be set)
      -p The pipe size in 512-byte blocks (this may not be set)
      -q The maximum number of bytes in POSIX message queues
      -r The maximum rt priority
      -s The maximum stack size
      -t The maximum amount of cpu time in seconds
      -u The maximum number of processes available to a single user
      -v The maximum amount of virtual memory available to the shell
      -x The maximum number of file locks


      Donc, ça doit être possible. Reste à voir si ça marche.
  • # Découpage

    Posté par  (site web personnel) . Évalué à 8.

    Découpe ton rsync en sous répertoires et lance le tout dans une boucle shell, tu économisera d'autant la ram. C'est simple et rapide.

    Sinon, tu peux aussi tester d'autres solutions que rsync, comme csync2.
  • # Les programmes fonctionnent en RAM

    Posté par  . Évalué à 3.

    Un programme ne peut pas fonctionner depuis la SWAP, quand il a besoin de s'exécuter il faut que l'OS mette dans la RAM toutes les pages que le programme veut lire/écrire. Donc même s'il était possible de placer un programme dans la SWAP à son démarrage (ce qui était plus ou moins l'intérêt du sticky bit sur les vieux unix) dès qu'il faudrait l'exécuter il faudrait le redéplacer vers la RAM.

    Et avec un programme qui ne tient pas entièrement en RAM (comme ton cas) c'est particulièrement problématique car le système passe son temps à déplacer de la RAM à la SWAP et réciproquement suivant les segments de mémoire que le programme utilise.

    Comme il a été dit plus haut tu devrait faire ton rsync en plusieurs fois. Si tu n'a pas de liens physiques à préserver c'est jouable.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.