помогите пожалуйста советом. нужно реализовать пингер который будет слать много пингов на один ип адрес.
сразу говорю, просто любопытно.
сейчас смог осилить следующий вариант - код на перл создает 150 нитей каждая из которых делает 3к пингов без таймаута. по факту прилетает около 3к пакетов в секунду прогружая одно 3ггц ядро впс сервера на 50-60%
в связи с чем есть несколько вопросов
1) можно ли на перле написать чтото что будет выдавать 300-800к пакетов в секунду? вообще пригоден ли для этого перл? вроде как говорят он хорошо справляется с многопоточностью
2) нужно ли как либо оптимизировать ос? сейчас используется центос7 в минимальной установке
3) можете сказать в каком направлении гуглить и что почитать для реализации задуманого?
4) если всеже использовать перл то мне продолжать использовать net::ping или делать это както иначе?
#!/usr/bin/perl -w
use threads;
use Net::Ping;
my $ip = '192.168.1.2';
my $p = Net::Ping->new("icmp",1 ,1024);
my $s = "ping $ip";
my @threads;
for my $i (1..150) {
push @threads, threads->create(\&get_now, $i);
}
foreach my $thread (@threads) {
$thread->join();
}
sub get_now
{
for (0..3000) {
$p->ping($ip);
}
p.s. в коде нехватает одной закрывающей скобки? оО но ведь работает.