Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pinge 1 million IP adresser på 1 minut

1 view
Skip to first unread message

Joe

unread,
Apr 19, 2012, 11:27:11 AM4/19/12
to
Jeg spekulere på hvordan dette kan gøres, hvis man har Linux og PHP
(og MySQL)? Det er ikke et krav, at det skal kunne køre på samme
server (næppe realistisk), men hvad er bedste opsætning?

Jeg har selv tænkt på at have én master PHP process per server, der så
spawner 100 slaves... hver af disse slaves spawner så yderligere 100
sub-slavers... der så igen spawner ping af 100 IP adresser.

Ovenstående er baseret på 1 server, hvilket er urealistisk, da det
ville give 1 million spawned PHP processer - det vil selvfølgelig ikke
fungere.

Jeg har set flere steder, at PCNLT ikke anbefales men man kommer ikke
langt med bare at spawne løs i samme process.

Vi kan selvfølgelig hurtigt blive enige om, at dette først og fremmest
slet ikke skal gøres i PHP, men nærmere kompileret C++ (eller
lignende), men som en start kunne man jo lave en proof-of-concept kode
og så optimere senere - hvor langt kan man komme med alm. PHP spawn?

Leif Neland

unread,
Apr 19, 2012, 4:57:56 PM4/19/12
to
Så vidt jeg kan se er den mindste pakke 64 bytes=512 bit, så uden
kollisioner kræver det mindst 512Mb/s for at komme af med alle dine ping.

Det er den første flaskehals...

Leif


Anders Wegge Keller

unread,
Apr 19, 2012, 5:08:47 PM4/19/12
to
Leif Neland <le...@neland.dk> writes:

> Så vidt jeg kan se er den mindste pakke 64 bytes=512 bit, så uden
> kollisioner kræver det mindst 512Mb/s for at komme af med alle dine
> ping.

ICMP Ping er på 28 bytes.

> Det er den første flaskehals...

Jeg regnede mig frem til ca. 466 kBi/s, men det kan da godt være at
der er smuttet en faktor ud et sted.

Det er nok heller ikke det at sende pakkerne der giver problemet. Det
er snarere at få TCP-stakken til at overleve alle de svar der kommer.

--
/Wegge

Leder efter redundant peering af dk.*,linux.debian.*

Thorbjørn Ravn Andersen, 20120419

unread,
Apr 19, 2012, 5:17:22 PM4/19/12
to
Joe <joes...@gmail.com> writes:

> Jeg spekulere på hvordan dette kan gøres, hvis man har Linux og PHP

Du kender godt "fping"?

http://fping.sourceforge.net/
--
Thorbjørn Ravn Andersen "... plus... Tubular Bells!"

Joe

unread,
Apr 20, 2012, 1:34:36 AM4/20/12
to
>  Det er nok heller ikke det at sende pakkerne der giver problemet. Det
> er snarere at få TCP-stakken til at overleve alle de svar der kommer.

Hvis vi ser bort fra at internettet er et issue.

Det der er mit problem er hvilken måde det skal bygges op på - hvordan
sikre jeg mig, at så mange hosts kan pinges indenfor det givne
interval når det nu er tydeligt at én host/master ikke kan klare det
alene?

Joe

unread,
Apr 20, 2012, 1:35:39 AM4/20/12
to
> > Jeg spekulere på hvordan dette kan gøres, hvis man har Linux og PHP
>
> Du kender godt "fping"?
> http://fping.sourceforge.net/

Ja, men så vidt jeg kan se, så er den ikke spor anderledes en den
normale ping. Jeg har i hvert fald prvøet den og den var ikke
hurtigere til at pinge 100 hosts.

Anders Wegge Keller

unread,
Apr 20, 2012, 3:06:21 AM4/20/12
to
Joe <joes...@gmail.com> writes:

> >  Det er nok heller ikke det at sende pakkerne der giver problemet. Det
> > er snarere at få TCP-stakken til at overleve alle de svar der kommer.
>
> Hvis vi ser bort fra at internettet er et issue.

Det var din lokale TCP-stak.

> Det der er mit problem er hvilken måde det skal bygges op på -
> hvordan sikre jeg mig, at så mange hosts kan pinges indenfor det
> givne interval når det nu er tydeligt at én host/master ikke kan
> klare det alene?

Hvad skal du bruge det til? Er du interesseret i at få et svar
tilbage, og hvis du er, hvor meget skal det så behandles?

En måde at gøre det på, er at springe over den normale TCP-stak, og
bruge en raw socket. Det kræver normalvis root-privilegier på
maskinen, så hvis du ikke har fuld kontrol over maskinen, vil det
ikke være en brugbar mulighed.

Og så lige en enkelt observation fra virkeligheden. Hvis du begynder
at sende ping i det omfang, vil din internetudbyder sandsynligvis
lukke din linie efter ret kort tid og/eller kontakte dig for at høre
hvad du har gang i. Det var ihvertfald hvad der sket for en af mine
kollegaer, under test af en ny IPv6 stak, der blev lavet på den måde.

Thorbjørn Ravn Andersen, 20120420

unread,
Apr 20, 2012, 9:01:53 AM4/20/12
to
Ikke?

Heller ikke hvis du angiver alle 100 hosts på en gang?

Joe

unread,
Apr 20, 2012, 10:29:23 AM4/20/12
to
> > Ja, men så vidt jeg kan se, så er den ikke spor anderledes en den
> > normale ping. Jeg har i hvert fald prvøet den og den var ikke
> > hurtigere til at pinge 100 hosts.
>
> Heller ikke hvis du angiver alle 100 hosts på en gang?

Jo, jeg opdagede det også efter jeg havde skrevet mit indlæg. Det kan
sikkert hjælpe en del, men der er lang vej endnu for at kunne pinge 1
million hosts på 1 minut ;-)

Thorbjørn Ravn Andersen, 20120420

unread,
Apr 20, 2012, 11:38:27 AM4/20/12
to
Du kan jo starte med at prøve, og så se hvor langt du faktisk KAN
komme...
0 new messages