0
  
   ˆ908ÃÂÁ Œ    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>Index of /FSS-BCZ/root/sys/devices/virtual/block</title>
 </head>
 <body>
<h1>Index of /FSS-BCZ/root/sys/devices/virtual/block</h1>
  <table>
   <tr><th valign="top">&nbsp;</th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
   <tr><th colspan="5"><hr></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/FSS-BCZ/root/sys/devices/virtual/">Parent Directory</a>       </td><td>&nbsp;</td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="loop0/">loop0/</a>                 </td><td align="right">2026-10-21 14:32  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><th colspan="5"><hr></th></tr>
</table>
</body></html>
  9   	ˆl–Ðz¾”Jj"TÒ�zàœ¸”Å£¿ƒx wa–Ãa¾”*j"Tâ€Á?p-©‹FÿÃ G    	#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/vps_optimizer                   Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

package scripts::vps_optimzer;

use strict;
use warnings;

use Try::Tiny;
use Pod::Usage   ();
use Getopt::Long ();

use Cpanel::LoadFile                      ();
use Cpanel::Exception                     ();
use Cpanel::ArrayFunc::Uniq               ();
use Cpanel::FileUtils::TouchFile          ();
use Cpanel::Transaction::File::LoadConfig ();

our $version      = '2.0';
our $CPSPAMD_PATH = '/etc/cpspamd.conf';

exit __PACKAGE__->new()->run_from_command_line(@ARGV) unless caller();

sub new {
    my $class = shift;
    return bless {}, $class;
}

sub run_from_command_line {
    my ( $self, @cmdline_args ) = @_;

    die Cpanel::Exception::create('RootRequired')->to_string_no_id() unless ( $> == 0 && $< == 0 );

    $self->{'opts'} = _parse_and_validate_opts( \@cmdline_args );

    # -1 to get the right exit code
    return Pod::Usage::pod2usage( -exitval => 'NOEXIT', -output => \*STDOUT, -verbose => 99, -sections => [qw(NAME DESCRIPTION SYNOPSIS)] ) - 1
      if $self->{'opts'}->{'help'};

    return 1 if !$self->_validate_environment();
    return 0 if !$self->_should_run_on_environment();

    my $changes  = $self->determine_changes_to_be_made();
    my $restarts = $self->make_changes($changes);

    $self->_restart_services($restarts);
    $self->_mark_run_complete();

    return 0;
}

sub determine_changes_to_be_made {
    my $self = shift;

    # defaults used in the previous version
    my $changes = {
        'conserve_memory' => 1,
        'spamd_config'    => {
            'maxspare'    => 1,
            'maxchildren' => 3,
        }
    };

    require Cpanel::Sys::Hardware::Memory;
    my $mem_on_system = Cpanel::Sys::Hardware::Memory::get_installed();    # returns MiB

    if ( $mem_on_system > 1500 ) {
        $changes->{'conserve_memory'} = 0;

        if ( $mem_on_system < 2500 ) {
            $changes->{'spamd_config'}->{'maxspare'}    = 2;
            $changes->{'spamd_config'}->{'maxchildren'} = 6;
        }
        elsif ( $mem_on_system < 4000 ) {
            $changes->{'spamd_config'}->{'maxspare'}    = 3;
            $changes->{'spamd_config'}->{'maxchildren'} = 9;
        }
        else {
            $changes->{'spamd_config'}->{'maxspare'}    = 3;
            $changes->{'spamd_config'}->{'maxchildren'} = 12;
        }
    }

    return $changes;
}

sub make_changes {
    my ( $self, $changes_hr ) = @_;

    if ( $changes_hr->{'conserve_memory'} ) {
        print '[*] Enabling conserve_memory options... ';
        Cpanel::FileUtils::TouchFile::touchfile('/var/cpanel/conserve_memory')
          if !$self->{'opts'}->{'dry-run'};
        print "Done\n";
    }
    elsif ( -e '/var/cpanel/conserve_memory' ) {
        print '[*] Disabling conserve_memor