Domanda

Sto usando JMeter per testare le prestazioni della nostra applicazione. ma ho trovato quando invio 20 richieste da JMeter, con questo motivo il risultato dovrebbe essere l'aggiunta di 20 nuovi record nel server sql, ma trovo solo 5 nuovi record, il che significa che il server SQL scarta le altre richieste (perché ho preso un registro e assicurarsi che l'inserimento di nuovi record sia inviato al server sql.)

Qualcuno ha idee? Qual è il numero soglia di richiesta che SQL Server può gestire al secondo? O devo fare una configurazione?

Sì, nella mia applicazione, ho provato, ma sembra che siano accettate solo 5 richieste, non so come configurare, quindi può accettarne altre.

È stato utile?

Soluzione

Non sono convinto che il numero di richieste al secondo venga reindirizzato direttamente al server SQL che elimina i tuoi inserti. Forse si verifica un errore logico dell'applicazione che ripristina o non riesce a eseguire il commit degli inserimenti. Oppure l'applicazione non riesce a gestire la concorrenza e inserisce i dati che violano i vincoli. Controllerei anche i log del server per i deadlock.

Altri suggerimenti

Utilizzare SQL Profiler o il contesto dati LINQ per accedere per vedere cosa è stato effettivamente inviato al server e quindi determinare qual è il problema.

Abilita il registro contestuale dei dati in questo modo:

datacontext.Log = Console.Out;

Come nota a margine, sto elaborando 10.000 transazioni al secondo in SQL Server, quindi non credo che questo sia il problema.

Questo dipende molto dal tipo di query che stai facendo. È possibile avere molte query che richiedono dati che sono già in un buffer, in modo che non sia necessario l'accesso in lettura al disco o si possano avere letture, che in realtà richiedono l'accesso al disco. Se il tuo database è piccolo e hai abbastanza memoria, potresti avere tutti i dati in memoria in ogni momento - l'accesso sarebbe molto veloce, potresti ricevere più di 100 query / secondo. Se devi leggere un disco, sei dipendente dal tuo hardware. Ho optato per un controller UltraSCSI-160 con unità UltraSCSI-160, l'opzione più veloce che puoi ottenere su una piattaforma di tipo PC. Elaboro circa 75'000 record ogni notte (vengono scaricati da un altro server). Per ogni record che elaboro, il programma fa circa 4 - 10 query per inserire il nuovo record nello "slot" corretto. L'intero processo dura circa 3 minuti. Sto eseguendo questo su una macchina AMD Athlon a 850 MHz con 768 MB di RAM. Spero che questo ti dia una piccola indicazione sulla velocità.

Per ottenere test di benchmark per SQL Server e altri RDBMS, visitare il Web del Performance Performance Council

Puoi anche usare il profiler di SQL Server per controllare come vengono eseguite le tue query

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top