GNU/Linux >> Tutoriales Linux >  >> Linux

2 Scripts Perl de regresión de memoria para Linux

Durante las pruebas de rendimiento de su aplicación, es posible que desee realizar algún tipo de prueba de regresión de memoria. Este artículo contiene dos scripts de regresión de memoria que están escritos en Perl y que ocuparán una cantidad específica de memoria durante un cierto período de tiempo, para su prueba.

1. Script básico de regresión de memoria

Para ejecutar este script, haga lo siguiente:

$ perl memtest.pl 100

El ejemplo anterior ocupará 100 MB de memoria y espera su entrada:una simple entrada finalizará el script y liberará la memoria. De esta manera, puede dejar que este script ocupe la cantidad de memoria que necesita durante el tiempo que necesite.

El primer argumento se toma como la cantidad de memoria que se ocupará (en MB).

Nota: No ejecute este script en ningún sistema crítico. Tenga cuidado al ejecutar este script. No le dé un gran valor de memoria a este script. Si la cantidad de memoria proporcionada es enorme o no está disponible, su sistema podría bloquearse.

Ejecute 'vi memtest.pl' y copie/pegue el siguiente código perl para crear este archivo.

# 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 regresión de memoria avanzada

Para ejecutar este script, haga lo siguiente:

$ perl memtest-adv.pl 250

(or)

$ perl memtest-adv.pl 25%

Este memtest-adv.pl funciona de la misma manera que un script básico, pero también puede especificar un porcentaje como entrada. Cuando su sistema tenga un total de 2 GB de memoria física, puede especificar el 25 %, que ocupará 500 MB de memoria para la prueba.

El primer argumento puede ser la cantidad de memoria en MB o el porcentaje de memoria que se ocupará, donde porcentaje representa el porcentaje contra la memoria principal total disponible.

Nota: Este script de Perl ocupa aproximadamente la cantidad de memoria dada. En el sistema que probamos, tomó un máximo de 5 MB más. Por lo tanto, no use esto en ningún sistema crítico. Use este script solo en un sistema de prueba, ya que el sistema podría bloquearse.

Ejecute 'vi memtest-adv.pl' y copie y pegue el siguiente código perl para crear este archivo.

# 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. ¿Usar la extensión .sh o .bash para scripts Bash?

  2. Linux:¿aplicación de captura de pantalla para Rhel6.5?

  3. 10 ejemplos de comandos insserv para secuencias de comandos de inicio del sistema Linux

  4. Formato de fecha y hora para script o variable de shell de Linux

  5. ¿Cómo puedo ejecutar un script de Perl como un demonio del sistema en Linux?

Shell Scripting para principiantes:cómo escribir Bash Scripts en Linux

20 consejos de programación Killer Perl para principiantes en UNIX / Linux OS

Los 15 mejores software de escritura de guiones para escritorio Linux

Script de shell de Linux para la copia de seguridad de la base de datos

Memoria inactiva de Linux

¿Qué se necesita para que un servicio de Linux sea compatible con chkconfig?