GNU/Linux >> Linux Esercitazione >  >> Linux

2 Script Perl di regressione della memoria per Linux

Durante il test delle prestazioni della tua applicazione potresti voler eseguire una sorta di test di regressione della memoria. Questo articolo contiene due script di regressione della memoria scritti in perl che occuperanno una specifica quantità di memoria per un certo periodo di tempo, per i tuoi test.

1. Script di regressione della memoria di base

Per eseguire questo script, procedi come segue:

$ perl memtest.pl 100

L'esempio sopra occuperà 100 MB di memoria e attende il tuo input:un semplice invio terminerà lo script e rilascerà la memoria. In questo modo puoi lasciare che questo script occupi la quantità di memoria necessaria per tutto il tempo necessario.

Il primo argomento è considerato la quantità di memoria da occupare (in MB).

Nota: Non eseguire questo script su alcun sistema critico. Fai attenzione durante l'esecuzione di questo script. Non dare un grande valore di memoria a questo script. Se la quantità di memoria fornita è enorme o non disponibile, il tuo sistema potrebbe bloccarsi.

Esegui 'vi memtest.pl' e copia/incolla il seguente codice perl per creare questo file.

# 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 avanzato di regressione della memoria

Per eseguire questo script, procedi come segue:

$ perl memtest-adv.pl 250

(or)

$ perl memtest-adv.pl 25%

Questo memtest-adv.pl funziona allo stesso modo dello script di base, ma puoi anche specificare la percentuale come input. Quando il tuo sistema ha un totale di 2 GB di memoria fisica, puoi specificare il 25%, che occuperà 500 MB di memoria per il test.

Il primo argomento può essere la quantità di memoria in MB o la percentuale di memoria da occupare, dove percentuale rappresenta la percentuale rispetto alla memoria primaria totale disponibile.

Nota: Questo script Perl occupa approssimativamente la quantità di memoria data. Sul sistema che abbiamo testato, ci sono voluti un massimo di 5 MB in più. Quindi, non usarlo su nessun sistema critico. Utilizzare questo script solo su un sistema di prova, poiché il sistema potrebbe bloccarsi.

Esegui "vi memtest-adv.pl" e copia/incolla il seguente codice perl per creare questo file.

# 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. Come posso eseguire uno script Perl come demone di sistema in Linux?

  2. come controllare la dimensione dell'heap allocata per jvm da linux

  3. Script di shell Linux per il backup del database

  4. Script di traslitterazione per shell linux

  5. Limita l'utilizzo della memoria per un singolo processo Linux

Script di shell per principianti - Come scrivere script Bash in Linux

Linux – Applicazione di cattura dello schermo per Rhel6.5?

20 suggerimenti per la programmazione Killer Perl per principianti su sistemi operativi UNIX/Linux

Formatta data e ora per lo script o la variabile della shell Linux

I 15 migliori software di scrittura di script per desktop Linux

Come controllare la dimensione dell'heap per un processo su Linux