GNU/Linux >> Znalost Linux >  >> Linux

2 Perl skripty pro regresi paměti pro Linux

Během testování výkonu vaší aplikace možná budete chtít provést nějaký druh regresního testování paměti. Tento článek obsahuje dva skripty pro regresi paměti, které jsou napsány v perlu a které zaberou určité množství paměti po určitou dobu pro vaše testování.

1. Základní skript regrese paměti

Chcete-li spustit tento skript, proveďte následující:

$ perl memtest.pl 100

Výše uvedený příklad zabere 100 MB paměti a čeká na váš vstup – jednoduchý enter ukončí skript a uvolní paměť. Tímto způsobem můžete nechat tento skript zabírat množství paměti, kterou potřebujete, na tolik času, kolik potřebujete.

První argument se bere jako velikost paměti, která má být obsazena (v MB).

Poznámka: Tento skript nespouštějte na žádném kritickém systému. Buďte opatrní při spouštění tohoto skriptu. Nedávejte tomuto skriptu velkou paměťovou hodnotu. Pokud je množství dané paměti velké nebo není dostupné, váš systém se může zablokovat.

Pro vytvoření tohoto souboru proveďte „vi memtest.pl“ a zkopírujte/vložte následující kód perl.

# 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. Pokročilý skript regrese paměti

Chcete-li spustit tento skript, proveďte následující:

$ perl memtest-adv.pl 250

(or)

$ perl memtest-adv.pl 25%

Tento memtest-adv.pl funguje stejným způsobem jako základní skript, ale můžete také zadat procento jako vstup. Když má váš systém celkem 2 GB fyzické paměti, můžete zadat 25 %, což zabere 500 MB paměti pro testování.

První argument může být buď množství paměti v MB nebo procento paměti, které má být obsazeno, kde procento představuje procento vzhledem k celkové dostupné primární paměti.

Poznámka: Tento skript v Perlu zabírá přibližně dané množství paměti. Na námi testovaném systému to trvalo maximálně o 5 MB více. Takže to nepoužívejte v žádném kritickém systému. Tento skript používejte pouze na testovacím systému, protože systém se může zablokovat.

Pro vytvoření tohoto souboru proveďte „vi memtest-adv.pl“ a zkopírujte/vložte následující kód perl.

# 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. Jak spustit příkazy bash Linuxu ve skriptu PERL?

  2. Linux – Omezit využití paměti pro jeden linuxový proces?

  3. Použít rozšíření .sh nebo .bash pro skripty Bash?

  1. 10 příkladů příkazů insserv pro inicializační skripty systému Linux

  2. Formát data a času pro skript nebo proměnnou prostředí Linux

  3. Jak mohu spustit skript v Perlu jako systémový démon v linuxu?

  1. jak zkontrolovat velikost haldy přidělenou pro jvm linuxem

  2. Linuxový shell skript pro zálohování databáze

  3. Transliterační skript pro linuxové prostředí