J'ai créé une invite Bash qui, lorsque le répertoire de travail est un référentiel Git, affiche le nom du référentiel actuel. En outre, il contient la tâche en cours en cours et le temps passé à le faire (à partir d'un outil de chronométrage homebrew). Ceci, bien sûr, signifie que simplement afficher l'invite signifie exécuter deux processus.Détection de la charge du système en mettant l'accent sur le «swap thrashing» sous Linux
Cela a l'inconvénient que si le système est débattait pour une raison quelconque, il faut toujours pour obtenir une invite à faire killall
nécessaire pour sauver le système, que le chargement juste le binaire git
est trop demander du système un tel état. Donc, à l'heure actuelle, l'invite est désactivée par défaut et n'est activée que sur demande, mais ce n'est pas très confortable. Il serait plus agréable de détecter la charge dans .bashrc
et d'activer uniquement l'invite si le système fonctionne correctement (c'est-à-dire avec une latence de disque acceptable).
Dans de telles situations, le processeur est assez bon marché, seul le disque est cher. J'ai donc besoin d'un moyen qui détecte le débordement sans dépendre des utilitaires externes.
Indice: /proc
peut avoir quelque chose d'utile. Par exemple. /proc/loadavg
résoudrait mon problème si c'était le CPU qui causait les goulots d'étranglement, pas le disque.
I'D dites que votre invite est peut-être un peu trop intelligent. Un programme essayant de s'exécuter alors que le système est en swap thrash, même juste pour vérifier s'il devrait fonctionner, va bloquer l'attente de core (files d'attente de priorité modulo et hasard aléatoire).Par la présente, je l'appelle l'invite Catch-22: le programme qui doit exécuter pour déterminer si elle a la capacité de courir;) – msw
pas de problème si vous pouviez le résoudre entièrement dans bash ?? – mvds
@mvds: Ce serait même préférable! – AttishOculus