Skip to content
Snippets Groups Projects
Select Git revision
  • 2da3df6e4d2271ddaef3fa71474ebdbe18168904
  • master default protected
  • rednatco-v2
  • rednatco
  • test
  • ntc-tube-uniform-color
  • ntc-tube-missing-atoms
  • restore-vertex-array-per-program
  • watlas2
  • dnatco_new
  • cleanup-old-nodejs
  • webmmb
  • fix_auth_seq_id
  • update_deps
  • ext_dev
  • ntc_balls
  • nci-2
  • plugin
  • bugfix-0.4.5
  • nci
  • servers
  • v0.5.0-dev.1
  • v0.4.5
  • v0.4.4
  • v0.4.3
  • v0.4.2
  • v0.4.1
  • v0.4.0
  • v0.3.12
  • v0.3.11
  • v0.3.10
  • v0.3.9
  • v0.3.8
  • v0.3.7
  • v0.3.6
  • v0.3.5
  • v0.3.4
  • v0.3.3
  • v0.3.2
  • v0.3.1
  • v0.3.0
41 results

base.tsx

Blame
  • stressfs.pl 13.35 KiB
    #!/usr/bin/perl
    use strict;
    use warnings;
    use Getopt::Long::Descriptive;
    use Number::Bytes::Human qw(format_bytes parse_bytes);
    use POSIX ":sys_wait_h";
    use Time::HiRes qw(time);
    use File::Basename;
    $SIG{CHLD}='IGNORE';
    
    # parametry a defaultni hodnoty
    # TODO: do helpu pridat perldoc nize ulozeny
    my ($opt, $usage) = describe_options(
      'Pouziti:
        stressfs [options]
        volby --s* jsou pro male soubory
        volby --b* jsou pro velke soubory',
      [ 'path|p=s',  'path for testing directory (sfs_tmp)', { default => 'sfs_tmp' } ],
      [ 'gen|g',     'vynutit nove generovani datove struktury, pro test nutny az 3x mnozstvi volneho mista, viz popis datovych struktur' ],
      [ 'notest|n',  'netestovat, pouze generovani dat pokud je nezbytne' ],
      [ 'count|c',   'negenerovat, netestovat, pouze odhadnout velikost struktury, ktera bude nutna pro vygenerovani' ],
      [],
      [ 'bcomp=i',   'pocet vlaken pro kompresi velkych souboru (1)', { default => 1 } ],
      [ 'scomp=i',   'pocet vlaken pro kompresi malych souboru (1)', { default => 1 } ], 
      [ 'bdecomp=i', 'pocet vlaken pro dekompresi velkych souboru (1)', { default => 1 } ],
      [ 'sdecomp=i', 'pocet vlaken pro dekompresi malych souboru (1)', { default => 1 } ],
      [],
      [ 'sdepth=i',  'hloubka adresarove struktury (3)', { default => 3 } ],
      [ 'sdirmin=i', 'minimalni pocet podadresaru v kazde urovni (3)', { default => 3 } ],
      [ 'sdirmax=i', 'maximalni pocet podadresaru v kazde urovni (9)', { default => 9 } ],
      [ 'snummin=i', 'minimalni pocet souboru v jednotlivych adresarich (3)', { default => 3 } ],
      [ 'snummax=i', 'maximalni pocet souboru v jednotlivych adresarich (20)', { default => 20 } ],
      [ 'ssizemin=i','minimalni velikost souboru v B (0)', { default => 0 } ],
      [ 'ssizemax=i','maximalni velikost souboru v B, max. 4GB (1024)', { default => 1024 } ],
      [],
      [ 'bdepth=i',  'hloubka adresarove struktury (2)', { default => 2 } ],
      [ 'bdirmin=i', 'minimalni pocet podadresaru v kazde urovni (1)', { default => 1 } ],
      [ 'bdirmax=i', 'maximalni pocet podadresaru v kazde urovni (3)', { default => 3 } ],
      [ 'bnummin=i', 'minimalni pocet souboru v jednotlivych adresarich (3)', { default => 3 } ],
      [ 'bnummax=i', 'maximalni pocet souboru v jednotlivych adresarich (9)', { default => 9 } ],
      [ 'bsizemin=i','minimalni velikost souboru v B (1048576 = 1MB)', { default => 1024*1024 } ],
      [ 'bsizemax=i','maximalni velikost souboru v B, max 4GB (1073741824 = 1GB)', { default => 1024*1024*1024 } ],
      [],
      [ 'help|h', 'tato napoveda a konec', { shortcircuit => 1 } ],
    );
    
    if ($opt->help) {
            print `pod2text $0`;
            print "\n";
            print($usage->text);
            exit 0;
    }
    
    my $tar_opts = "--warning=none";
    my $tar_name = "archive.tar";
    
    my $path = $opt->path;
    my $forks = 0;
    my %pids = ();
    my $pid;
    my %data = (); # zakladni informace o strukture zdrojovych dat
    my $est_size = 0;
    
    #########################################
    ### GENEROVANI A SPRAVA ZDROJOVYCH DAT
    #########################################
    
    # vypocet predpokladane velikosti
    sub est_size {
            my ($path, $depth, $dirmin, $dirmax, $nummin, $nummax, $sizemin, $sizemax) = @_;