Applications & attributions de ressource.

akh2020

Membre enregistré
18 Octobre 2010
3
1
Bonjour,

j'espère que je ne me suis pas trompé de section pour mon premier message.

Mon problème est le suivant :
je développe actuellement une solution pour distribuer des tâches (applications de biologie) sur un cluster de serveur 10.6 via Xgrid (pour l'instant, mais ce choix est aussi ouvert). Une des problématiques est de pouvoir réserver une certaine quantité de ram et un certain pourcentage du cpu (sur un ou plusieurs cores). Le but étant que, grâce à une bonne calibration des ressources nécessaires, un hôte exécute le nombre maximal d'application sans risque de crash et sans être obligé de swapper.

Solutions expérimentées :
_ j'ai testé ulimit, mais il ne fonctionne pas (même s'il affiche correctement les stats qu'on lui indique). En effet, après des recherches, j'ai trouvé que son implémentation a été retiré depuis tiger.

_ j'ai vu qu'on pouvait paramétrer des choses via sysctl, mais d'après ce que j'ai compris cela agit sur le système global et pas seulement sur une application.

_ j'ai également tenté une approche via launchd/launchctl avec un script plist qui correspondrait. Malheureusement cela ne semble pas fonctionner non plus et ce n'est pas vraiment le bon usage de launchd.

J'aimerais donc savoir si il existe une ou plusieurs autres solutions qui éviteraient de passer par des machines virtuelles.

Merci.

EDIT : peut être est-il possible de faire quelque chose via sandbox-exec ?
 
merci déjà pour l'info et pour le "débile" (d'ailleurs, ça ne s'applique pas qu'à moi puisque c'est une orientation prise de concert). Je suis, il est vrai, pas expert mac (mais j'ai pas mal d'expérience sous gnu/linux).

Mais c'est un peu facile surtout sans proposer d'alternative. Donc bon.

Au passage, toute solution basée sur le loadavg n'est pas acceptable car les besoins réels des tâches peuvent beaucoup fluctuer entre deux instants et que celles-ci doivent donc être qualifiées par leurs besoins maximaux théoriques (actuellement, ça swap/plante à tout va dès que des grosses tâches sont lancées en concurrence car ces besoins ne sont pas pris en compte). Le but est de faire en sorte que chaque tâches dispose réellement des ressources dont elle a besoin, tant pis si il y a du gâchis de ressource en dehors des phases critiques et si il faut créer une queue qui prenne en compte à la fois les besoins et l'ordre d'arrivée (pour éviter la "famine").

donc tu propose quoi ?
_ de la réservation virtuelle ? Quid du moment où l'appli dépasse ses limites virtuelles ? On se dit que c'est pas grave ? car, pour moi, ça revient à laisser le système crasher comme actuellement...

_ de l'exécution dans des machines virtuelles pour garantir qu'une appli ne dépasse pas les besoins qui lui sont allouées ? Qu'est ce que cela apporte de plus par rapport à un bridage ?

_ autre chose ?

je suis ouvert aux propositions.

ps : ta signature est sympa. Elle te permet de troller et de l'invoquer après pour ta "défense" ?

EDIT : je ne l'ai pas précisé, mais cela me semblait implicite, le temps des appli exécutées peut se compter en jour (et le système mis en place doit résister à des applis qui s'exécuteraient en semaine, voire en mois).
 
sysctl -a | grep vm ....

ma signature est seulement difficile pour toi

controlles ta sandbox au lieu de raconter des conneries et ton approche est toujours debile GNU/Linux ou pas

(combien de commits as tu sur le GNU/Linux kernel? j'en ai deja plus de 3 dont un diff de 1500 lignes, de plus je me suis tapé une partie de l'implementation du zerocopy sur FreeBSD directement lié a ce sujet précis que tu ne sembles pas maitriser.)

de plus tu confonds une ferme de calcul avec une architecture distribuée demandant un peu de temps de calcul aux clients disponibles, si t'en ais a faire swapper un client... si je souscrivais a ton projet meme si tu vis 12000 kms et que tu m'eclates mes resources comme tu le fais je prendrais l'avion pour venir te taper dessus Monsieur le spécialiste et de te couper les doights (ca t'évitera de toucher aux ordinateurs)
 
"sysctl -a | grep vm ...."
bravo ! mais c'est pour afficher uniquement (d'ailleurs tu peux taper "sysctl vm", ça marche aussi), mais pas pour limiter ( dans ce cas, c'est "sysctl -w") ... Au fait, comme je le disais tantôt, sysctl n'a pas d'intérêt puisque ça limite le système globalement et pas l'application. Ce qui n'est pas le but.


"controlles ta sandbox"

c'est de bien d'énoncer des mots ( j'en parlais dans mon EDIT de 12h56 le 18/10, dans mon premier post). Evidemment ça serait mieux d'en dire plus (le man est pour le moins laconique, notamment concernant les profiles et les possibilités de restrictions attenantes), mais bon...


"(combien de commits as tu sur le GNU/Linux kernel? j'en ai deja plus de 3"
bravo à toi ! Mais ça apporte quoi ?


"de plus tu confonds une ferme de calcul avec une architecture distribuée demandant un peu de temps de calcul aux clients disponibles, si t'en ais a faire swapper un client..."
ce que tu n'as visiblement pas compris depuis les hautes sphères d'où tu sembles me toiser. C'est que je ne choisis pas les applications qui seront distribuées sur la ferme de calcul. Par contre, je dois m'occuper d'apporter des garanties qui n'existent pas actuellement (actuellement ça swap et ça plante, mais je n'ai pas encore mis en place le système dont je parle). Comme par exemple qu'une application qui demande une certaine quantité de ressource puisse l'obtenir sans toutefois dépasser cette limite (pour garantir que les autres puissent avoir le même traitement). En gros, je dois faire un genre d'ordonnanceur (ou au pire me fier à celui de Xgrid), mais surtout assurer qu'une application ne puissent pas dépasser les ressources qui lui ont été allouées. C'est pour ça qu'ulimit aurait pu être sympa, car il permettait en enrobant simplement l'exécution de l'application dans un script définissant les limites adéquates. Malheureusement, cette option n'est plus du tout possible, car je n'ai pas dans mes prérogatives de recompiler le noyau.


Concernant les passages que je n'ai pas cités, je remarque que le respect n'est pas dans tes habitudes. A part m'insulter sans fondement, tu n'apportes pas de réponse constructives. Je crois pourtant m'exprimer convenablement, il serait bon que tu en fasse de même ou tu vas finir par passer pour "un vrai dur". Ton propos corrobore exactement ce que je disais au sujet de ta signature. Ne parlons même pas de tes pseudos menaces...


Par ailleurs, comme je l'ai déjà dit, je reste ouvert aux suggestions. encore faut-il qu'il y en aient qui excèdent deux mots. Donc détends toi et si tu en as de vraie(s), je serais ravi de les lire et d'en discuter ( sachant bien sur, que de dire que les contraintes sont pourries et que mes idées sont débiles n'est pas considéré comme une proposition).
 
  • J’aime
Réactions: BooBoo