Vraag Kun je me helpen met mijn capaciteitsplanning?


Dit is een canonieke vraag wat betreft capaciteits planning

Verwant:

Ik heb een vraag over capaciteitsplanning. Kan de Server Fault-community u helpen met het volgende:


  • Wat voor soort server moet ik verwerken? een nummer van gebruikers?
  • Met hoeveel gebruikers kan een server sommige specificaties handvat?
  • Zullen enige serverconfiguratie wees snel genoeg voor mijn use case?
  • Ik bouw een sociale netwerksite: wat voor soort hardware heb ik nodig?
  • Hoeveel bandbreedte heb ik nodig voor een project?
  • Hoeveel bandbreedte zal dat hebben een nummer van gebruikers gebruiken in een toepassing?

131
2018-04-30 19:20


oorsprong




antwoorden:


De Server Fault-community kan u doorgaans niet helpen met capaciteitsplanning - het beste antwoord dat we kunnen bieden is "Benchmark uw code op hardware vergelijkbaar met wat u in de productie zult gebruiken, identificeer eventuele knelpunten, bepaal vervolgens hoeveel van uw workload uw huidige hardware aankan en / of hoeveel hardwarepowerforce u nodig hebt om uw doelworkload te verwerken".


Er zijn een aantal factoren die een rol spelen bij capaciteitsplanning die we niet adequaat kunnen beoordelen op een vraag en antwoord-site:

  • De vereisten van uw specifieke code / software
  • Externe bronnen (databases, andere software / sites / servers)
  • Uw werklast (piek, gemiddeld, wachtrij)
  • De bedrijfswaarde van prestaties (kosten-batenanalyse)
  • De prestatieverwachtingen van uw gebruikers
  • Eventuele service level agreements / contractuele verplichtingen die u mogelijk heeft

Een goede analyse van deze en andere factoren ligt buiten het bereik van een eenvoudige vraag-en-antwoordsite: ze vereisen gedetailleerde kennis over uw omgeving en vereisten die alleen uw team (of een voldoende gecompenseerde consultant) efficiënt kan verzamelen.


Sommige capaciteitsplanning Axioma's

  1. RAM is goedkoop
    Als u verwacht dat uw toepassing veel RAM gebruikt, moet u zoveel RAM-geheugen invoeren als u zich kunt veroorloven / passen.
  2. Schijf is goedkoop
    Als je verwacht veel disk te gebruiken, zou je grote drives moeten kopen - veel van hen.
    SAN / NAS-opslag is minder goedkoop, en zou ook veelal groot in plaats van klein moeten zijn om dure upgrades later te voorkomen.
  3. Workloads groeien in de loop van de tijd
    Stel dat uw behoefte aan resources zal toenemen.
    Houd er rekening mee dat de toename mogelijk niet symmetrisch is (CPU en RAM kunnen sneller stijgen dan schijf) en is mogelijk niet lineair.
  4. Elektriciteit is duur
    Hoewel RAM en schijven aanzienlijk in prijs zijn gedaald, zijn de elektriciteitskosten gestaag gestegen. Al die extra schijven en RAM, om nog te zwijgen van de CPU-kracht, zullen uw elektriciteitsrekening verhogen (of de rekening die u aan uw provider betaalt). Plan dienovereenkomstig.

94
2018-01-17 15:46



Je zou dat volledig moeten laten vallen en de integratie door delen gebruiken! - Gilles
1. En RAM, zoals je suggereert in axioma # 1, is een van die dingen die enorme voordelen heeft. Het verhoogt bijvoorbeeld uw vermogen om caching beter te gebruiken, waardoor u minder databasequery's kunt maken, wat op zijn beurt de belasting van de schijf en de CPU verlicht. Ik ben vaak gefrustreerd door hostingproviders die een snelle CPU aanbieden met hun servers en een minimale hoeveelheid RAM. - Steve Wortham
Ik zou hieraan toevoegen: schijf capaciteit is goedkoop. Schijf prestatie wordt duur. Vooral omdat we de schijfgroottes over een periode van 10 jaar zien groeien, maar de wetten van de natuurkunde zijn niet veranderd. Vuistregel die ik gebruik (vanaf vandaag, juni 2014) is die voor optimale prestaties: 75 IOP's per spil op SATA, 200 IOP's per spil op FC en 1500 IOP's per SSD. Big SATA-schijven geven echt vrij slechte IO-ratio's per gigabyte. - Sobrique


Planning van virtuele machinetelling

Als het gaat om het berekenen van hoeveel VM's je zou moeten plannen op een enkele host, zijn er eigenlijk geen echt goede vuistregels. In feite is er maar één, en het is maar een soort van goed:

Virtual-Machine-tellingen worden meestal begrensd door RAM, behalve wanneer dat niet het geval is.

Dat is niet erg behulpzaam. Als die VM's low-CPU-applicaties draaien, dan zal je limiter gebaseerd zijn op RAM. Elk VM-platform heeft zijn eigen mogelijkheden om RAM over te schrijven, dus het is niet zo eenvoudig als TOTAL_RAM / Per-VM-RAM = MachineCount, maar dat aantal is een goed planningsitem.

Maar wat als uw VM's dingen doen naast low-CPU packet-slinging?


Tellingen van virtuele machines worden begrensd door zeven afzonderlijke bronnen die beschikbaar zijn voor de hostcomputer:

  • hypervisor VMware, Xen, HyperV, KVM, wat dan ook. Elk heeft zijn eigen functies die van invloed zijn op het tellen. Sommige zijn erg goed in deduplicatie op de geheugenpagina, andere niet zo veel. Sommige staan ​​niet toe dat de CPU-capaciteit wordt overschreven, sommige doen dat wel.
  • CPU Core Speed Dit beperkt de maximale single-threaded prestaties die een VM kan uitvoeren. 36 cores van een 1,8 GHz CPU kunnen 64,8 GHz CPU op een host zijn, maar geen enkele thread zal sneller dan 1,8 GHz werken.
  • CPU Core Count Dit beschrijft met kernsnelheid het plafond van maximale CPU-prestaties die je kunt ervaren.
  • Systeem-RAM Zoals hierboven beschreven, beperkt dit het aantal VM's dat u kunt uitvoeren. Bepaalde hypervisors zijn beter dan anderen op zaken als deduplicatie op de geheugenpagina, dus als je 100 identieke VM's gebruikt, kun je veel meer van deze op dergelijke deduplicatiesystemen verpakken dan wanneer je 100 compleet verschillende VM's zou gebruiken.
  • Schijfgrootte Elke OS-afbeelding neemt een bepaalde hoeveelheid ruimte in beslag. Je hebt voldoende ruimte nodig om alles op te slaan. Daarom stelt schijfgrootte een bovengrens in voor hoeveel VM's u kunt hosten.
  • I / O-bandbreedte De schijf onder de VM's heeft een maximum van het aantal I / O's per seconde dat het kan verwerken. Als je er teveel in gooit, zullen systemen vastlopen totdat de I / O klaar is. Dit legt een bovengrens voor het aantal I / O-verbruikende VM's dat u kunt uitvoeren.
  • Netwerkbandbreedte Voor netwerk-gebruikende VM's zal de beschikbare netwerkbandbreedte een maximum instellen voor het aantal dergelijke VM's dat u op een bepaalde host kunt uitvoeren.

Dit alles kan het ding zijn waar je over struikelt, het hangt allemaal af van wat je doet met je VM's. Sommige dingen om te onthouden:

  • Er bestaat niet zoiets als een generiek systeem.
  • Er bestaat niet zoiets als een generieke webserver, omdat de toepassingscode kan worden uitgevoerd vanaf nauwelijks-beweegt-de-naald CDN-stijl serveren, tot grote deep-crack dingen zoals video transcodering.
  • Er bestaat niet zoiets als een generieke databaseserver. Deze kunnen lopen van kleine systemen die alleen worden gebruikt voor sessie-status-tracking, tot zeer grote systemen.

Om erachter te komen hoeveel VM's u in een host-systeem kunt inpakken, moet u weten hoe uw systemen werken en wat ze vereisen om goed te draaien. Zodra je dat weet, kun je de planning van de telling doen. En nog beter, zoek uit hoe vlezig je hebt om je host-systemen te maken!


42
2018-02-06 20:32



gebruik vooral op vm gebaseerde systemen op twee afzonderlijke fysieke servers met niet-gebonden vm's. dit zorgt voor hardwarestoringen zonder verlies van het volledige systeem. vm's kunnen schakelen tussen identieke servers zonder verlies van gegevens. gewoon sessies worden verloren en vervolgens opnieuw opgebouwd. persoonlijk zou ik uitbesteden aan een hostingbedrijf dat deze diensten aanbiedt (google of amazon). ze zijn duur, maar een stuk minder dan die van jezelf. - Random-IT
Het ding dat ik het vaakst onderschat heb in VM-implementaties is schijf-I / O. De meeste mensen begrijpen schijfruimte, CPU-snelheid en geheugen. Ze vergeten die schijfprestaties. - Dan Pritts


Zorg ervoor dat je de juiste vraag stelt.

  • Computers zijn goedkoop
  • Toekomstige behoeften zijn erg moeilijk te voorspellen
  • Plan hoe te schalen, niet wat te kopen van tevoren

Als je niet weet wat je nodig hebt, betekent dat dat je niet veel nodig hebt. Als je een hete website hebt, heb je waarschijnlijk ook een operatieteam die weet hoeveel ram, schijf, io, netwerk, enz. Je app nodig heeft. Als je in de droomfase bent, begin je met je bureaublad en werk je omhoog.

Zorg ervoor dat je een idee hebt hoe je gaat schalen als dingen groter worden. Kun je meer servers achter de load balancer toevoegen? Kun je de redisserver scherven?

Ook is het hebben van een eigen datacenter niks. Een datacenter (zelfs als het maar één computer is) is een afleiding van uw werkelijke doel. Je kunt niet zomaar een computer kopen, aanzetten en weglopen. U hebt airconditioning, luchtfiltratie, betrouwbare stroom, betrouwbaar internet, back-ups, reserveonderdelen, fysieke ruimte om te groeien, vermogen om te groeien, stroomkabels die niet worden geactiveerd en nog een zillion andere hoofdpijn nodig.


4