Derniers journaux de mat_ :
- [03/02@18:58] simpleinit
- [17/01@13:11] free c'est bien quand ca marche, mais sinon...
- [03/01@12:50] detecter la demande d'ejection quand un cd est montee
- [31/12@17:56] kernel 2.6.1 rc1
- [18/12@11:42] mplayer : migration des serveurs debian -> slackware
- [30/11@18:25] premiere beta d'xvid 1.0 disponible
- [29/11@19:08] equivalent de e2label
- [24/11@13:09] du nouveau du coté des serveurs jabber
- [03/10@22:27] j'ai faillit faire une grosse boullette...
- [21/09@20:11] test
- [12/09@17:42] Recherche carte PCI UDMA133
- [11/09@18:36] n'achetez pas decarte pci udma a base de w-8212
- [29/08@10:07] canon et libmnote
- [14/07@08:21] pourquoi le driver nvidia proprio = module noyeau
- [11/07@12:21] nouveau driver savage opensource par s3/via
- [03/07@10:29] recupération de cd endomagé
- [16/06@17:09] sourceforge et cvs
- [05/06@17:06] highmem et vmalloc_32
- [02/05@10:30] matroska
- [10/03@15:46] MSI update ses bios sous freedos
Journal : limiter la memoire pour un utilisateur
Posté par Matthieu C () le 12 février 2004Je sais qu'il existe /etc/[security/]limits.conf, qui permet de le faire pour un process, mais des qu'on forke ca marche plus.
En gros existe il une limite permettant de bloquer les programme du genre:
int main()
{
while(fork()) {};
while(malloc(1024)) {};
while(1) {};
}
> Lire le journal (16 commentaires, moyenne: 1,3).
Re: limiter la memoire pour un utilisateur
-
[^]Re: limiter la memoire pour un utilisateur
Posté par Matthieu C () le 12/02/2004 à 13:48. (lien). Évalué à 1.c'est la meme chose que ce que l'on peut trouver dans limits.conf, et si tu met pas des trucs trop restrictif (100 proc, 100Mo par exemple) tu peux quand meme bouffer toute la memoire tres vite.
Moi ce que je voudrai c'est que tout les process d'un utilisateur ne depasse pas une certaine quantitee de memoire....
On a bien le nombre de process * la taille max par process qui donne cette valeur.
Mais par exemple si l'utilisateur doit lancer X, open office, mozilla il a besoin d'au moins 50 Mo de memoire par process.
Puis il faut quand meme un minimun de process (50) et on peut deja 250 Mo rien qu'en utilisant ces minimuns qui sont tres restrictif...
En plus dans certains cas la limitation donne des resultat douteux : segmentation fault du programme + crash de bash ensuite....-
[^]Re: limiter la memoire pour un utilisateur
-
[HS]
Desole pour mon post qui n'est pas en rapport avec ta question, mais je profite du fait que tu sois pas loin des journaux pour te relancer à propos de http://linuxfr.org/~mat_/8106.html(...) : j'ai tenté de te joindre par mail à ta redirection dlfp pour te demander où ca en etait et si tu avais publié qqch à ce sujet?
Hésite pas à m'envoyer bouler si je suis lourd.
Re: limiter la memoire pour un utilisateur
int main()
{
while(fork()) {};
while(malloc(1024)) {};
while(1) {};
}
y a plus court, et tout aussi efficace (testé et approuvé par de nombreux utilisateurs foutus dans la merde avec le programme suivant lancé sur un serveur sur lequel ils étaient connecté...)
int main () {
while(malloc(1024)){
fork();
}
}
-
[^]Re: limiter la memoire pour un utilisateur
Posté par Olivier G. (page perso, ) le 12/02/2004 à 16:05. (lien). Évalué à 1.Pas besoin de C pour ça... Un simple shell suffira:
:(){ :[:& };:
A essayer à vos risques et périls.-
[^]Re: limiter la memoire pour un utilisateur
Posté par Matthieu C () le 12/02/2004 à 17:17. (lien). Évalué à 1.mat@xxxx:~$ :(){ :[:& };:
[1] 697
mat@xxxx:~$ -bash: :[:: command not found
[1]+ Exit 127 :[:-
[^]Re: limiter la memoire pour un utilisateur
Posté par Olivier G. (page perso, ) le 12/02/2004 à 23:19. (lien). Évalué à 2.oops
s/[/|/
Donc je la refais:
:(){ :|:& };:
Toujours à vos risques et périls...-
[^]Re: limiter la memoire pour un utilisateur
Posté par GCN (Jabber id, page perso, ) le 13/02/2004 à 14:35. (lien). Évalué à 1.J'ai deja vu ce truc circuler dans le passé et je me demandais si, éventuellement, tu n'aurais pas un lien à proposer qui expliquerait exactement comment fonctionne cette "commande" en décorticant un peu tout ce bazard ?
C'est juste pour ma culture perso (et je suis sûr que d'autres personnes se posent les mêmes questions que moi :p) !-
[^]Re: limiter la memoire pour un utilisateur
Posté par TImaniac (page perso, ) le 13/02/2004 à 16:37. (lien). Évalué à 2.en gros du définis une fonction ':' qui se rappelle elle-même dans des processus différents et enfin tu la lance
J'ai peut être faux je suis pas doué en shell mais bon la syntaxe me fait dire ca :)
-
-
-
-
-
[^]Re: limiter la memoire pour un utilisateur
Posté par Matthieu C () le 12/02/2004 à 17:15. (lien). Évalué à 1.y a plus court, et tout aussi efficace (testé et approuvé par de nombreux utilisateurs foutus dans la merde avec le programme suivant lancé sur un serveur sur lequel ils étaient connecté...)
Non car des que le pere atteind la limite maxi de memoire il meurt, ainsi que tout ses fils...
-
[^]Re: limiter la memoire pour un utilisateur
Posté par Jerome Herman () le 12/02/2004 à 17:37. (lien). Évalué à 1.perso je prefere le beaucoup plus drole :
int main () {
while(fork()){
malloc(1);
}
}
1) - Les touts petits mallocs sont presque toujours accordes.
2) - C'est pas parcequ'il y a plus de memoire qu'il faudrait se priver de creer des processus.
3) - Des qu'une once de memoire devient disponible c'est pour bibi.
Bon si on est limite au niveau du nombre de process il peut etre bon d'augmenter un peu le malloc.
Reccord a battre : 1784 de load
Kha-
[^]Re: limiter la memoire pour un utilisateur
Posté par Matthieu C () le 12/02/2004 à 17:58. (lien). Évalué à 1.c'est foireux car fork retourne 0 au fils, donc aucun fils ne rentre dans la boucle, n'alloue de memoire : il meurent instantanement et comme le noyeau ne fork pas rellement avant que les 2 processus change ça revient a faire un
int main () {
while(1){
malloc(1);
}
}
pour la charge j'ai reussit a faire du 120 sans insister...-
[^]Re: limiter la memoire pour un utilisateur
Posté par Jerome Herman () le 12/02/2004 à 18:07. (lien). Évalué à 2.Exact, je sais pas ce que j'ai bu....
La bonne version est
while(1){
while(fork()){
malloc(1);
}
}
Forcement sans le while(1) initial ca perd beaucoup de son interet...
Kha-
[^]Re: limiter la memoire pour un utilisateur
-
-
-
oupps j'ai mal recopier mon test
s/while(fork()) {};/while(fork() != -1) {};
Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.