Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Charge maximale avant plantage
Envoyé par: oudoubah

Bonjour,

Je me demande juste quelle est la charge maximale que peut supporter un linux standard (donc non tuné pour supporter de lourdes charges) avant qu'il ne rende les armes.

En charge moyenne sur 1 minute (selon la commande top), je suis déjà monté à 400.

Est-ce que quelqu'un a une idée de la charge maximale qu'il est possible d'atteindre?
Sinon, quelqu'un a une petite idée de tester une telle montée en charge? J'ai brièvement regardé sur le net, mais je n'ai rien vu d'intéressant au premier abord.

Est-ce qu'on peut facilement et rapidement faire une grosse montée en charge?

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Monday 8 October 2007 15:42:23
Répondre     Citer    
Re: Charge maximale avant plantage
Envoyé par: jimbo

Salut


j'ai java qui a planté (Asureus), quand exactement je ne sais pas mais je dirais dans la matinée. Je suis rentré du travail vers 19 h et le cpu était à 100% en continue donc depuis le plantage du matin. Le proc est monté de 33 a 52 degrés. Le system était lent serte, mais toujours aussi stable. J'aurais du le laisser tourner encore pour voir si cette pleine charge pouvais durer, peut on considérer ca comme une pleine charge ???

J'ai tuer le PID "java" je n'ai pas rebooté et tout est normal et stable comme avant.


peut être qu'avec Mathematica et la version démo il est possible de lui faire calculer quelque chose sur un temps donné. Je me souviens avoir fait un calcul pour comparer 2 processeurs et il donnait en réponse le temps de calcul.

Uptime serveur Samba :

Poste le Tuesday 9 October 2007 10:29:45
Répondre     Citer    
Re: Charge maximale avant plantage
Envoyé par: oudoubah

J'ai testé avec le protocole suivant :

charge :
void main(int argc, char **argv)
{
   double f;
   while (1)
      f++;
}

go.sh :
#!/bin/sh

exec 1>result
nb=0

while [ 1 -eq 1 ] ; do
        echo "---- $(date) ----"
        echo "$nb processus de charge"
        top -n 1 |head -n 4
        echo
        ./charge &
        ./charge &
        ./charge &
        sleep 1
done

(j'ai oublié d'incrémenter la variable contenant le nombre de process)

Voici les résultats :
---- mardi 9 octobre 2007, 10:03:53 (UTC+0200) ----
0 processus de charge
top - 10:03:54 up  1:12,  3 users,  load average: 1023.14, 911.63, 532.59
Tasks: 1284 total, 1228 running,  56 sleeping,   0 stopped,   0 zombie
Cpu(s): 43.1%us,  1.7%sy,  0.0%ni, 53.4%id,  1.5%wa,  0.3%hi,  0.1%si,  0.0%st
Mem:    449508k total,   319700k used,   129808k free,    23052k buffers

---- mardi 9 octobre 2007, 10:03:56 (UTC+0200) ----
0 processus de charge
top - 10:03:57 up  1:12,  3 users,  load average: 1023.14, 911.63, 532.59
Tasks: 1287 total, 1231 running,  56 sleeping,   0 stopped,   0 zombie
Cpu(s): 43.1%us,  1.7%sy,  0.0%ni, 53.3%id,  1.5%wa,  0.3%hi,  0.1%si,  0.0%st
Mem:    449508k total,   319984k used,   129524k free,    23052k buffers

---- mardi 9 octobre 2007, 10:03:58 (UTC+0200) ----
0 processus de charge
top - 10:03:59 up  1:12,  3 users,  load average: 16.10, 917.00, 536.36
Tasks: 1290 total, 1234 running,  56 sleeping,   0 stopped,   0 zombie
Cpu(s): 43.1%us,  1.7%sy,  0.0%ni, 53.3%id,  1.5%wa,  0.3%hi,  0.1%si,  0.0%st
Mem:    449508k total,   320244k used,   129264k free,    23068k buffers

Pour le "load average", je ne sais pas si c'est l'affichage de top qui boucle à une certaine valeur (1024? ou est-ce une coincidence?), ou si c'est le système qui boucle.

Le killall charge dans une console voisine a permis de retrouver instantannément la main fluide.

La charge maximale que je cherche à déterminer n'est pas celle d'exploitation du cpu, mais la charge même de l'os.

Il va falloir que je trouve mieux que top pour me donner l'indication que je cherche, puis je le ferai tourner sur une machine (ma sun biproc, qui pourra tourner quelques heures/jours si nécessaire).

Selon moi, je pense qu'on atteindra la limite soit avec le nombre de processus max, soit avec la limitation mémoire. C'est juste ce que je cherche à vérifier.

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Tuesday 9 October 2007 11:10:00
Répondre     Citer    
Re: Charge maximale avant plantage
Envoyé par: oudoubah

J'ai légèrement modifié le script pour avoir également des forks (mais pas trop pour attendre longtemps la limite du noyau, modifiée à 65536).

En Load average, j'en suis à près de 2500 sur la dernière minute, avec un peu moins de 6300 processus qui tournent. Le script essaie d'en lancer jusque 25000.

J'ai un top qui tourne en gentillesse -20, et qui se raffraichit environ toutes les 5 minutes (avec l'option -d 1!)

J'ai un watch -d 1 cat /proc/loadavg, qui tourne également en -20, mais qui continue de s'afficher toutes les secondes.

Le terminal dans lequel j'ai lancé la charge continue de se raffraichir, et lorsque j'appuie sur une touche, il lui faut près d'une seconde pour réagir, puis reste très réactif. Il continue de m'afficher le nombre de processus de charge lancés.

Bref, ça rame, mais ce n'est pas planté. Le focus de la souris sous kde fonctionne lentement, mais fonctionne tout de même.

Sur 1Go de RAM + 512Mo de swap, il ne me reste plus que 6Mo + 45Mo de libre.

Je peux en conclure que je ne peux pas atteindre la charge système maximale sur un bi-proc 1,5Go de mémoire total. Les limites sont tout d'abord celles de la mémoire.



Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Tuesday 9 October 2007 15:40:49
Répondre     Citer    
Re: Charge maximale avant plantage
Envoyé par: oudoubah

J'ai légèrement modifié le script pour avoir également des forks (mais pas trop pour attendre longtemps la limite du noyau, modifiée à 65536).

En Load average, j'en suis à près de 2500 sur la dernière minute, avec un peu moins de 6300 processus qui tournent. Le script essaie d'en lancer jusque 25000.

J'ai un top qui tourne en gentillesse -20, et qui se raffraichit environ toutes les 5 minutes (avec l'option -d 1!)

J'ai un watch -d 1 cat /proc/loadavg, qui tourne également en -20, mais qui continue de s'afficher toutes les secondes.

Le terminal dans lequel j'ai lancé la charge continue de se raffraichir, et lorsque j'appuie sur une touche, il lui faut près d'une seconde pour réagir, puis reste très réactif. Il continue de m'afficher le nombre de processus de charge lancés.

Bref, ça rame, mais ce n'est pas planté. Le focus de la souris sous kde fonctionne lentement, mais fonctionne tout de même.

Sur 1Go de RAM + 512Mo de swap, il ne me reste plus que 6Mo + 45Mo de libre.

Je peux en conclure que je ne peux pas atteindre la charge système maximale sur un bi-proc 1,5Go de mémoire total. Les limites sont tout d'abord celles de la mémoire.



Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Tuesday 9 October 2007 15:41:31
Répondre     Citer    
Re: Charge maximale avant plantage
Envoyé par: Raph__

Salut Oudoubah,

Ton script vaut pas un pet de lapin deye rolling smiley
Déjà si tu veux mettre ta machine à plat par l'utilisation du processeur il faut que tu changes la priorité des tes processus qui bouffent le proc. (nice -20 sur l'exécutable "charge").

Ensuite niveau saturation mémoire c'est pas assez méchant je trouve. Fais des forks
dans une boucle infinie où chaque processus ouvre un fichier (pas trop gros : 1Mo) et le copie en mémoire.

Avec un tel script ta machine devrait être inutilisable à l'exécution même du script.
Il peut être intéressant de lancer un grand nombre de processus (voir /proc/sys/kernel/pid_max) puis de saturer la mémoire.

Fais fumer la bête ! ^^D-*

A Ciao !


Poste le Wednesday 10 October 2007 20:44:44
Répondre     Citer    
Re: Charge maximale avant plantage
Envoyé par: oudoubah

Par le passé, j'avais déjà testé la saturation mémoire ainsi qu'un script de fork à gogo.

Mon but ici était d'avoir une progression pas trop brutale pour pouvoir continuer à surveiller l'état de la machine. C'est pourquoi mes deux seuls processus en -20 était top et watch cat /proc/loadavg.
Le script que j'ai utilisé au final était un peu différent (avec spécification d'un nombre max de processus).

Le programme qui testait l'occupation en mémoire était tout simplement un malloc que je remplissais de 0. Le système tuais des processus, mais n'a pas planté.

Le système refuse de lancer un nombre supérieur de processus que la limite définie (logique...)

Une charge cpu importante fera ramer le système, pourra entrainer des timeout, mais sans plus : J'ai déjà lancé des traitements de quelques minutes qui prenaient 100% de la cpu, et tout était stable.

J'ai un test idiot, mais vraiment idiot, et qui ne risque pas d'arriver dans un environnement de prod, c'est de diminuer le nombre max de processus qui tournent, le diminuer pour le mettre à un nombre inférieur au nombre de processus courant (j'avais prévenu que c'était idiot #%b).

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Wednesday 10 October 2007 22:52:07
Répondre     Citer    
Re: Charge maximale avant plantage
Envoyé par: oudoubah

La réponse à ma question stupide :
[root@tuxtop kernel]# /bin/echo 500 > pid_max
[root@tuxtop kernel]# /bin/echo 50 > pid_max
/bin/echo: Erreur d'écriture.: Argument invalide
[root@tuxtop kernel]# cat pid_max
500

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Wednesday 10 October 2007 22:56:09
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Charge maximale avant plantage
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons