Stima rapida della velocità del disco con il backup
Dmitry Kuzmenko, 30.05.2019, ib-aid.com
La nostra assistenza tecnica riceve periodicamente una domanda (che viene posta anche sui forum): “sembra che i nostri dischi siano lenti, come possiamo confermarlo”?
Molto spesso questa domanda viene posta dagli utenti di macchine virtuali, dove il DBA non ha accesso alle impostazioni del sottosistema disco o addirittura non ne conosce le caratteristiche.
Naturalmente, la velocità del disco può essere misurata con diversi strumenti, dal semplice CrystalDiskMark al più complesso IOMeter. Ma i risultati più puri si ottengono quando le applicazioni non lavorano con il disco. In caso contrario, i risultati possono variare e, sotto carico elevato, il test potrebbe ridurre le prestazioni del sistema.
Inoltre, gli amministratori di sistema potrebbero vietare l’installazione di software di terze parti, anche per un breve periodo di tempo.
Tuttavia, il backup viene solitamente eseguito su tutti questi sistemi (tranne quelli che utilizzano software di backup a livello di VM per eseguire il backup di Firebird, il che è sbagliato - vedi #11 qui in “12 Errori Comuni durante il Backup dei Database”).
Il backup (gbak -b -g) è una lettura di tutti i dati dal database e una scrittura (sequenziale) di questi dati nel file di backup. Dal punto di vista delle operazioni di lettura/scrittura, è una combinazione di lettura casuale e scrittura sequenziale.
Il file di backup ha solitamente una dimensione pari al 60%-70% della dimensione del database. E, a causa del versioning e della struttura delle pagine del database, ci sono più letture che scritture.
Poiché il file di backup viene solitamente posizionato su un’altra unità fisica, la velocità complessiva del backup dipenderà dalla velocità di lettura casuale del database e dalla velocità di scrittura sequenziale dell’unità di backup. Certo, puoi posizionare il database su HDD e fare il backup su SSD, ma questo sarebbe molto inefficiente, quindi consideriamo che la velocità dell’unità di backup sia quasi uguale alla velocità dell’unità del database, non molto più alta o più bassa.
Per semplificare la valutazione della velocità, abbiamo preso solo la dimensione del file di backup e l’abbiamo divisa per il tempo di backup. Il risultato sarà in “megabyte al secondo”. Ma, per valutare il valore ottenuto in confronto ad altri sistemi, è necessaria una sorta di misurazione di riferimento.
Abbiamo preso come riferimento un computer desktop medio, con un database su RAID1 di 2 HDD SATA3 e backup su un HDD SATA3 separato (la velocità di lettura sequenziale di questo RAID1 è di circa 180 MB/sec, e ~150 MB/sec per l’HDD di backup).
Qui il backup di un database da 31 GB ha una dimensione di 21 GB, e il backup in modalità single-user (nessuno lavora su quel computer) richiede 18 minuti, con una velocità di backup di 19 megabyte al secondo.
Quindi, poiché questo non è un server potente, ma solo un desktop (assemblato 2 o 3 anni fa), possiamo usare questa velocità di backup come riferimento, considerandola normale e forse il minimo accettabile per i sistemi di produzione.
Successivamente, abbiamo analizzato la velocità di backup su 30 server diversi sotto la nostra governance di supporto, dove la dimensione del file di backup non è inferiore a 5 gigabyte.
| Prestazioni | Velocità, MB/sec | Commenti ed Esempi |
|---|
| Veloce | 50-70 | C’erano alcuni sistemi con backup da 38 a 150 gigabyte. Backup di un database da 124 GB in 42 minuti - è veloce. | | Media | 20-50 | Qui la velocità media è di circa 80 gigabyte in 30-40 minuti. Questo è normale, e il nostro desktop mostra un risultato che potrebbe rientrare qui. | | Lenta | 10-20 | 463 gigabyte in 11 ore, 80 gigabyte in 2 ore, 293 gigabyte in 5 ore - è lento, anche il nostro desktop di test è più veloce. | | Estremamente lenta | Sotto 10 | Questo è come 8,5 gigabyte in 1 ora. Molto lento. |
È chiaro che su alcuni sistemi studiati il backup non viene eseguito durante un carico zero sul server. Ma in ogni caso, viene eseguito durante il carico minimo sul server.
Solo per sapere quanto un carico basso possa influire sulla velocità di backup, abbiamo eseguito 2 backup simultanei sullo stesso desktop. Entrambi hanno richiesto 19 minuti con una velocità di 18 megabyte al secondo. Questo è il 93% rispetto al backup single-user, che non è molto (7% di riduzione) per singoli HDD. Se hai un SSD, potresti non notare la differenza anche eseguendo 3-4 backup contemporaneamente.
In generale, una velocità di backup di 20 megabyte al secondo o inferiore può essere motivo di preoccupazione.
In questo caso, o il disco di backup è troppo lento, mentre il backup dovrebbe essere eseguito il più velocemente possibile. Oppure il disco del database è troppo lento, e le prestazioni complessive del sistema sono peggiori di quanto dovrebbero essere.
Come aumentare la velocità di backup
Molte persone non usano gbak a piena velocità, e a volte è possibile aumentare la velocità di backup con un singolo interruttore -se service_mgr, per utilizzare il service manager all’interno del motore Firebird.
La riga di comando consigliata per un backup veloce è la seguente, sia per Firebird 2.5 che per Firebird 3.0:
gbak -se localhost:service_mgr -b -g -user USERNAME -pass password Disk:\Path\Database.fdb Disk:\Path\backup.fbk
Ulteriori suggerimenti e trucchi dedicati alle prestazioni generali: