GNU/Linux >> Tutoriels Linux >  >> Linux

2 Scripts Perl de régression de mémoire pour Linux

Lors des tests de performances de votre application, vous souhaiterez peut-être effectuer une sorte de test de régression de la mémoire. Cet article contient deux scripts de régression de mémoire écrits en perl qui occuperont une quantité spécifique de mémoire pendant un certain temps, pour vos tests.

1. Script de régression de mémoire de base

Pour exécuter ce script, procédez comme suit :

$ perl memtest.pl 100

L'exemple ci-dessus occupera 100 Mo de mémoire et attendra votre entrée - une simple entrée terminera le script et libérera la mémoire. De cette façon, vous pouvez laisser ce script occuper la quantité de mémoire dont vous avez besoin aussi longtemps que vous en avez besoin.

Le premier argument est considéré comme la quantité de mémoire à occuper (en Mo).

Remarque : N'exécutez pas ce script sur un système critique. Soyez prudent lors de l'exécution de ce script. Ne donnez pas une grande valeur de mémoire à ce script. Si la quantité de mémoire fournie est énorme ou indisponible, votre système peut se bloquer.

Faites ‘vi memtest.pl’ et copiez/collez le code perl suivant pour créer ce fichier.

# store and validate the command line parameter
$mb = $ARGV[0];
unless ( defined $mb and $mb =~ /^\d+$/ and $mb >= 1)  {
    die "Usage: $0 <occupy MB>\nEx: $0 100 - occupies 100 MB memory\n"
}
# convert it to bytes.
$b = $mb * 1024 * 1024;

# open in-memory file, and seek to size specified to get memory from OS.
open MEM, '>', \$memfile;
seek MEM, $b - 1, 0;
print MEM 'A';
close MEM;
printf "$mb MB memory is occupied, press ENTER to release: "; <STDIN>;

# till here the memory is occupied by this program.
undef $memfile;
printf "Memory released";

2. Script de régression mémoire avancé

Pour exécuter ce script, procédez comme suit :

$ perl memtest-adv.pl 250

(or)

$ perl memtest-adv.pl 25%

Ce memtest-adv.pl fonctionne de la même manière qu'un script de base, mais vous pouvez également spécifier un pourcentage en entrée. Lorsque votre système dispose d'un total de 2 Go de mémoire physique, vous pouvez spécifier 25 %, ce qui occupera 500 Mo de mémoire pour les tests.

Le premier argument peut être soit la quantité de mémoire en Mo, soit le pourcentage de mémoire à occuper, où le pourcentage représente le pourcentage par rapport à la mémoire primaire totale disponible.

Remarque : Ce script Perl occupe approximativement la quantité de mémoire donnée. Sur le système que nous avons testé, il fallait au maximum 5 Mo de plus. Donc, ne l'utilisez pas sur un système critique. Utilisez ce script uniquement sur un système de test, car le système pourrait se bloquer.

Faites ‘vi memtest-adv.pl’ et copiez/collez le code perl suivant pour créer ce fichier.

# calculate memory to be occupied from percentage given
sub find_memto_occupy
{
    $pc = $_[0];
    die "Wrong percentage given $pc\n" if ($pc > 100);

    open MEMINFO, '<', '/proc/meminfo' or die "Unable to open /proc/meminfo to find available memory\n";
    my $mem = <MEMINFO>;

    if ( $mem =~ /^MemTotal:\s+(\d+)\s.*$/ )  {
        $mem = $1;
    } else {
        die "Unable to find the available memory\n";
    }

    $mem = ( $mem / 100 ) * $pc;
    return int($mem / 1024);
}

# main script
{
    $num = $ARGV[0];
    unless ( defined $num and $num =~ /^\d+%?$/ and $num >= 1)  {
             die "Usage: $0 <occupy MB>\nEx: $0 100 - occupies 100 MB memory\n"
    }

    if ( $num =~ /^(\d+)%$/ )  {
        # convert percentage to bytes.
        $pc = $1;
        $mb = find_memto_occupy($pc);
    } else {
        $mb = $num;
    }

    $b = $mb * 1024 * 1024;
    open MEM, '>', \$memfile;
    seek MEM, $b - 1, 0;
    print MEM chr(0);
    close MEM;

    print "$mb MB memory is occupied, press ENTER to release: "; <STDIN>;
    undef $memfile;
    print "Memory released";
}

Linux
  1. Comment puis-je exécuter un script Perl en tant que démon système sous Linux ?

  2. Comment vérifier la taille du tas pour un processus sous Linux

  3. Script shell Linux pour la sauvegarde de la base de données

  4. Script de translittération pour le shell Linux

  5. Limiter l'utilisation de la mémoire pour un seul processus Linux

Shell Scripting pour les débutants - Comment écrire des scripts Bash sous Linux

Comment exécuter une commande Linux bash dans un script PERL ?

Linux - Limiter l'utilisation de la mémoire pour un seul processus Linux ?

20 conseils de programmation Killer Perl pour les débutants sur UNIX / Linux OS

Top 15+ des meilleurs logiciels d'écriture de scripts pour Linux Desktop

Mémoire inactive Linux