Journal accelération de linux !

Posté par  .
Étiquettes : aucune
0
6
oct.
2003
Voici ce que je propose :

/etc est constitué de millier de fichiers qui sont accédé pseudo aléatoirement .

/etc est sur un disque dur dont le temps d'access est d'environ 5 ms !

---> je perds donc n fois 5 ms !

mon idée :

en début de session
init 3 et 5 -->
dd if=/dev/hda8 (/etc) /dev/ram0

en fin de session
init 6 --> dd if/dev/ram0 /dev/hda8 (/etc)

au lancement, je copie /etc en un seul bloc (dd) à 40 Mo/s dans la ram, puis ma distrib tourne avec /etc en ram (comme il y a plein de petits fichier éparpillé je gagne n fois 5ms (temps d'acces) , puis à la fin de la session je copie d'un bloc dans /etc !

Des commentaires ?
Des idees ?
Des fous pour essayer ?

guillaume
  • # Re: accelération de linux !

    Posté par  . Évalué à 1.

    Et en cas de coupure électrique il se passe quoi ?

    Remarque sur un portable ça me tenterais bien ce genre d'utilisation.
    • [^] # Re: accelération de linux !

      Posté par  . Évalué à 2.

      Faudrait voir en rajoutant un script qui fasse la sauvegarde toutes les X min.

      Mais d'un autre cote est ce vraiment efficace : les fichiers /etc sont surtout utiliser au demarage, et je pense que tu perd plus de temps a recopier du DD-> RAM que tu n'en gagne...
  • # Re: accelération de linux !

    Posté par  (site web personnel, Mastodon) . Évalué à 5.

    Oui mais bon, un grosse partie de /etc, un très grosse même, est utliser une fois lors du lancement des services, comme Apache, Mysql...

    Et combien de temps ça prend pour copier /etc dans la ram ? Et combien pour la recopier ? Au bilan, tu as gagner combien ?
  • # Re: accelération de linux !

    Posté par  . Évalué à 5.

    Ça serait bien plus intéressant de mettre le swap dans la RAM (et beaucoup moins tordu).
  • # Re: accelération de linux !

    Posté par  . Évalué à 4.

    Cela mérite des expérimentations, mais cependant, j'ai des doutes car la plupart des fichiers de /etc sont effectivement lus au démarrage de la machine ou des services. Ceux qui sont lu régulièrement, ont a priori de fortes chances de se trouver dans le cache de ton disque, ou au moins en RAM dans le cache (car un des trucs vraiment bien avec Linux depuis toujours, c'est que plus tu as de RAM, et plus ton DD est rapide, vu qu'il utilise la RAM libre comme cache du DD).

    L'inconvénient, ce ta technique, c'est que tu monopolise alors de la RAM pour des trucs qui ne seront jamais utilisés. Tandis que le système de cache de DD te fait tout ça dynamiquement comme il faut, y compris les synchronisations.

    A tester et benchmarker, quand même, mais je ne suis presque certain du résultat.

    David
    • [^] # Re: accelération de linux !

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

      Exact : les fichiers de /etc sont sommes toute assez peu utilisés ...
      Par contre, ils sont fait pour être souvent modifiés (comme /var) donc les mettre en ramdisk, c'est pas une bonne idée.

      Par contre, ce genre de bidouilles, ca s'utilise sur les machines type "openbrick" quand on ne veut pas fusiller la flash card en écrivant dessus tout le temps : il suffit de recopier le squelette de /var au boot dans le ramdisk :)
  • # Re: accelération de linux !

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

    /etc ne peut pas être sur une partition différente de /

    Sinon, le système lirait /etc/fstab pour savoir qu'il faut monter /etc

    Ou encore, il lirait /etc/rc.d* (ces scripts de démarrage doivent être lisibles avant le montage de autres partitions)
    • [^] # Commentaire supprimé

      Posté par  . Évalué à 1.

      Ce commentaire a été supprimé par l’équipe de modération.

  • # Re: accelération de linux !

    Posté par  . Évalué à 1.

    Je suis d'accord avec vous tous, mais je pense que :

    dd copie les blocs contigus de la partition en mémoire :

    40 Mo / s garanti (il n'y a pas d'access aléatoires x 5ms)

    j'ai 20 Mo chez moi : donc environ 0.5 secondes, ce doit etre supportable par tout le monde !-)

    500 fichiers = 500* 5ms = 2,5s + le temp de lecture = 3 secondes !

    donc, on doit forcement y gagner mais on bootera pas en 200ms !!
    --> http://developers.slashdot.org/developers/03/09/30/003209.shtml?tid(...)

    .

    Néanmoins, vu comment linux gere bien le cache disque, il suffirait de mettre les fichiers physiquement à la suite les uns des autres en fonction de leur première lecture : une sorte de defragementation réaménagement !

    des idées ?
    • [^] # Re: accelération de linux !

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

      des idées ?

      oui : laisses tomber.

      1) tous les fichiers de /etc ne sont pas lus au démarrage (je dirais même un e minorité)
      2) ils sont souvent tous petits
      3) y'a plein de services qui doivent aller lire des fichiers ailleurs (/var, /lib, ...)

      y'a plein de trucs qui sont longs au démarrage :
      - lire les bin, linker les libs
      - syslog qui écrit plein de bidules sur le dd
      - interpréter les scripts sh un peu compliqué qui forkent des tas de grep, sed, awk
  • # Re: accelération de linux !

    Posté par  . Évalué à 2.

    et le tmpfs ? faut pas réinventer la roue non plus.
    tu as pensé à avoir un système de fichiers optimisé pour les petits fichiers, la mise en cache est plus rapide. d'ailleurs, tu devrais faire un peu plus confiance à la mise en cache qui est assez efficace sous linux
  • # Re: accelération de linux !

    Posté par  . Évalué à 1.

    J'ai déja bossé sur un projet similaire, basé sur Gibraltar ( http://freshmeat.net/projects/gibraltar/?topic_id=43%2C87%2C151%2C1(...) ) et ça tournai plutôt bien.

    Le principe est de faire une archive du /etc à chaque reboot ( dans gibraltar c'est stocké sur une disquette), ou de donner la possibilité d'archiver le /etc lors d'un changement. Leurs scripts sont bien foutus, et ça fonctionnait très bien.

    Je te conseil donc d'aller faire un tour sur leur site, j'ai pas regardé si il y avait des docs dessus, mais au pire si tu peux DL leur ISO, tu le monte et tu regarde ce que ça donne, c'est vraitement bien foutu.
  • # Re: accelération de linux !

    Posté par  . Évalué à 1.

    Je ne reviens pas sur le cache disque dont c'est justement le boulot de garder en RAM les fichiers souvent accédés.

    A chaque démarrage d'un programme, il est linké avec la libc, et ld.so est exécuté à chaque fois, on pourrait aussi les copier dans un RAM disque dans ce cas ;-)

Suivre le flux des commentaires

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