Forum Linux.noyau Optimisation d'une application visoconférence avec TC

Posté par  .
Étiquettes : aucune
0
18
avr.
2005
Bonjour,

Voilà ce que j'aimerais faire. J'essaye de faire tourner une application du style visioconférence sur mon PC, sans aucune autre application internet dessus. Ma connexion est une 128/512k.

Dans cette connexion, j'aimerais privilégier l'audio (éh oui, c'est le plus important je pense) à la vidéo. Je voudrais donc allouer une bande passante à l'audio que la vidéo ne pourrait emprunter.

L'audio sort par les ports 5000 ou 5004 ou 5008 ou 5012. Le codec est le GSM-06 (13.2kbit/s). Voici le script que j'ai fait et qui semble marcher, mais qui donne un énorme délai (5-10s parfois) au niveau de la sortie de l'audio:

tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1: htb default 11

tc class add dev eth0 parent 1: classid 1:1 htb rate 128kbit ceil 128kbit
tc class add dev eth0 parent 1: classid 1:10 htb rate 15kbit ceil 15kbit
tc class add dev eth0 parent 1: classid 1:11 htb rate 113 ceil 113kbit

tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip sport 5000 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip sport 5004 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip sport 5008 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip sport 5012 0xffff flowid 1:10

Pourriez vous me dire si
- j'ai utiliser la bonne méthode?
- j'ai complètement fait fausse route?
- pourquoi ai-je ce délai qui rend une conversation impossible?

Merci!
Billoute
  • # limiter plus l'upload

    Posté par  . Évalué à 1.

    Ca m'a l'air pas mal comme ca, cela dit, pour les scripts wondershaper, il était conseillé de commencer à jouer avec 90% de la bande passante montante (donc tu limites à 115Kbits pour la classe root) pour éviter d'avoir des problèmes avec les goulots suivants de ta ligne. Et d'augmenter ce chiffre peu à peu.

    Sinon, tu peux aussi essayer de passer le paramètre prio à 2 pour la video et au trafic bulk...
  • # gestion des quotas minimums

    Posté par  . Évalué à 2.

    Il y a quelque chose qui me surprend.

    tu as 128k d'upload
    et tu garantis à la fois 128k + 15k + 113 o donc 143k +114 o soit plus que tu ne dispose.

    Normalement il faut que le cumul des taux que tu garantis fasse les 128k.

    Une chose intéressante aussi est que si au réel tu ne peux envoyer pas plus de 128k, pour éviter de saturer la mémoire tampon de ton modem, que tu envoi que 80% de ton upload maximal, car dès que le tampon de ton modem est plein, tu peux causer des perturbations sur ton download.
    • [^] # Re: gestion des quotas minimums

      Posté par  . Évalué à 1.

      Quotas max des trois classes
      --------------------------------------------------
      A moins que je ne me trompe, la classe mère garantit 128k.
      $ tc class add dev eth0 parent 1: classid 1:1 htb rate 128kbit ceil 128kbit

      Et ensuite la bande passante de allouée à la classe mère est partagée pour les deux classes filles.
      $ tc class add dev eth0 parent 1: classid 1:10 htb rate 15kbit ceil 15kbit
      $ tc class add dev eth0 parent 1: classid 1:11 htb rate 113 ceil 113kbit

      Ai-je mal compris?


      Quotas max de la classe mère
      --------------------------------------------------
      Oui, je pense que tu as raison. Il faut que je limite la BP max de la classe mère à 80, 90% de l'upload théorique de mon modem, pour ne pas le saturer.

      Merci !
      • [^] # Re: gestion des quotas minimums

        Posté par  . Évalué à 2.

        la classe mère n'est pas 1:1 mais 1: normalement.

        puisque tu met
        tc class add dev eth0 parent 1: classid 1:11 htb rate 113 ceil 113kbit

        si 1:1 doit être la mère des autres classes

        met
        tc class add dev eth0 parent 1:1 classid 1:11 htb rate 113 ceil 113kbit

        et là 1:1 est le parent de 1:10 et 1:11


        Donc tu profiles tes différentes utilisation, tu te débrouilles pour répartir le quota pour que le total fasse ton maximum d'upload et c'est gagné

        pour la partie voix, le but du jeu est d'attribuer peu de bande passante mais un maximum de priorité. Car là ou tu donnes une priorité il faut pas qu'il puisse prendre tout l'upload, donc tu indique ton prio mais ceil tu met juste le nécessaire
        • [^] # Délai sur le flux vidéo

          Posté par  . Évalué à 1.

          OK, j'ai bien pris en compte ce que tu m'as dit ci-dessus. Merci!
          J'ai maintenant mon audio qui passe sans délai et en priorité devant la vidéo (le codec audio choisit prend environ 4.1ko/s de bande passante)

          tc qdisc add dev eth0 root handle 1: htb default 11
          tc class add dev eth0 parent 1: classid 1:1 htb rate 14400bps ceil 14400bps
          tc class add dev eth0 parent 1:1 classid 1:10 htb prio 0 rate 4200bps ceil 4200bps
          tc class add dev eth0 parent 1:1 classid 1:11 htb prio 2 rate 10200bps ceil 10200bps

          tc filter add dev eth0 protocol ip parent 1: u32 match ip sport 5000 0xffff flowid 1:10
          tc filter add dev eth0 protocol ip parent 1: u32 match ip sport 5004 0xffff flowid 1:10
          tc filter add dev eth0 protocol ip parent 1: u32 match ip sport 5008 0xffff flowid 1:10
          tc filter add dev eth0 protocol ip parent 1: u32 match ip sport 5012 0xffff flowid 1:10



          Voici maintenant l'objectif suivant:
          Avec cette configuration, le flux vidéo est énormément retardé quand le logiciel de visioconférence envoie trop de vidéo. J'aimerais que ce soit linux qui gère ce surplus en le "droppant" sans retarder de plusieurs secondes l'envoie des trames vidéos.

          il y a t-il une solution? J'ai déjà cherché sur le net mais sans grands succés...
          Merci pour les conseils!
          • [^] # Re: Délai sur le flux vidéo

            Posté par  . Évalué à 2.

            Juste pour voir essai avec un prio de 0 partout, car si la limitation de bande passante est bien ajusté, tu n'as peut-être pas besoin de mettre de prio différent.

            Le principe est que ce n'est que quand les prio sont vides que il passe à la suite, donc de freiner sur l'utilisation de la bande passante sera peut-être suffisant vu que ce sont des flux constant.

            Le prio c' vrai que c'est prévu pour assurer le ssh ou des trucs commes çà.

            • [^] # Re: Délai sur le flux vidéo

              Posté par  . Évalué à 1.

              Ca y est, j'ai mis les deux prioirités à zéro...
              Et c'est encore mieux, tu as raison: les deux flux gardent leur band passante (l'audio n'est plus pris par la vidéo puisque dans deux classes séparées) et la vidéo n'est plus retardée car les deux classes ont la même priorité.

              Merci encore!

Suivre le flux des commentaires

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