Назад | Перейти на главную страницу

Нормально ли сворачивать ЦП VPS этим скриптом?

Это сценарий, он поставляется с 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);
}

Если я запустил этот сценарий на своем ПК, заменив «MY_IP» IP-адресом моего VPS (openVZ, 3 ядра ЦП 2,53 ГГц, 1 ГБ оперативной памяти), загрузка ЦП на сервере увеличится очень быстро. Если я запускаю 3 или 4 экземпляра скрипта одновременно, загрузка процессора достигает 100%. После остановки скриптов загрузка ЦП возвращается к 5-10%.

Это нормально ?? CSF установлен, и он блокирует IP-адреса с более чем 300 подключениями, но, похоже, он не блокирует этот скрипт. Если я проверю netstat -n | grep MY_PC_IP, Я никогда не вижу больше 30-40 подключений, даже при запуске скриптов.

Если вы запустите сценарий на своем сайте, увеличивается ли загрузка ЦП? Что не так с моим сервером или apache?

В чем проблема со 100% загрузкой процессора? У вашего скрипта нет таймаутов, поэтому, очевидно, он полностью загрузит целевой сервер. 100% использование ЦП не означает, что сервер умирает, просто он работает. Действительно ли сервер перестает отвечать или дает сбой?