Question ruissellement: limiter tous les programmes: fonctionne pour les exécutables liés statiquement?


je veux utiliser trickle sur Raspbian.

Il semble qu'il puisse être utilisé lors de l'exécution d'un exécutable comme suit:

  • trickle -u {up} -d {down} {program}

Et il peut également être utilisé pour toutes les applications. par exemple.:

  • trickled -d 50 -u 10

La page de manuel indique que le premier ne peut pas être utilisé sur des exécutables liés statiquement. Donc, ma question est la suivante: le deuxième exemple d'utilisation s'appliquera-t-il à tous les programmes, qu'ils soient liés statiquement ou non?

Merci


3
2018-01-14 14:07


origine


Vous ne savez pas comment vous devenez rapidement? Il a été mis à jour pour la dernière fois en 2003. Debian a un patch d'environ 1 Mo qu'il gère, ce qui, je suppose, le maintient fonctionnel sur les distributions modernes. - allquixotic


Réponses:


trickled utilise la même technique pour limiter la bande passante que trickle. Il écoute juste sur un socket de domaine UNIX dans /tmp Pour les autres trickle processus. Quand un autre trickle processus démarre, il demandera trickled (s’il est en cours d’exécution) pour les paramètres globaux, et définissez-les comme valeurs par défaut, à moins d’avoir des remplacements individuels pour cette instance spécifique de trickle.

UNE pleinement exécutable lié statiquement (ce qui signifie que tout, y compris la libc, est compilé de manière statique dans le binaire) ne peut pas être utilisé avec un processus d’espace utilisateur tel que trickle. Ce qui se passe finalement avec un exécutable lié statiquement, c’est qu’il fait directement des appels système dans l’utilisateur stable du noyau Linux <-> kernel Application Binary Interface (ABI). Il ne tente pas de charger des bibliothèques dans /lib, /usr/lib, /usr/local/lib, etc. pour résoudre les symboles.

La magie de trickle est que cela injecte efficacement du code personnalisé dans les processus qui faire charger dynamiquement la bibliothèque C à partir du système. Processus qui ne pas, ou les processus qui sont setuid root, ne peuvent pas avoir leur code modifié de cette manière.

Pour vraiment contrôler tout processus sur le système, ce niveau de limitation de la bande passante devrait être fait dans le noyau lui-même.

Il y a quelques implémentations du noyau, anciennes et nouvelles, des fonctionnalités de mise en forme du trafic (la mise en forme du trafic est le terme généralisé pour limiter la bande passante, et généralement la modification du timing ou de la planification des paquets). fiable. ici est un exemple plus récent basé sur le framework nf, dont le rôle est de remplacer iptables comme la stratégie de couche 3 et la pile de contrôle pour Linux moderne.

Bon article ici.


3
2018-01-14 14:37