Logo VRAMfarm VRAMfarm
IT
Registrati

12 novembre 2026 · Team VRAMfarm

Non pagare una GPU inattiva: arresto automatico, tmux e stop dal codice

Un server GPU con una clessidra e un interruttore, con la cartella salvata prima dello stop: non pagare una GPU inattiva

Una RTX 4090 lasciata accesa dalle 18 alle 9 del mattino fattura 15 ore: 8,85 € per una notte di niente. Con l’arresto automatico per inattività, lo stesso errore di solito costa circa tre ore, 1,77 €, e la tua cartella /workspace viene salvata prima dello stop. L’arresto automatico però è solo la rete di sicurezza. Il vero risparmio viene da poche abitudini: fermare il server tra una sessione e l’altra, far girare i lavori notturni in modo che non abbiano bisogno di te, e lasciare che sia il lavoro stesso a fermare il server.

Come funziona l’arresto automatico per inattività

Se nessuno usa un server per circa due ore, ti mandiamo un messaggio: nella chat della dashboard e, se non sei sul sito, via email. Se resta inattivo per un’altra ora e la sua cartella si può salvare, il server salva /workspace e si ferma. Ricevi un avviso che è stato fermato e che la tua cartella ti aspetta sul prossimo server. Se la cartella non si può salvare (una tua immagine Docker, vedi sotto) ricevi solo gli avvisi, e il server resta acceso finché non lo fermi tu. Anche se il caricamento non riesce il server resta acceso, e te lo comunichiamo.

Tempo dall’ultima attività Cosa succede
0 Chiudi la tua ultima connessione, oppure il lavoro finisce
circa 2 h Messaggio nella chat della dashboard e via email, con il pulsante Ci sto ancora lavorando
circa 3 h Il server salva /workspace e si ferma; la fatturazione finisce a caricamento completato

Cosa conta come utilizzo. Guardiamo tre segnali:

  • una connessione aperta al server attraverso il nostro indirizzo: SSH, Jupyter o l’app (ComfyUI, la chat, vLLM);
  • dati che sono ancora passati su quelle connessioni nell’ultima mezz’ora;
  • un carico sulla GPU sopra qualche punto percentuale.

Ne basta uno per considerare il server occupato. Un training conta come carico sulla GPU, quindi non viene mai fermato mentre calcola, anche se non c’è nessuno connesso. I tempi della tabella sono indicativi. Le due ore partono dall’ultimo momento in cui il server è stato usato: dopo un lungo lavoro sulla GPU o una sessione chiusa, l’avviso arriva quindi circa due ore dopo, con una decina di minuti di scarto.

Cosa sembra inattivo. Un kernel Jupyter aperto senza nessuna scheda del browser e con la GPU ferma. Un lavoro che gira solo sulla CPU, come scompattare un grosso archivio o tokenizzare un dataset. Un lungo download avviato sul server senza niente di connesso. Se il tuo lavoro ha fasi tranquille come queste, premi Ci sto ancora lavorando quando arriva il messaggio, tieni aperta una connessione, oppure disattiva l’arresto automatico per quel periodo.

Dove non si applica. L’arresto automatico ferma solo un server la cui cartella si può salvare, perché fermarlo senza salvare cancellerebbe i tuoi file. Questo esclude i server avviati da una tua immagine Docker: la loro cartella non si può ancora salvare, quindi non vengono mai fermati in automatico. Il messaggio di inattività lo ricevi comunque, ma fermarli tocca a te o al tuo script, come spiega la guida all’API per i lavori batch.

Disattivarlo, e perché di solito non conviene

L’opzione è nelle Impostazioni: “Ferma automaticamente un server inattivo e salva la sua cartella”. Se è disattivata ricevi comunque i messaggi di inattività, al massimo ogni sei ore per server, ma non viene fermato niente.

Disattivala solo se hai un motivo: un lavoro con ore di elaborazione sulla CPU tra uno step sulla GPU e l’altro, o un server che tieni come endpoint di test e che qualcuno chiama ogni tanto. Per una fase tranquilla occasionale è meglio Ci sto ancora lavorando, che lascia la rete di sicurezza al suo posto per la prossima volta.

Senza arresto automatico, un server dimenticato resta acceso finché non lo fermi o finché il credito non si esaurisce. Uno stop con il credito a zero non salva niente: il disco viene cancellato insieme a tutto quello che c’era sopra. La guida alla fatturazione spiega nel dettaglio cosa succede a credito zero.

Il problema opposto: connessioni che tengono occupato un server

Siccome le connessioni aperte contano come utilizzo, una finestra dimenticata può tenere acceso un server tutta la notte, proprio come un server dimenticato. Questi sono i soliti sospetti:

  • una finestra di PowerShell o del Terminale con una sessione SSH che non hai mai chiuso;
  • una scheda di Jupyter o ComfyUI rimasta aperta nel browser;
  • una finestra di VS Code o Cursor ancora connessa tramite Remote SSH.

Dal lato del server, ognuna di queste sembra qualcuno al lavoro. Quindi quando hai finito chiudi le schede e la sessione o, meglio ancora, ferma subito il server. Non aspettare che lo faccia l’arresto automatico tre ore dopo.

Abitudini che riducono il tempo di inattività

Ferma tra una sessione e l’altra. Preparare un server richiede 2–5 minuti e non si paga. Un nuovo avvio costa almeno 15 minuti, e un’app pronta scarica di nuovo i suoi modelli, cosa che si paga. Quindi il punto di pareggio dipende da cosa fai girare:

Cosa fai girare Configurazione dopo che il server è pronto Ferma se la pausa dura più di
PyTorch + Jupyter, codice tuo nessuna, la cartella salvata torna da sola circa 15 minuti
Flux o SDXL in ComfyUI circa 5 minuti di download dei modelli circa 20–30 minuti
Video con Wan 2.2 14B 10–15 minuti per ~70 GB circa 45 minuti

Una pausa pranzo su una RTX 4090 costa 0,59 € all’ora se la lasci accesa. Su una H100 a 3,90 € all’ora, o su una macchina con più GPU, la stessa ora pesa molto di più.

Usa Salva e ferma, non Ferma, quando pensi di tornare. LoRA, output, notebook e script tornano sul prossimo server, anche su un’altra scheda. Lo storage costa 0,03 € per GB al mese. Cosa viene conservato e cosa no lo trovi in cosa succede ai tuoi file quando fermi una GPU.

Prepara dove costa poco. Scrivere codice, sistemare gli import e scaricare un dataset non richiedono una H100. Fallo sul tuo computer o su una scheda piccola come la RTX 3060 a 0,12 € all’ora, salva la cartella e avvia la scheda grande solo quando il lavoro è pronto a partire.

Prova su una fetta dei dati. Cinque minuti sull’1% del dataset ti mostrano il crash che altrimenti arriverebbe dopo un’ora di training completo, con la scheda costosa lì ad aspettare.

Metti lo stop dentro il lavoro. Il modo migliore per non pagare un lavoro già finito è fare in modo che sia il lavoro a fermare il server. Ne parla l’ultima sezione qui sotto.

Lavori notturni con tmux

Se avvii un lavoro in una normale sessione SSH e la connessione cade (coperchio del portatile, Wi-Fi, VPN), di solito il lavoro muore con lei. tmux lo tiene in esecuzione sul server, indipendentemente dalla tua connessione. Funziona allo stesso modo nel terminale di Jupyter.

Controlla se è installato con tmux -V. Se non c’è, installalo; finisce fuori da /workspace, quindi ripeti l’operazione su ogni nuovo server:

apt-get update && apt-get install -y tmux

Poi:

tmux new -s train          # apre una sessione chiamata "train"
python train.py            # avvia il lavoro al suo interno
# premi Ctrl+B, poi D, per staccarti; il lavoro continua
tmux ls                    # più tardi, elenca le sessioni
tmux attach -t train       # torna alla sessione

Senza tmux, nohup fa il minimo indispensabile e scrive l’output in un file di log che puoi seguire:

nohup python train.py > /workspace/train.log 2>&1 &
tail -f /workspace/train.log     # Ctrl+C smette di seguire il log, non ferma il lavoro

Due regole per tutto ciò che gira mentre dormi. Scrivi i checkpoint in /workspace ogni 15–30 minuti, così un guasto ti costa un intervallo, non la notte. E ricarica il credito prima di iniziare: un credito che si esaurisce alle 3 di notte ferma il server senza salvare.

Mentre il lavoro calcola, l’arresto automatico lo lascia in pace. Quando finisce la GPU si quieta: circa due ore dopo ricevi l’avviso, e un’ora più tardi il server salva la sua cartella e si ferma. Questa è la rete di sicurezza. La prossima sezione ti fa risparmiare anche quelle ore di inattività.

Fermare il server dal codice quando il lavoro finisce

Ogni server si può fermare tramite l’API. Crea un token in Impostazioni → Token API; inizia con gf_live_ e viene mostrato una sola volta. Annota il numero del server da I miei server (il #1234 sulla scheda del server). Sul server:

export GF_TOKEN=gf_live_xxxxxxxxxxxxxxxx
export GF_ID=1234

python train.py; curl -s https://vramfarm.com/api/instances/stop \
  -H "Authorization: Bearer $GF_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"id\": $GF_ID, \"save\": true}"

Il ; è importante: lo stop parte sia che il training riesca sia che vada in crash. Con && al suo posto, un crash lascerebbe il server acceso. "save": true prima carica /workspace e poi ferma il server; la fatturazione continua per i pochi minuti del caricamento, e se il caricamento non riesce il server resta acceso. Toglilo per fermare subito, con il disco cancellato. Su un server avviato da una tua immagine Docker, save non ha effetto e il server si ferma e basta. Lancia l’intera riga dentro tmux, così lo stop avviene anche se ti disconnetti.

In Python, la stessa idea con try/finally:

import os, requests

def stop_server(save=True):
    requests.post("https://vramfarm.com/api/instances/stop",
                  headers={"Authorization": f"Bearer {os.environ['GF_TOKEN']}"},
                  json={"id": int(os.environ["GF_ID"]), "save": save}, timeout=30)

try:
    train()                       # il tuo ciclo di training
finally:
    stop_server()

Due parole sul token. Si trova su una macchina che appartiene a un host, quindi consideralo esposto: crea un token apposta, con un nome come “self-stop”, e revocalo quando il progetto finisce. Un token può avviare, elencare e fermare server, ma non può cambiare la tua password o la chiave SSH, né creare nuovi token. La colonna Ultimo utilizzo nelle Impostazioni ti mostra se un token viene usato quando non dovrebbe.

Se preferisci non tenere affatto il token sul server, lancia lo stop dal tuo computer o dalla CI. Uno script lì avvia il server, aspetta il lavoro, copia i risultati e lo ferma. La guida API GPU per i lavori batch ha quella versione in curl e Python, con un tetto di spesa già incluso.

Domande sull’argomento

L'arresto automatico interrompe il mio training?

Non finché la GPU lavora: il carico sulla GPU conta come utilizzo, quindi un training avviato con tmux o nohup continua per tutto il tempo in cui calcola. Può sembrare inattiva una lunga fase senza carico sulla GPU e senza nessuno connesso, per esempio una pre-elaborazione solo su CPU o un download grande.

A cosa serve il pulsante Ci sto ancora lavorando?

Ci dice che il server è in uso, quindi questa volta non viene fermato. Ricontrolliamo più tardi, al massimo ogni sei ore per lo stesso server. Per disattivare l'arresto automatico in modo permanente, usa l'opzione nelle Impostazioni.

Posso avviare un server senza GPU solo per preparare i dati?

No, ogni server ha una GPU. Per la preparazione prendi la scheda più economica che soddisfa le tue esigenze di disco e RAM, per esempio una RTX 3060, poi clicca Salva e ferma e continua sulla scheda grande: la cartella salvata torna su qualsiasi scheda.

Pago un server fermato?

No. Un server fermato non esiste più, quindi non costa nulla. Si paga solo una cartella salvata, a 0,03 € per GB al mese, finché la tieni.

Trova la GPU in cui entra il tuo modello

Scegli un modello e vedi la scheda più economica con VRAM sufficiente, con fatturazione al minuto in euro.