2009-12-01 47 views
6

Estoy usando JMeter para probar el rendimiento de nuestra aplicación. pero encontré cuando envío 20 solicitudes de JMeter, con esto el resultado de la razón debe ser agregar 20 registros nuevos en el servidor SQL, pero solo encuentro 5 registros nuevos, lo que significa que el servidor SQL descarta las otras solicitudes (porque tomé un registro y asegúrese de que los nuevos registros de inserción se envían al servidor sql.)¿Cuántas solicitudes puede manejar SQL Server por segundo?

¿Alguien tiene alguna idea? ¿Cuál es el número de umbral de solicitud que puede manejar el servidor SQL por segundo? ¿O necesito hacer alguna configuración?

Sí, en mi aplicación, lo intenté, pero parece que solo se aceptan 5 solicitudes, no sé cómo configurar, entonces puede aceptar más.

+0

Tema interesante, tengo curiosidad también. – Ben

+0

+1 sí, tranquilo interesante ... esperando respuesta. – Saar

+2

Tuve que reírme de esto. En cualquier segundo, Stack Overflow obtiene miles de solicitudes por lotes. Tenemos un cliente que realiza más de 100 mil solicitudes por lote sostenidas durante todo el día. –

Respuesta

6

No estoy seguro de que el número de solicitudes por segundo se relacione directamente con el servidor SQL descartando sus insertos. Quizás haya un error de lógica de aplicación que retrocede o no puede confirmar las inserciones. O la aplicación no puede manejar la concurrencia e inserta datos que violan las restricciones. Verificaría también los registros del servidor en busca de puntos muertos.

+0

Uso linq y .net para insertar solicitudes, pero no puedo detectar ninguna excepción – MemoryLeak

3

Esto es muy dependiente de qué tipo de consultas que está haciendo. Puede tener muchas consultas que solicitan datos que ya están en un búfer, de modo que no se requiere acceso de lectura del disco o puede tener lecturas, que en realidad requieren acceso al disco. Si su base de datos es pequeña y tiene suficiente memoria, es posible que tenga todos los datos en la memoria en todo momento; el acceso sería muy rápido, entonces, podría obtener más de 100 consultas/segundo. Si necesita leer un disco, depende de su hardware. He optado por un controlador UltraSCSI-160 con unidades UltraSCSI-160, la opción más rápida que puede obtener en una plataforma de tipo PC. Proceso unos 75 000 registros cada noche (se descargan de otro servidor). Para cada registro que proceso, el programa realiza entre 4 y 10 consultas para colocar el nuevo registro en la "ranura" correcta. Todo el proceso toma alrededor de 3 minutos. Estoy ejecutando esto en una máquina AMD Athlon de 850 MHz con 768 MB de RAM. Espero que esto te dé una pequeña indicación sobre la velocidad.

+0

Solo uso linq para insertar registros. – MemoryLeak

3

Utilice el Analizador de SQL o el contexto de datos LINQ para el registro para ver lo que realmente se ha enviado al servidor y luego determinar cuál es el problema.

Habilitar el registro de contexto de datos de esta manera:

datacontext.Log = Console.Out; 

Como nota al margen, he estado procesando 10 000 transacciones por segundo en SQL Server, por lo que no creo que ese es el problema.

0

También puede usar el perfil del servidor Sql para comprobar cómo se ejecutan sus consultas

Cuestiones relacionadas