Pagina 1 di 1

Valutare le prestazioni con i benchmark

Inviato: 15/06/2024, 22:29
da FrancyDotNet
Il benchmarking delle prestazioni IO del disco o del file system può essere nella migliore delle ipotesi complicato. Il problema è che i moderni file system sfruttano varie tecniche per garantire che si ottengano le migliori prestazioni come la memorizzazione nella cache dei file nella RAM. Ciò significa che, a meno che non si eludere la cache del disco, le velocità riportate riporteranno la velocità con cui i file possono essere letti dalla memoria.

In questo esempio, tratterò il benchmarking di un file system Linux usando due metodi; dd per il percorso facile e bonnie ++ per un test più completo.

TEST DI SCRITTURA
Puoi usare dd per creare un file di grandi dimensioni il più rapidamente possibile per vedere quanto tempo impiega. È un test molto semplice e non molto personalizzabile, ma ti darà un'idea delle prestazioni del file system. È necessario assicurarsi che questo file sia maggiore della quantità di RAM disponibile nel sistema per evitare che l'intero file venga memorizzato nella cache.

Di solito è installato immediatamente con la maggior parte dei file system Linux che lo rende uno strumento ideale in ambienti bloccati o ambienti in cui è difficile installare pacchetti. Utilizzare il comando seguente sostituendo [PATH] con il percorso del filesystem per testare, [BLOCK_SIZE] con la dimensione del blocco e [LOOPS] per la quantità di blocchi da scrivere.

time sh -c "dd if =/dev/zero of=[PATH] bs=[BLOCK_SIZE]k count=[LOOPS] && sync"

Una suddivisione del comando è la seguente:
  • time = volte l'intero processo dall'inizio alla fine
  • of = questo è il percorso che si desidera verificare. Il percorso deve essere letto / scrivibile.
  • bs = è la dimensione del blocco da usare. Se si dispone di un carico specifico per il quale si sta testando, rendere questo valore rispecchiare la dimensione di scrittura che ci si aspetterebbe.
  • sync = impone al processo di scrivere l'intero file sul disco prima del completamento. Si noti che dd tornerà prima del completamento, ma il comando time no, quindi l'output temporale includerà la sincronizzazione su disco.
L'esempio seguente utilizza una dimensione di blocco 128K e esegue un loop 8000000 volte. La dimensione di scrittura risultante sarà di circa 1,0 GB.

Codice: Seleziona tutto

time sh -c "sudo dd if=/dev/zero of=/media/pi/usb/test.tmp bs=128k count=8k && sync"
8192+0 record dentro
8192+0 record fuori
1073741824 bytes (1,1 GB, 1,0 GiB) copied, 54,408 s, 19,7 MB/s

real    1m2,340s
user    0m0,219s
sys     0m12,121s
Ora facciamo i conti: il comando dd ci dice quanti byte sono stati scritti e il comando time ci dice quanto tempo ha impiegato. In questo caso ci viene restituito un valore espresso in BYTES / SECONDO e dobbiamo eseguire una piccola conversione in in MB/s e per avere di fronte dei numeri con cui poter ragionare meglio.
  • Prendiamo i Byte convertiti e li convertiamo in MB (1073741824/1024/1024) e poi dividiamo per i tempo reale impiegato (1 minuto e 2,340 secondi)
  • La nostra formula sarà quindi: (1073741824/1024/1024) / ((1 * 60) + 2,340)
Questo ci dà una media di 16,43 megabyte al secondo per tutta la durata del test.

TEST DI LETTURA

Possiamo anche usare dd per testare la velocità di lettura di un disco leggendo il file che abbiamo creato e temporizzando il processo. Prima di farlo, è necessario svuotare la cache dei file scrivendo un altro file delle dimensioni della RAM installata sul sistema di test. Se non lo facciamo, il file che abbiamo appena creato sarà parzialmente nella RAM e quindi il test di lettura non verrà letto completamente dal disco.

Crea un file usando dd che ha circa le stesse dimensioni della RAM installata sul sistema. Di seguito si presume che siano installati 1 GB di RAM. Puoi controllare quanta RAM è disponibile.

Codice: Seleziona tutto

sudo dd if=/dev/zero of=/media/pi/usb/cache.tmp bs=128k count=8k
Ora per il test di lettura del nostro file originale.

Codice: Seleziona tutto

time sh -c "dd if=/media/pi/usb/test.tmp of=/dev/null bs=128k"
Ed elaborare il risultato con lo stesso principio visto poco fa con la scrittura:

Codice: Seleziona tutto

time sh -c "dd if=/media/pi/usb/test.tmp of=/dev/null bs=128k"
8192+0 record dentro
8192+0 record fuori
1073741824 bytes (1,1 GB, 1,0 GiB) copied, 27,2711 s, 39,4 MB/s

real    0m27,328s
user    0m0,030s
sys     0m4,149s
La nostra formula sarà quindi (1073741824/1024/1024) / 27,328 e la media sarà quindi di 37,47 megabyte al secondo.


Codice: Seleziona tutto

sudo hdparm -Tt /dev/sda


Codice: Seleziona tutto

sudo dd if=/dev/zero of=/dev/sda bs=64k count=8k status=progress
Segnalo il tool iotop che aiuta a capire quali processi stanno utilizzando il disco_

Codice: Seleziona tutto

sudo iotop

Re: Valutare le prestazioni con i benchmark

Inviato: 15/06/2024, 22:29
da FrancyDotNet
1. Processore (CPU)
  • Velocità di clock
  • Numero di core
  • Cache
  • Architettura
2. Scheda Grafica (GPU)
  • Frequenza di clock (core e memoria)
  • Numero di CUDA cores (NVIDIA) o Stream processors (AMD)
  • Memoria video (VRAM)
  • Capacità di rendering e prestazioni nei giochi
3. Memoria (RAM)
  • Capacità
  • Velocità (MHz)
  • Latenza
4. Unità di Memoria di Massa
  • SSD/HDD
  • Velocità di lettura e scrittura (MB/s, GB/s)
  • Tempo di accesso
  • Capacità di archiviazione
5. Scheda Madre
  • Chipset
  • Supporto per la RAM (tipo e velocità massima)
  • Slot di espansione (PCIe, SATA, M.2, ecc.)
6. Sistema di Raffreddamento
  • Efficienza
  • Livello di rumore generato
7. Alimentatore (PSU)
  • Potenza (Watt)
  • Efficienza (certificazioni come 80 Plus)
8. Monitor
  • Risoluzione
  • Frequenza di aggiornamento (Hz)
  • Tempo di risposta
9. Scheda di Rete
  • Velocità di trasferimento dati (Mbps, Gbps)
  • Latency (ritardo di rete)
  • Stabilità della connessione
  • Supporto per standard di rete (Ethernet, Wi-Fi)
  • Performance in condizioni reali
  • Compatibilità e interoperabilità
  • Sicurezza della rete


  1. Monitoraggio delle risorse di sistema:
    • Utilizza strumenti come Task Manager (su Windows) o Activity Monitor (su macOS) per monitorare l'utilizzo della CPU, della memoria RAM e del disco.
    • Controlla l'utilizzo della CPU per vedere se è costantemente al massimo o se ci sono processi che monopolizzano la sua capacità.
    • Verifica l'utilizzo della memoria RAM per assicurarti che non sia completamente satura, il che potrebbe rallentare il sistema.
    • Guarda l'utilizzo del disco per controllare se ci sono processi di lettura/scrittura intensi che potrebbero indicare un problema con l'unità di memoria di massa.
  2. Benchmark specifici per componenti:
    • Esegui benchmark dedicati per testare specificamente la CPU, la GPU, la memoria RAM, l'unità di memoria di massa e la scheda di rete.
    • I risultati ti forniranno un'indicazione delle prestazioni effettive di ciascun componente, consentendoti di confrontarle con le specifiche di fabbrica.
  3. Test di carico del sistema:
    • Esegui test di carico del sistema utilizzando software di benchmarking che stressano diversi componenti simultaneamente (CPU, GPU, memoria, disco).
    • Osserva come il sistema gestisce il carico e se si verificano rallentamenti o cadute significative delle prestazioni durante i test.
  4. Analisi della rete e della connettività:
    • Utilizza strumenti di diagnostica della rete per misurare la velocità di trasferimento dei dati, la latenza e la stabilità della connessione.
    • Testa la connessione in diverse condizioni di carico per identificare eventuali problemi di rete che potrebbero influire sulle prestazioni.
  5. Esclusione di fattori esterni:
    • Assicurati che il sistema sia adeguatamente aggiornato con i driver più recenti per tutti i componenti hardware.
    • Verifica che non ci siano processi di background o software non necessari che possano influenzare le prestazioni.
  6. Consulenza tecnica e diagnosi avanzata:
    • Se hai dubbi persistenti sulle prestazioni del sistema nonostante i tuoi test, considera di consultare un tecnico specializzato o un esperto di IT.
    • Possono essere in grado di eseguire diagnostiche più avanzate e identificare problemi meno evidenti che potrebbero causare il rallentamento del sistema.

Re: Valutare le prestazioni con i benchmark

Inviato: 15/06/2024, 22:29
da FrancyDotNet

Re: Valutare le prestazioni con i benchmark

Inviato: 15/06/2024, 22:42
da FrancyDotNet
:geek: