Fórum Root.cz

Hlavní témata => Server => Téma založeno: YourDog 08. 07. 2021, 17:53:12

Název: Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: YourDog 08. 07. 2021, 17:53:12
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.

(https://i.stack.imgur.com/dkIyc.jpg)
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: Ondrej Nemecek 08. 07. 2021, 23:06:37
V první řadě záleží, co přesně bude ten web crawler dělat.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: RDa 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.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: YourDog 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.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: YourDog 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.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: skskyper2 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
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: redustin 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?
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: skskyper2 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
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: redustin 09. 07. 2021, 10:59:22
To je mi jasné, ale ptám se autora dotazu, k čemu virtuály pro crawling webu.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: BobTheBuilder 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í!
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: A.P.Hacker 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
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: YourDog 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ě.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: YourDog 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.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: YourDog 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.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: RDa 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.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: PanVP 09. 07. 2021, 15:53:07
Suma vstupu - balast = 10% výstupu?
Tak bych to dal na ty RPi.
Jsou místa, kde můžeš crawlit zdarma, aniž bys někoho obtěžoval. Možná v noci na konektivitě ve škole, v kavárně, v práci na WIFI pro zaměstnance, u babči na DSL. RPi se vleze všude. To neobtěžoval je zásadni! Někam jebneš crawluj.csv a výsledky zazipuješ a uploaduješ někam. WatchDoga uděláš třeba z ESP.

Za 300 jsou RPi like ovoceazeleniny. Zcrawlovaná data sypej na ramdisk, nic nezapisuj. Udělej si cron.job na úlohy, co mají přijít do cronu, update.job pro aktualizace crawlera...

Kdysi jsem takhle crawlil, ošustil jsem všechny stránky v čr za měsíc a půl. Jen ne do hloubky.

Dneska bych zase použil RPI, zamontoval je do 1U case a prdnul to do DC6. Za litr měsíčně si to žije svým životem na 1GbE.

Těch věcí, kolik se do 1U vleze, je hrozně moc. Konektivitu dostaneš IPv6 zadarmiko, zbytek NAT.

RPi můžeš nahradit VPS, ale tam bych použil filtr. Tj. jde o to získat data, ořezat je a okamžitě poslat dál. VPS filtruje balast, za 200Kč získáš získáš konektivitu, předzpracuješ data, aby to prolezlo přes DSL a zpracuješ doma.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: PanVP 10. 07. 2021, 15:37:21
Doplnění: Zrovna včera jsem viděl reklamu na VPS za 29 Kč (běžně tak 100 Kč).
Nějaké směšné systémové prostředky (tuším necelé GB RAM a disk do pěti GB), ale mělo veřejnou IP a za 30 Kč se jich dá pustit třeba deset.

Něco podobného by šlo i na Amazoním cloudu, generovat si je automaticky. Ale u Amazoního cloudu pozor na přenosy, oni mají sice "neomezenou" konektivitu, ale platí se tam nějaký 1 šprušlík za XY přenesených dat. Když těch dat přeneseš hodně, náklady lezou strmě nahoru. Nicméně Amazoní i jiné Cloudy běžně dávají nějaké drobné "na vyzkoušení služeb". Pokud by byly třeba 200 Kč měsíčně moc...

EDIT: Pokud by ses do toho pustil, dej vědět, jak získáváš seznam webových stránek v ČR. Já šel tupou cestou prohledávání seznamu vydaných SSL certifikátů a druhou "horší" cestou skenování "českých" IPv4 adres. To je bohužel celkem bolest, protože adresní prostor IPv4 je poměrně rozbitý a navíc, pokud je na nějaké webové adrese víc serverů, bez správného požadavku máš peška. Řešení je samozřejmě po adresy, na kterých webový server žije, zkusit reverzní DNS dotaz. No někdy to pomůže... Docela rád bych znal tvojí cestu.

Doplnění: Nezkoušej Crawlovat Google, crawlování nesnáší a při pokusu o vyhledávání bys pak musel řešit pokaždé captcha a navíc tě můžou zařadit na blacklist...což někteří poskytovatelé hodně špatně nesou. Jestli se podobně chová seznam nebo Bing nevím. Mimo to, chování Google se mohlo změnit. Už to jsou léta, co jsem to provozoval....jéééé chtěl jsem udělat vyhledávač, abych konkurovatl Google a měl vlastní DuckDuck  ;D
 
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: YourDog 10. 07. 2021, 17:19:04
Díky za info, napíšu do zprávy...
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: luvar 10. 07. 2021, 23:23:24
Tri veci, co ma napadaju k teme:
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: ondrah 13. 07. 2021, 14:51:56
Doplnění: Nezkoušej Crawlovat Google, crawlování nesnáší a při pokusu o vyhledávání bys pak musel řešit pokaždé captcha a navíc tě můžou zařadit na blacklist...což někteří poskytovatelé hodně špatně nesou. Jestli se podobně chová seznam nebo Bing nevím.

Tohle je snad lepší řešit obecně tím, že budu respektovat robots.txt, ne? Pak nemusím zkoumat, jak to ten který web snáší, crawler to zjistí automaticky.
Název: Re:Je lepší 4x RPi4 nebo 4x VM v i5 NUC pro web crawlera?
Přispěvatel: YourDog 13. 07. 2021, 23:46:07
Doplnění: Nezkoušej Crawlovat Google, crawlování nesnáší a při pokusu o vyhledávání bys pak musel řešit pokaždé captcha a navíc tě můžou zařadit na blacklist...což někteří poskytovatelé hodně špatně nesou. Jestli se podobně chová seznam nebo Bing nevím.

Tohle je snad lepší řešit obecně tím, že budu respektovat robots.txt, ne? Pak nemusím zkoumat, jak to ten který web snáší, crawler to zjistí automaticky.

Crawlování je žádoucí, bez toho by se jinak nic nevyhledalo, nefungovala by ani heureka nic. Ale stále se z toho dělá šedá zóna nebo něco co dělají hackeři/spameři aby získali seznam emailu a podobně a plete se to s bezohledným scrapingem webů a dat, co shazuje weby.
Jinak ten google robots.txt je dost perverzní, to jsem ještě neviděl :D https://www.google.com/robots.txt (https://www.google.com/robots.txt)