benchmark per software quasi in tempo reale

1

Mi chiedo se ci sono dei benchmark che possono aiutare a capire le caratteristiche in tempo reale (tempo di risposta) del software non in tempo reale. Ad esempio l'applicazione C # su Windows o MSSQL Server.

So che Windows non è un sistema operativo in tempo reale, tuttavia non ci impedisce di usarlo nel sistema Real-time se ci sono altri livelli in tempo reale.

Diciamo che abbiamo un sistema in tempo reale, che legge e memorizza i dati da alcuni ADC. I dati vengono letti da ADC e timestampati su FPGA con alcuni firmware in tempo reale. Quella parte del sistema è responsabile del prelievo di campioni da ADC con un intervallo preciso (frequenza w / 10kHz) e per la registrazione cronologica dei dati. Successivamente i campioni del pacchetto firmware nel pacchetto dati (diciamo 0.1 sec) trasferiscono i dati via TCP / IP all'applicazione sul computer Windows. La macchina Windows dovrebbe memorizzare i dati e visualizzarli. Sì, l'applicazione su Windows non è in tempo reale, così come la connessione TCP / IP non garantisce la consegna dei dati in tempo fisso. Ad esempio

  • in alcuni casi il trasferimento dei dati potrebbe richiedere 0,01 secondi e 1 secondo in un altro caso.
  • Windows potrebbe interrompere i thread dell'applicazione per qualche secondo.
  • l'applicazione potrebbe interrompersi da sola quando Garbage Collector funziona

quindi, potremmo avere qualche secondo interrupt nella parte del sistema che va oltre Controller / Firmware. Cioè il tempo di risposta dal sottosistema non in tempo reale varia in alcuni intervalli. Tuttavia questo problema potrebbe essere risolto se c'è abbastanza buffer sul controller, quindi può accumulare dati in attesa di risposta da sottosistema non in tempo reale.

Per essere sicuri che il buffer sul sottosistema in tempo reale sia abbastanza grande da supportare il sottosistema non in tempo reale, dobbiamo capire la distribuzione della probabilità del tempo di risposta. Qualcosa come:

  • tempo di risposta < 1sec nell'80% dei casi
  • 1sec
  • 2sec
  • 5sec
  • 10sec

Questa è fondamentalmente la domanda. Qualche benchmark per Windows, C # o MS SQL? Qualsiasi metodo?

TPC offre ottimi benchmark per le prestazioni dei server SQL, tuttavia offre prestazioni totali e non considera il tempo di risposta AFAIK.

    
posta m5ba 11.04.2011 - 23:05
fonte

1 risposta

1

Avendo svolto molti test sulle prestazioni, ti suggerirei di non cercare i benchmark esistenti perché ci sono troppe variabili.

Il mio suggerimento è quello di stabilire i propri benchmark con il software (e tenere presente che se si installa qualsiasi software sulla macchina Windows può avere un impatto significativo, in particolare quelli che cambiano servizi o attività in background - inclusi gli aggiornamenti di Windows - quindi prova a mantenere invariata la tua configurazione una volta stabilito il tuo benchmark.

Per stabilire il tuo benchmark, costruisci il tuo software di controllo con un buffer grande quanto puoi permetterti per un test, assicurati di avere un mezzo per registrare l'utilizzo del buffer (min, max, media, tempi di risposta, tempo nel buffer, qualunque sia indicatore ti aiuterà a sintonizzare bene). Progettare un test delle prestazioni che spinga il sistema al limite (potrebbe essere necessario un test di 24 ore se i sistemi sono destinati a funzionare h24, se la quantità di dati cambia con l'ora del giorno, scegliere un carico rappresentativo per il giorno più intenso ed estrapolare del 10 o 20%, se la velocità dei dati è costante, allora è facile, basta farlo). Traccia il tuo controller e il buffer del client, la richiesta, la risposta e l'amp; statistiche di temporizzazione. Questo dovrebbe darti tutte le munizioni necessarie per sintonizzare il controller.

Infine, Windows ha un numero di impostazioni di rete che possono essere modificate che influiscono sulle prestazioni della rete. Questo è solo un insieme di variabili che significa che i benchmark standard non saranno di aiuto, se ce ne sono alcuni là fuori.

    
risposta data 17.04.2011 - 18:38
fonte

Leggi altre domande sui tag