Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?

Ahoj, chtěl bych se zeptat na váš názor, co si myslíte že bude rychlejší pro web crawlera napsaného v Pythonu.
4x Raspberry Pi 4 - 4GB verze, nebo v Intel NUC 4x virtualní stroj, případně 4 instance v Kubernetes (ve kterém ještě neumím) na jednom fyzickem stroji? 4 Pi 4GB se zdrojema a kartama vyjdou jen o trochu levněji, ale...

otázka je v tuhle chvíli síťová aktivita.. internet mám 100 Mbit, ale napadá mě jestli třeba ty Pi nemůžou benefitovat že mají každý svůj 1 Gbit port, i když jsou pomalejší na CPU. NUC s i5 (4C/8T) bude mnohem výkonější i když udělám 4x VM s 2 thready každý, ale sdílí jeden port a napadá mě jestli tam pak nebude vznikat nějaký čekání a přehlcenost množstvím paketů, IP adres nebo tak něco?
Třeba je to blbost ale napadá mě připodobnění k HDD že tam to s menšímy soubory taky zpomaluje IOPS. A ještě na ně bude 4x více požadavků.

Ukládat se do databaze na stejné síti budou až větší kusy a rovnou z RAM, takže v případě Pi by neměl být problém že system startuje z SD.
4x to chci pouštět, protože to lépe vytíží linku. Asi by se ten program dal napsat lépe aby to zvládl s jedním spuštěním, ale z budoucího hlediska je to lepší mít škálovatelný a taky nejsou prostoje když se na jednom něco pokazí. Ještě přidávám nákres jak by to mohlo vypadat.

« Poslední změna: 08. 07. 2021, 17:55:29 od YourDog »


Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #1 kdy: 08. 07. 2021, 23:06:37 »
V první řadě záleží, co přesně bude ten web crawler dělat.

RDa

  • *****
  • 2 709
    • Zobrazit profil
    • E-mail
Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #2 kdy: 08. 07. 2021, 23:31:17 »
ale napadá mě jestli třeba ty Pi nemůžou benefitovat že mají každý svůj 1 Gbit port

Nevidim ze bys mel potrebnou konektivitu ani na jednu stranu - uzke hrdlo mas v pripojce na internet. Az ji zvednes nad 1Gb/s, tak bude uzke hrdlo pripojeni k databazi, ktere taky musis zvednout nad 1Gb/s, protoze pochybuji ze mas jinej switch. Pak se da bavit o tom, ze 4 stroje budou lepsi, nez jeden pripojeny beznym 1Gb/s.

A jak psal Ondrej, zalezi co to bude delat - jaky je pomer v objemu mezi vstupem/vystupem, jake jsou latence - dokazes tu ulohu vytizit aby te omezovalo CPU, nebo to bude omezeno jednou ze siti - interni/externi.

Celkove se takoveto veci nedelaji stylem "napisu dotaz na root", ale udelas si benchmarky a srovnas to - pokud nemas zadnou predeslou zkusenost.

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #3 kdy: 09. 07. 2021, 04:48:51 »
ale napadá mě jestli třeba ty Pi nemůžou benefitovat že mají každý svůj 1 Gbit port

Nevidim ze bys mel potrebnou konektivitu ani na jednu stranu - uzke hrdlo mas v pripojce na internet. Az ji zvednes nad 1Gb/s, tak bude uzke hrdlo pripojeni k databazi, ktere taky musis zvednout nad 1Gb/s, protoze pochybuji ze mas jinej switch. Pak se da bavit o tom, ze 4 stroje budou lepsi, nez jeden pripojeny beznym 1Gb/s.

A jak psal Ondrej, zalezi co to bude delat - jaky je pomer v objemu mezi vstupem/vystupem, jake jsou latence - dokazes tu ulohu vytizit aby te omezovalo CPU, nebo to bude omezeno jednou ze siti - interni/externi.

Celkove se takoveto veci nedelaji stylem "napisu dotaz na root", ale udelas si benchmarky a srovnas to - pokud nemas zadnou predeslou zkusenost.

Tak já zas nejsem úplnej jantar, jen dělám v jiné oblasti a tohle je spíš hobby projekt, že se učím dělat s daty/texty a tím crawlerem je chci sbírat. Už mi funguje na desktopu (cca 25mbps)... na RPi3 stejnej program beží tak 50-60% rychlostí, ale ty operace nevytežují CPU a tak nevím proč je to pomalejší. To Pi3 má jen 300 mbit port a tak mě napadlo, jestli kromě maximální rychlosti není třeba i limit na maximální počet spojení nějaký buffer nebo něco... s tím třeba měly v minulosti problém některý routery že měly malou NAT tabulky a při stahovani P2P při velkém počtu spojení se to prostě odpojilo...

Je pravda že ty VM můžu zkusit aniž bych něco z toho kupoval a pak uvidim jestli je to společně 4x rychlejší a sežere to celých 100 mbit nebo to bude mít společně rychlost jen jako ta jedna instance. Ale více Pi4 nezkusím aniž bych je koupil.

Jinak DB je ted na 1Gbit ale do té se tak často nepřistupuje tam se jednou za čas nahraje velkej soubor a do budoucna chci upgradovat na více portů, bud koupím kartu nebo to pak utahne novy Synology s M.2 cache.

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #4 kdy: 09. 07. 2021, 05:04:35 »
V první řadě záleží, co přesně bude ten web crawler dělat.

Klasicky jako třeba seznambot, chodit na různé stránky a ukládat je do DB pro další zpracování...v průměru je velikost asi 55kb. Jak jsem psal výše, ono to Pi3 na kterém jsem to testoval jede pomaleji, ted je otazka proč, když se to při testu nikam neukladalo jen do RAM. Asi to bude chtit zkusit koupit alespon jedno to Pi4 a napsat si nějaky benchmark.


Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #5 kdy: 09. 07. 2021, 09:20:02 »
Aj toto je riesenie :

VMware ESXi Free Hypervisor - bezplatny a podporovany na Intel NUC zariadeniach, nie si obmedzovany OS, nainstalujes si OS aky len chces. Niektore NUC maju M.2 (2280), PCIe x4 Gen 4 NVME (vacsi vykon ako RPi) a SATA port, takze das viac diskov do vnutra a mozes ich pridelovat virtualom.
Jednoducha sprava virtualnych masin cez prehliadac a samozrejme tvorba snapshotov, ked chces nieco testovat a vratit sa o krok spat, co na fyzickom hardveri neurobis (iba image disku), na virtuale bez problemu, par klikov. Kazdemu virtualu mozes dat az 8GB RAM :
VM1 (8GB RAM), napr. DB1 (M.2 PCIe x4 Gen 4 NVME), NIC1, OS1
VM2 (8GB RAM), napr. DB2 (M.2 PCIe x4 Gen 4 NVME), NIC2, OS2
VM3 (8GB RAM), napr. webserver1 (SATA SSD), USB NIC1, OS3
VM4 (8GB RAM), napr. webserver2 (SATA SSD), USB NIC2, OS4

Staci dat do vyhladavaca "Intel NUC VMWare Home Lab" a najde ti napr. velmi dobru stranku https://williamlam.com
https://williamlam.com/2021/01/esxi-on-11th-gen-intel-nuc-panther-canyon-tiger-canyon.html

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #6 kdy: 09. 07. 2021, 09:30:39 »
Jaký důvod je 4x ve virtuálu? Nelze to spustit vícekrát/ve více procesech? Nebo jen lehké kontejnery lxc?

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #7 kdy: 09. 07. 2021, 10:39:48 »
To bol len priklad. Virtualov moze byt kludne viac a s roznymi OS napr. 32bit/64bit Linux/Unix/BSD/Win/MacOS X/Solaris/Other...

Priklad2:

VM1 (4GB RAM), napr. DB1 (M.2 PCIe x4 Gen 4 NVME), NIC1, OS1
VM2 (4GB RAM), napr. DB2 (M.2 PCIe x4 Gen 4 NVME), NIC2, OS2
VM3 (4GB RAM), napr. webserver1 (SATA SSD), USB NIC1, OS3
VM4 (4GB RAM), napr. webserver2 (SATA SSD), USB NIC2, OS4
VM5 (4GB RAM), napr. webserver3 (M.2 PCIe x4 Gen 4 NVME), NIC1, OS5
VM6 (4GB RAM), napr. webserver4 (M.2 PCIe x4 Gen 4 NVME), NIC1, OS6
VM7 (4GB RAM), napr. webserver5 (SATA SSD), USB NIC1, OS7
VM8 (4GB RAM), napr. webserver6 (SATA SSD), USB NIC2, OS8

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #8 kdy: 09. 07. 2021, 10:59:22 »
To je mi jasné, ale ptám se autora dotazu, k čemu virtuály pro crawling webu.

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #9 kdy: 09. 07. 2021, 11:25:05 »
To je mi jasné, ale ptám se autora dotazu, k čemu virtuály pro crawling webu.
To je asi úplně jedno. Stejně všechno pojede s jednou veřejnou IP adresou (pochybuju, že by jich měl víc), takže se snadno a rychle dostane na blacklisty a providerovi začnou chodit stížnosti. Hodně štěstí!

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #10 kdy: 09. 07. 2021, 12:45:48 »
To je mi jasné, ale ptám se autora dotazu, k čemu virtuály pro crawling webu.
To je asi úplně jedno. Stejně všechno pojede s jednou veřejnou IP adresou (pochybuju, že by jich měl víc), takže se snadno a rychle dostane na blacklisty a providerovi začnou chodit stížnosti. Hodně štěstí!

neni problem mit temer neomezene mnoho IP adres pres placenou proxi

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #11 kdy: 09. 07. 2021, 14:42:52 »
To je mi jasné, ale ptám se autora dotazu, k čemu virtuály pro crawling webu.
Kvuli škálovatelnosti a proto že se více instancema vykrývají hluchá místa jako timeouty, crashe a neefetivní kod. Ale je pravda že by to mohlo fungovat stejně když to teď pustím 4x na jednom stroji, ale chci mít možnost to pustit na více strojích, asi by bylo lepší neučit se z toho udělat kubernetes balík v dnešní době.

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #12 kdy: 09. 07. 2021, 15:15:05 »
To je mi jasné, ale ptám se autora dotazu, k čemu virtuály pro crawling webu.
To je asi úplně jedno. Stejně všechno pojede s jednou veřejnou IP adresou (pochybuju, že by jich měl víc), takže se snadno a rychle dostane na blacklisty a providerovi začnou chodit stížnosti. Hodně štěstí!
Jo, takže se na to mam rovnou vykašlat?
Já nevím jakou máš zkušenost, ale to mi přijde jak 90. léta. Ja mam zkušenost že i při bezohledném scrapování dat z jednoho webu to nikoho nezajímá. Bud mají tak velkej provoz že není možný si ani všimnout a nebo nemají nástroje tohle poznat, to by se ten web musel šíleně zbrzdit aby to někdo začal řešit.

Věc druhá, já nedělám žádnej scraper webů, ale slušnej crawler co respektuje robots.txt a návštěvy na stejné adrese dělá s mezerama jako ostatní akceptovaní crawleři.
A co se týče IP, ano mam jednu neveřejnou která jednou za čas rotuje, ale VPS stojí pár korun a u providera se taky za nějaky poplatek da koupit 5 IP. Proxy mam taky vyzkoušené, ale to je pomalejší a v případě slušného chování to asi ani není potřeba.

Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #13 kdy: 09. 07. 2021, 15:19:59 »
To bol len priklad. Virtualov moze byt kludne viac a s roznymi OS napr. 32bit/64bit Linux/Unix/BSD/Win/MacOS X/Solaris/Other...

Priklad2:

VM1 (4GB RAM), napr. DB1 (M.2 PCIe x4 Gen 4 NVME), NIC1, OS1
VM2 (4GB RAM), napr. DB2 (M.2 PCIe x4 Gen 4 NVME), NIC2, OS2
VM3 (4GB RAM), napr. webserver1 (SATA SSD), USB NIC1, OS3
VM4 (4GB RAM), napr. webserver2 (SATA SSD), USB NIC2, OS4
VM5 (4GB RAM), napr. webserver3 (M.2 PCIe x4 Gen 4 NVME), NIC1, OS5
VM6 (4GB RAM), napr. webserver4 (M.2 PCIe x4 Gen 4 NVME), NIC1, OS6
VM7 (4GB RAM), napr. webserver5 (SATA SSD), USB NIC1, OS7
VM8 (4GB RAM), napr. webserver6 (SATA SSD), USB NIC2, OS8

Ok diky.. Jak je na tom VMWare s vykonem? Já mam jen zkušenost s Hyper-V a Virtual Boxem a ten Box je pomalej, ale Hyper-V jede vícemeně jak na daném HW.

RDa

  • *****
  • 2 709
    • Zobrazit profil
    • E-mail
Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
« Odpověď #14 kdy: 09. 07. 2021, 15:37:12 »
To je mi jasné, ale ptám se autora dotazu, k čemu virtuály pro crawling webu.
Kvuli škálovatelnosti a proto že se více instancema vykrývají hluchá místa jako timeouty, crashe a neefetivní kod. Ale je pravda že by to mohlo fungovat stejně když to teď pustím 4x na jednom stroji, ale chci mít možnost to pustit na více strojích, asi by bylo lepší neučit se z toho udělat kubernetes balík v dnešní době.

V pripade stahovani z netu, neni problem pustit nekolik vlaken na 1 cpu, protoze ty sitove reakcni doby jsou tak dlouhe ze klidne muzete tahat desitky pokud ne stovky domen naraz nez zacnete narazet na limity CPU. Kopirovani dat nebo jemne parsovani v rozumnem jazyce nevytezuje cpu. Idealni stav je, aby jste vytizil jak pripojeni tak CPU, s tim ze mit silnejsi CPU je snazsi nez lepsi linku.. a od toho se odviji optimalizace a architektura systemu (napr. cast co taha data, a cast co je parsuje je vhodne mit oddelene, je lze mit pustene takyy v asymetrickem pomeru).

Ad zda si toho provozovatel vsimne: samozrejme ze ano - po stazeni par set GB ze spatne nakonfigurovaneho serveru (povolene Indexes) provozovatel zavedl dodatecnou autentizaci na heslo. Ale rekl bych ze za to nemuzu jenom ja, protoze informace o te chybe byla prvne zindexovana Googlem, takze mnoho dalsich lidi, co neco opravuje, te vlastnosti nejspis vyuzilo a pak uz to bylo napadne.