Server necessari per il carico con margine di sicurezza
Il calcolatore dei server necessari trasforma una previsione di traffico in un obiettivo concreto di scalabilità orizzontale.
Esegui gratis nel browser
Inserisca il tasso massimo di richieste, la capacità misurata di un server e la percentuale da riservare come margine di sicurezza. Lo strumento riduce la capacità utilizzabile di ogni server, divide il carico obiettivo per tale valore e arrotonda per eccesso. Mostra inoltre capacità predisposta, capacità utilizzabile, riserva residua e utilizzo previsto, così Lei può verificare chiaramente ogni ipotesi.
Parta da un carico obiettivo e da una capacità misurati
Un dimensionamento attendibile richiede misure compatibili. Inserisca il massimo tasso sostenuto che l'installazione deve gestire, non una media giornaliera che nasconde i picchi. Misuri la capacità per server con un test rappresentativo che utilizzi la stessa versione dell'applicazione, lo stesso tipo di istanza, la stessa composizione delle richieste, le dipendenze e l'obiettivo di latenza previsti in produzione. Entrambi i valori sono espressi in richieste al secondo. Se un server raggiunge un valore maggiore soltanto violando il livello di servizio, non usi tale valore. Il calcolatore accetta un obiettivo pari a zero, ma la capacità deve essere positiva. Consideri il risultato una base: database, code, cache, connessioni, servizi esterni e richieste lente possono limitare il sistema prima dei server applicativi. Ripeta il calcolo quando cambiano carico, applicazione o benchmark.
Mantenga un margine per evitare il limite operativo
Il margine di sicurezza è la quota della capacità misurata lasciata intenzionalmente libera su ogni server. Con un margine del 25 per cento, un server verificato a 1.200 richieste al secondo contribuisce al calcolo con 900. La riserva assorbe picchi, errori di previsione e tempi di avvio delle nuove istanze, riducendo inoltre il rischio di aumento della latenza vicino alla saturazione. La percentuale corretta dipende dall'operatività. Un servizio interno stabile e rapido da avviare può usare una riserva minore; una API pubblica con traffico irregolare, riscaldamento lento o vincoli rigorosi può richiederne una maggiore. Inserisca un valore da zero incluso a 100 escluso. Il margine viene applicato prima della divisione e il totale viene arrotondato per eccesso. Confronti più percentuali per rendere evidente il rapporto tra resilienza e costo.
Trasformi il risultato in una decisione di provisioning
Il risultato principale è il numero intero minimo di server identici la cui capacità corretta raggiunge l'obiettivo. La capacità utilizzabile per server mostra il benchmark dopo la riserva. La capacità predisposta rappresenta la portata nominale completa della flotta, mentre quella utilizzabile predisposta indica quanto il piano consente di consumare. La capacità utilizzabile residua deriva dall'arrotondamento per eccesso. L'utilizzo confronta il traffico obiettivo con la capacità nominale totale. Usi questi dati per motivare un minimo di scalabilità automatica, una flotta fissa o un budget, quindi verifichi topologia e guasti. Alta disponibilità, zone, manutenzione, repliche e perdita di istanze possono richiedere più server del minimo di portata. Il calcolatore non aggiunge tale ridondanza: applichi poi i requisiti architetturali e ripeta l'analisi quando cambiano istanze o prestazioni.
Casi d'uso
Definire una base di scalabilità automatica
Converta il picco previsto e la portata misurata in un minimo motivato di istanze con riserva esplicita.
Confrontare tipi di istanza
Applichi lo stesso obiettivo alle capacità misurate di server diversi prima del provisioning.
Documentare una revisione della capacità
Registri obiettivo, benchmark, margine, utilizzo e capacità residua alla base della decisione.
Domande frequenti
Come viene calcolato il numero di server?
La capacità utilizzabile è la capacità per server moltiplicata per uno meno la percentuale di margine. Il carico viene diviso per tale valore e arrotondato per eccesso.
Quale capacità per server devo inserire?
Usi la portata sostenuta di un test rappresentativo che rispetti gli obiettivi di latenza ed errore con una configurazione simile alla produzione.
Il margine comporta server aggiuntivi?
Riduce la capacità attribuita a ogni server e può aumentare la flotta arrotondata. La riserva copre picchi, avvii ed errori di previsione.
Il risultato include la ridondanza ad alta disponibilità?
No. Calcola soltanto il minimo di portata. Aggiunga le istanze richieste per zone, manutenzione, repliche, quorum e altre regole di resilienza.
Quanto costa una richiesta API?
Ogni calcolo tramite API costa $0.002. Lo stesso calcolatore deterministico è utilizzabile gratuitamente anche nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/servers-needed \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"target_request_rate":10000,"per_server_capacity":1200,"headroom_percent":25}'const res = await fetch("https://api.kit.forhosting.com/dev/servers-needed", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"target_request_rate": 10000,
"per_server_capacity": 1200,
"headroom_percent": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/servers-needed",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"target_request_rate": 10000,
"per_server_capacity": 1200,
"headroom_percent": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/servers-needed", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"target_request_rate":10000,"per_server_capacity":1200,"headroom_percent":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"target_request_rate":10000,"per_server_capacity":1200,"headroom_percent":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/servers-needed", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"target_request_rate": 10000,
"per_server_capacity": 1200,
"headroom_percent": 25
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.servers_needed",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |