É normal colapsar a CPU do VPS com este script?

1

Este é o script, vem com mod_evasive:

#!/usr/bin/perl
#test.pl: small script to test mod_dosevasive's effectiveness
use IO::Socket;
use strict;

for(0..100) {
   my($response);
   my($SOCKET) = new IO::Socket::INET( Proto => "tcp",
                               PeerAddr=> "MY_IP:80");
   if (! defined $SOCKET) { die $!; }
   print $SOCKET "GET /?$_ HTTP/1.0\n\n";
   $response = <$SOCKET>;
   print $response;
   close($SOCKET);
}

Se eu rodar esse script no meu PC, substituindo "MY_IP" pelo ip do meu VPS (openVZ, 3 núcleos do processador de 2.53Ghz, 1Gb de ram), a carga da CPU no servidor aumenta muito rápido. Se eu executar 3 ou 4 instâncias do script ao mesmo tempo, a carga da CPU atingirá 100%. Quando os scripts são interrompidos, o uso da CPU volta para 5-10%.

É normal? O CSF é instalado e bloqueia IPs com mais de 300 conexões, mas não parece bloquear esse script. Se eu verificar netstat -n | grep MY_PC_IP , nunca vejo mais de 30 ou 40 conexões, mesmo ao executar os scripts.

Se você executar o script em seu site, o uso da CPU aumenta? O que há de errado com meu servidor ou apache?

    
por Tom O'Connor 30.08.2011 / 10:36

1 resposta

1

Como o carregamento de 100% da CPU é um problema? Seu script não tem tempo limite, então, obviamente, ele carregará totalmente o servidor de destino. 100% do uso da CPU não significa que o servidor está morrendo, apenas que está funcionando. O servidor realmente não responde ou falha?

    
por 30.08.2011 / 17:45