用这个脚本导致VPS CPU崩溃正常吗?

用这个脚本导致VPS CPU崩溃正常吗?

这是脚本,它附带 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”替换为我的 VPS(openVZ、3 个 CPU 核心 2.53Ghz、1Gb RAM)的 IP,服务器中的 CPU 负载会快速增加。如果我同时运行 3 或 4 个脚本实例,CPU 负载将达到 100%。一旦脚本停止,CPU 使用率就会回到 5-10%。

这是正常的吗??CSF 已安装,并且会阻止连接数超过 300 的 IP,但似乎不会阻止此脚本。如果我检查netstat -n | grep MY_PC_IP,即使在运行脚本时,我也从未看到超过 30 或 40 个连接。

如果您针对您的网站运行该脚本,CPU 使用率是否会增加?我的服务器或 Apache 出了什么问题?

答案1

100% 的 CPU 负载怎么会成为问题?您的脚本没有超时,因此显然它会完全加载目标服务器。100% 的 CPU 使用率并不意味着服务器正在死机,只是表示它正在运行。服务器是否真的变得无响应或崩溃了?

相关内容