#!/usr/bin/perl -W
#

use strict;

print "ile mb ramu na conntracka: ";
my $ram = <STDIN>;

my $struct_conntrack = 352;
my $struct_hash = 8;

$ram *= 1024 * 1024;

my $ilosc_sesji = $ram / ($struct_conntrack + $struct_hash);

printf "ilosc_sesji = %.0f\n", $ilosc_sesji;

my $val_max;
for(my $x = 1; $x < 31; $x++) {
	$val_max = 1 << $x;
	last if ($val_max > $ilosc_sesji)
}
my $val_min = $val_max >> 1;

my $ram_min = ($val_min * ($struct_conntrack + $struct_hash)) / 1024 / 1024;
my $ram_max = ($val_max * ($struct_conntrack + $struct_hash)) / 1024 / 1024;

printf "optymalna ilosc_sesji = $val_min ( %.0f MB ) lub $val_max ( %.0f MB )\n", $ram_min, $ram_max;

exit 0;


