Hur Mycket Prestanda Behöver Din Cloud Server Verkligen Behöver?

0
242
agsandrew/Shutterstock

Mest moln leverantörer dela sitt utbud genom att antalet processorkärnor och mängden RAM-minne. Behöver du en stor multicore-server, eller en hel flotta av dem? Här är hur att gå tillväga för att mäta din server verkliga prestanda.

Gör Din Ansökan Behöver för att “Skala”?

Det är väldigt vanligt för tech startups för att dra till “skalbar” arkitektur—som är, att bygga din server arkitektur på ett sådant sätt att varje del av det kan skala för att möta alla belopp av efterfrågan.

Detta är bra och allt, men om du inte upplever att mängden verkliga trafik, kan det vara overkill (och dyrare) för att bygga skalbara arkitektur med avsikt att trappa upp till en miljon användare om du bara hantera ett par tusen.

Du kommer att vilja prioritera att bygga en bra app över att bygga särskilda infrastruktur. De flesta applikationer som körs förvånansvärt bra med bara ett par enkla-att-hantera standard-servrar. Och om din app någonsin gör det stora, tillväxt kommer sannolikt att ske under loppet av ett par månader, vilket ger dig gott om tid (och pengar) för att fungera på din infrastruktur.

Skalbar arkitektur är fortfarande en bra sak att bygga runt om, särskilt på tjänster som AWS där autoscaling kan användas för att skala ner och spara pengar under icke-rusningstid.

RELATERAT: Hur Att Påskynda en Långsam Webbplats

Du Måste Planera för toppbelastning

Den mest viktig sak att hålla i åtanke är att du inte tänker på genomsnittlig belastning, du planerar runt toppbelastning. Om dina servrar inte kan hantera din toppbelastning under dagen, det har de inte tjänat sitt syfte. Du måste se till att du mäter och förståelse belastningen på servern över tid, snarare än att bara ta en titt på CPU-användningen i ett enda ögonblick.

Skalbar arkitektur komma väl till pass här. Att snabbt kunna snurra upp en plats instans (vilket är ofta mycket billigare) att ta del av lasten av dina viktigaste servrar är en mycket bra design paradigm, och gör det möjligt för dig att sänka kostnaderna betydligt. Trots allt, om du bara behöver två servrar för några timmar en dag, varför betala för att köra över en natt?

De flesta stora moln leverantörer har också skalbara lösningar för behållare som Hamnarbetare, vilket gör att du kan skala upp saker automatiskt eftersom din infrastruktur kan göras lättare.

RELATERAT: Vad Gör Docker Göra, och När Bör Du Använda Det?

Hur Mycket Prestanda Behöver Din Server Att Ge?

Det är en svår fråga att svara på exakt, alla applikationer och webbplatser är olika, och allas server hosting är olika. Vi kan inte ge dig ett exakt svar på vilken server som passar din användning fall det bästa.

Vad vi kan göra är att berätta hur du ska gå till om att experimentera själv för att hitta vad som fungerar bäst för just din ansökan. Det handlar om att köra din ansökan under verkliga förhållanden, och mätning av vissa faktorer för att avgöra om du är över – eller underloaded.

Om din ansökan är överbelastad, du kan snurra upp en andra server och använda en lastbalanserare för att balansera trafik mellan dem, såsom AWS är Elastisk lastbalanserare eller Fastly s Load Balancing service. Om det är betydligt underloaded, du kan kanske spara några dollar genom att hyra en billigare server.

CPU-Användning

CPU-användningen är förmodligen den mest användbara mått att överväga. Det ger dig en allmän översikt av hur överbelastade servern är; om din CPU-användning är för hög, server drift kan tvärstopp.

CPU-användning är synliga i toppen, och ladda genomsnitt för de senaste 1, 5, och 15 minuter syns också. Det blir data från /proc/loadavg/, så du kan logga in detta till en CSV-fil och skapa diagram i Excel om du vill.

Mest moln leverantörer kommer att ha en mycket bättre grafen för detta ändå. AWS har CloudWatch, som visar CPU-användning för varje instans enligt EC2 statistik:

Google Cloud Platform visar en snygg graf under “Övervakning” – fliken i den instans info:

I båda diagrammen kan du justera tidsplanen för att visa CPU-användning över tid. Om denna graf är att ständigt slå 100%, du kanske vill titta på uppgradering.

Tänk dock på, att om din server har flera kärnor, CPU-användning kan fortfarande bli “överbelastad”, medan grafen är ingenstans nära 100%. Om din CPU-användning är fast nära 50%, och du har en dual-core-servern, är det troligt att din ansökan är oftast enda gängade, och inte ser några resultat förmåner.

RAM-Användning

RAM-användning är mindre sannolikt att variera mycket, så det är till stor del en fråga om huruvida eller inte du har tillräckligt för att köra en viss uppgift.

Du kan visa minnesanvändning snabbt i toppen, som visar för närvarande allokerat minne för varje process i “RES” – kolumnen, samt visning användning som en andel av det totala minnet i “%MEM” – kolumnen.

Du kan tryck på Skift + M för att sortera %MEM, som listar ut de mest minneskrävande processer.

Obs, minne hastigheten påverkar CPU-hastighet till en viss grad, men att det sannolikt inte är den begränsande faktorn om du kör ett program som kräver ren metall och den snabbaste hastigheten möjligt.

Lagringsutrymme

Om din server körs ut i rymden, det kan krascha vissa processer. Du kan kontrollera disk för användning med:

df -H

Detta visar en lista över alla enheter som är anslutna till ditt exempel, av vilka vissa kan inte vara nyttigt för dig. Leta efter största (troligen är /dev/sda1/), och du kan se hur mycket som används.

Du behöver för att göra en effektiv användning av log rotation, och se till att det finns ingenting att skapa överflödiga filer på ditt system. Om det är, du kanske vill begränsa det till att endast lagra de senaste åren filer. Du kan radera gamla filer med hjälp av hitta med tiden parametrar anslutna till ett cron-jobb som går en gång i timmen:

0 * * * * hittar ~/backups/ -typ f -mmin +90 -exec rm -f {} ;

Detta script tar bort alla filer i mappen ~/backups/ mapp som är äldre än 90 minuter (används för en Minecraft server som gör 1GB+ storlek säkerhetskopior varje 15 minuter, för att fylla upp en 16GB SSD). Du kan också använda logrotate som uppnår samma effekt mer elegant än så här hastigt skrivna kommandot.

Om du lagra massor av filer kanske du vill överväga att flytta dem till en hanterad tjänst lagring som S3. Det kommer att vara billigare än att ha enheter anslutna till din instans.

RELATERAT: Hur att installera Logrotate på Linux (för att Hålla Din Server Körs Ut i Rymden)

Nätverkets Hastighet

Det är inte ett bra sätt att övervaka detta inbyggt, så om du vill få ett bra kommando utgång, installera sar från sysstat:

sudo apt-get install sysstat

Aktivera den genom att redigera /etc/default/sysstat och inställningen “AKTIVERAD” till true.

Gör så övervakar ditt system och genererar en rapport varje 10 minuter, roterande ut dem en gång om dagen. Du kan ändra detta beteende genom att redigera sysstat crontab /etc/cron.d/sysstat.

Du kan samla dem ett genomsnitt av trafiken på nätet med -n-flaggan:

sar -n DEV 1 6

Den, rör den till svans för trevligare effekt:

sar -n-DEV-1 6 | svans -n3

Det visar ett genomsnitt av paket och kilobyte som skickas per sekund för varje nätverkskort.

Det är lättare att använda ett GRAFISKT gränssnitt för detta, men, CloudWatch har en “NetworkIn” och “NetworkOut” statistik för varje exempel:

Du kan lägga till en dynamisk etikett med en SUMMA-funktionen, som visar det totala nätverk ut i byte för en given tidsperiod.

Om du inte är överbelastning av nätverket är svårt att bedöma, de flesta av tiden, du är begränsad av andra saker, till exempel om din server kan hålla upp med förfrågningar, innan oroande om bandbredd.

Om du är riktigt orolig för trafik eller vill tjäna stora filer, bör du överväga att få ett CDN. Ett CDN kan ta en del last av din server och göra det möjligt för dig att tjäna statisk media mycket effektivt.