¿Cuáles son algunas formas efectivas de realizar pruebas de rendimiento programáticas en operaciones de bases de datos, especialmente en entornos donde las bases de datos en sí mismas no ofrecen herramientas dedicadas?
Por ejemplo, en Google App Engine, las cargas de página completas se evalúan como una operación que puede incluir operaciones específicas de la base de datos. Es probable que este problema también esté presente en SQLite y otras bases de datos integradas. Como es difícil abstraer por completo (el equivalente de) selecciones e inserciones que deben probarse, ¿hay alguna herramienta de base de datos recomendada para realizar diagnósticos más exhaustivos en este tipo de consultas?
performance
database-design
google-app-engine
performance-testing
Brian Ballsun-Stanton
fuente
fuente
Respuestas:
Me parece que su problema es que está intentando probar las métricas de rendimiento que no están bien soportadas en la base de datos subyacente. Esto hace que sea muy difícil comparar el rendimiento entre sistemas porque los enfoques subyacentes son muy diferentes. No creo que sea posible hacer comparaciones de manzanas con manzanas, así como no creo que pueda hacer una comparación de manzanas con manzanas de los enfoques de tipo ORDBMS a los enfoques de tipo RDBMS. Los problemas de rendimiento son demasiado diferentes y si Stonebraker tiene razón en que la optimización de un ORDBMS para las pruebas de TPC-C pierde el punto, entonces, para sistemas que están aún más separados, será imposible. (Creo que él está allí, sin embargo, solo donde entra en juego la funcionalidad ORDBMS).
Creo que lo que necesita para ser honesto es ver cómo usaría cada sistema y crear una herramienta de referencia basada en el enfoque que tomaría con cada uno. Entonces puede decir, al menos para ese flujo de trabajo, que el punto de referencia muestra algo específico. Sin embargo, no veo cómo puedes generalizar. Además, puede ejecutarlo en un generador de perfiles para obtener información adicional sobre dónde se pasa el tiempo en la ejecución de prueba en varios motores.
Sin embargo, la evaluación comparativa de db es muy difícil de hacer significativa en las mejores circunstancias y cuando se comparan sistemas diferentes es imposible generalizar.
fuente
Appstats es la herramienta clave para medir el rendimiento en App Engine. Mostrará el tiempo utilizado para cada RPC, incluido el almacén de datos, memcache, urlfetch y solicitudes de correo en un gráfico gráfico. Normalmente, las solicitudes aparecen como una "escalera" donde cada solicitud comienza en el punto en que finalizó la solicitud anterior, en la siguiente línea hacia abajo.
Si utiliza las solicitudes asíncronas avanzadas en ndb, puede ver que las solicitudes suceden en paralelo.
Esta herramienta me ha sido de gran ayuda para ver dónde se está gastando el tiempo y cómo optimizar las consultas.
fuente