Köpråd kring server för web hosting

Permalänk
Medlem

Köpråd kring server för web hosting

Hej Swec!

Kör en liten hemsida som jag eventuellt vill öppna upp när den är "klar". Den körs i flask - backend är således i Python (beräkningar sker mer specifikt i pandas), och datat är strukturerat i en MySQL-datbas (eller MariaDB om vi ska vara petiga).

Idag kör jag hemsidan på en RPi4 (med Raspbian), och det funkar väl helt okej. Vid större beräkningar blir det dock kämpigt för den lilla pajen, och vid flera samtidiga användare kan jag tänka mig att det blir en riktigt dålig upplevelse. Sonderar därför terrängen för att uppgradera till en mer kraftfull lösning.

Först och främst undrar jag om någon har en uppfattning kring huruvida det de facto kommer att gå snabbare med en kraftfullare lösning (Ryzen 5000-serien, nvme-ssd osv.), eller om flaskhalsen kanske ligger i något annat (min fula kod eller någon del av python-backend)?

Om vi utgår från att man vinner på en mer kraftfull burk; Hur ser nedan bygge ut? Tanken är att maxa prestanda per kr.

Kom gärna med input på både det ena och det andra - allt är uppskattat och jag har mycket att lära!

https://www.inet.se/datorbygge/b1293959/server

Permalänk
Keeper of the Bamse

Nu kommer jag låta jättetråkig, men jag hade köpt en tråkig Dell eller HP tornserver för ändamålet. De är garanterade att funka under lång tid, och det ingår ECC-minne. Typ en sån här https://www.dustinhome.se/product/5011259384/emc-poweredge-t4... duger nog bra för dina ändamål. Skulle du få slut på minne kan du stoppa in en minnespinne till med matchande ECC-minne.

Behöver du verkligen NVME-disk för din databas, när den ändå får plats på en 250GB ssd?

Visa signatur

i7 10770K, NH-D15. 16GB corsair. RTX 3080. 3TB nvme. Samsung G9. Fractal Torrent Compact. Corsair RM850.
Logitech G pro wireless mouse. Logitech TKL915 wireless. Logitech Pro X Wireless.
Macbook M3 (16GB, 512GB). HP Reverb G2.
www.bamseclockers.com

Permalänk
Medlem

Jag kommer låta ännu tråkigare och säga att det är billigare, bättre, säkrare och proffsigare att hosta i molnet. Jag brukar tipsa om Linode vilka aldrig svikigt mig. Kostar €10 i månaden för minsta maskinen som du nog klarar dig med, €5 extra om du ska ha backups. Mest troligt billigare än elräkningen för maskinen du länkat ovan.

Permalänk
Medlem
Skrivet av Printscreen:

Nu kommer jag låta jättetråkig, men jag hade köpt en tråkig Dell eller HP tornserver för ändamålet. De är garanterade att funka under lång tid, och det ingår ECC-minne. Typ en sån här https://www.dustinhome.se/product/5011259384/emc-poweredge-t4... duger nog bra för dina ändamål. Skulle du få slut på minne kan du stoppa in en minnespinne till med matchande ECC-minne.

Behöver du verkligen NVME-disk för din databas, när den ändå får plats på en 250GB ssd?

Hmm, det låter inte alls särskilt dumt faktiskt. Både prestandamässigt, kontinuitetsmässigt (ECC) och prismässigt! Gällande nvme så tänkte jag bara på att det eventuellt påverkar svarstider, men det är sannolikt marginell skillnad på en SATA-SSD och en Nvme?

Kanske borde specat det, men att den ska kunna köra Linux är ett krav (Arch Linux btw).

Permalänk
Medlem

Jag vill också låta jättetråkig (det är väl en sån dag). Har du tänkt på att du för 7000 SEK kan hosta - t ex - en droplet hos digitalocean i över 10 år?

Edit: Får man inte 750 beräkningstimmar i månaden gratis hos AWS, förresten? Med deras micro-instanser. Borde räcka rätt långt för ett mindre projekt. Edit: Kanske bara är de första 12-månaderna det erbjudandet gäller.

@Ernesto beat me to it.

Permalänk
Medlem
Skrivet av Ernesto:

Jag kommer låta ännu tråkigare och säga att det är billigare, bättre, säkrare och proffsigare att hosta i molnet. Jag brukar tipsa om Linode vilka aldrig svikigt mig. Kostar €10 i månaden för minsta maskinen som du nog klarar dig med, €5 extra om du ska ha backups. Mest troligt billigare än elräkningen för maskinen du länkat ovan.

Tråkigast vinner!

Jag är ju egentligen ute efter bästa lösningen, oavsett setup. Dock så har jag lite förkärlek till att ha egen hårdvara - mest för flexibiliteten. Dock så är det ju mer flexibelt med Linode (eller liknande) om man en dag vill skala upp...

Permalänk
Medlem
Skrivet av felplacrd:

Jag vill också låta jättetråkig (det är väl en sån dag). Har du tänkt på att du för 7000 SEK kan hosta - t ex - en droplet hos digitalocean i över 10 år?

Edit: Får man inte 750 beräkningstimmar i månaden gratis hos AWS, förresten? Med deras micro-instanser. Borde räcka rätt långt för ett mindre projekt. Edit: Kanske bara är de första 12-månaderna det erbjudandet gäller.

@Ernesto beat me to it.

Hmm, bra input! Får kolla närmare på det.

Som kuriosa så försökte jag sätta upp ett (mindre än nuvarande) projekt, på AWS och slutade med att jag lyckades safta på en räkning på USD 50 på två dagar. Fick som tur väl fakturan makulerad, men är efter det lite smårädd för AWS

Permalänk
Medlem

Testa en kort period med en vps och se hur det fungerar. Funkar det kanon så är det ju bra är det inte bra av någon orsak så kan du ju alltid köpa hårdvaran senare. Och som du själv säger, det är rätt enkelt att skala upp/ner efter behov.

Visa signatur

.

Permalänk
Medlem
Skrivet av fragwolf:

Testa en kort period med en vps och se hur det fungerar. Funkar det kanon så är det ju bra är det inte bra av någon orsak så kan du ju alltid köpa hårdvaran senare. Och som du själv säger, det är rätt enkelt att skala upp/ner efter behov.

Väldigt sant! Lägger nog prövopengen på en Linode-maskin (såg att de erbjöd Arch Linux som distroval!) och utvärderar. Det jag är mest fundersam över spontant är öppning av sidan mot webben, men det ger sig nog!

EDIT: Stort tack för hjälpen allesammans - mycket uppskattat!

Permalänk
Keeper of the Bamse
Skrivet av taryup:

Hmm, det låter inte alls särskilt dumt faktiskt. Både prestandamässigt, kontinuitetsmässigt (ECC) och prismässigt! Gällande nvme så tänkte jag bara på att det eventuellt påverkar svarstider, men det är sannolikt marginell skillnad på en SATA-SSD och en Nvme?

Kanske borde specat det, men att den ska kunna köra Linux är ett krav (Arch Linux btw).

Du håll i hatten men den servern jag länkade har faktiskt en mekanisk hårddisk Dock är ju det fina i kråksången att det mest accessade datan i din databas kommer ju ligga i RAM, samma med din applikation.

Sen är ju söktiden på en modern 7200-hdd typ 10ms, och eftersom du ändå kommer introducera datat för internet så blir det ju 10-100ms latens bara där, så liiite till borde inte skada din prestanda nämnvärt.

På större databaser med väldigt stora index kommer flashbaserad lagring gagna prestandan, men är databasen så liten att du planerade att köra den på en 250gb ssd så borde det inte ge en enorm skillnad, i min erfarenhet (MS SQL främst)

Visa signatur

i7 10770K, NH-D15. 16GB corsair. RTX 3080. 3TB nvme. Samsung G9. Fractal Torrent Compact. Corsair RM850.
Logitech G pro wireless mouse. Logitech TKL915 wireless. Logitech Pro X Wireless.
Macbook M3 (16GB, 512GB). HP Reverb G2.
www.bamseclockers.com

Permalänk
Medlem

Om du kör beräkningar med Pandas och Python tror jag också att hur du har kodat kommer spela ganska stor roll. Jag har gjort en hel del beräkningar med Numpy på dataset av storleken 100 Gb och det som oftast är avgörande där är algoritmen. Genom att kolla på vad som egentligen tar tid i exekveringen finns det ganska mycket att vinna i optimeringar av koden också med hjälp av profiling. Om du verkligen behöver göra beräkningar så tror jag att du kommer att tjäna ganska mycket bara genom att optimera koden. Dock ska du inte offra all läslighet till förmån för prestanda...

Även när det kommer till databasen finns ganska mycket att göra för att strukturera data på ett sätt så att det går effektivt att hitta rätt delmängd med en begäran.

Många bäckar små är väl det som gör att upplevelsen blir responsiv utan att behöva lägga väldigt mycket på en kraftig/dyr instans eller hårdvara.

/z

Visa signatur

C2D E6300 @ 3.2HGz 1.2V | Thermalright 120 Extr. | Gainward 8800 GT Golden Sample |Samsung 2x500Gb | Corsair VX 550V | Antec P182 [img]http://valid.x86-secret.com/cache/banner/421648.png[/img]

Permalänk
Medlem
Skrivet av zonar:

Om du kör beräkningar med Pandas och Python tror jag också att hur du har kodat kommer spela ganska stor roll. Jag har gjort en hel del beräkningar med Numpy på dataset av storleken 100 Gb och det som oftast är avgörande där är algoritmen. Genom att kolla på vad som egentligen tar tid i exekveringen finns det ganska mycket att vinna i optimeringar av koden också med hjälp av profiling. Om du verkligen behöver göra beräkningar så tror jag att du kommer att tjäna ganska mycket bara genom att optimera koden. Dock ska du inte offra all läslighet till förmån för prestanda...

Även när det kommer till databasen finns ganska mycket att göra för att strukturera data på ett sätt så att det går effektivt att hitta rätt delmängd med en begäran.

Många bäckar små är väl det som gör att upplevelsen blir responsiv utan att behöva lägga väldigt mycket på en kraftig/dyr instans eller hårdvara.

/z

Tack för bra svar! Har kollat en hel del på att försöka optimera koden. Än så länge verkar det vara att läsa från SQL in i pandas som tar tid. Då det är marknadsdata så funderar jag på att strukturera den i filer istället, typ en fil per instrument. Filerna är ju med fördel typ feather eller något annat sådant format, tänker jag.

Hur som så drog jag igång en Linode-instans med billigaste möjliga alternativet till en början (typ 100 spänn i månaden). Upplever det redan som snabbare, och finns ju vissa andra fördelar att kunna köra Arch Linux x64 istället för Raspian ARM.