SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Carga Volumen y Estrés...




Ing. Lennin Caro Pérez
El evento.........
  La Comunidad de base de datos libres
(PostgreSQL)
  En el país existen una gran cantidad de
personas muy talentosos y comprometidos con
las TIL
 Solo necesitan la oportunidad y los espacios
para demostrar lo que se puede hacer
 Demostrar con hechos y no con palabras
 Gracias al CNTI por el apoyo e impulso al uso
de las tecnologías de información libres... y por
la oportunidad de estar aquí
¿Por que estas aquí?

 Para conocer procesos de prueba de un
ambiente y validar si es confiable.
 Para saber de alguna herramienta de
prueba y simulación en ambientes.
  Para cumplir con un estándar de
rendimiento del ambiente
   Para    ver  otras    alternativas y
herramientas de prueba ambientes
 Estas de paso
¿Para que sirve realizar prueba de Estrés?

 Detectar fallas de hardware.
 Detectar fallas de configuración
 Detectar fallas de diseño.
 Detectar fallas de integridad.
 Optimizar el uso del hardware y software.
 Detectar si se necesita modificar los parámetros
de entonación
 Detectar si los parámetros de entonación son los
correctos
Pruebas de rendimiento o estrés



 “son las pruebas que se realizan, desde una
perspectiva, para determinar lo rápido que
realiza una tarea un sistema en condiciones
particulares de trabajo.” (Wikipedia)
¿Que buscamos?



   El objetivo de una prueba de carga es verificar el
rendimiento e identificar problemas que ocurre
cuando todos los procesos se ejecutan para
responder las necesidades de los usuarios.
¿Por donde comenzar?
Pero antes de comenzar ......
Identifiquen la verdadera carga
Que tipo de base de datos tengo
¿Por donde comenzar?

Memoria
 memtest86+
 STREAM

Procesador (CPU)
 Habilitar timing en la ejecución de consultas

Disco (I/O)
 dd
 Bonnie++
 sysbench
¿Por donde comenzar?

Base de datos
 pgbench
 Tsung

Procesos (Backend)
 Se incluye en las pruebas de aplicativo

Aplicativo
 Tsung
 Siege
 Apache Bench
Procesador

timing

CREATE TABLE test (id INTEGER PRIMARY KEY);

INSERT INTO test VALUES (generate
series(1,100000));

EXPLAIN ANALYZE SELECT COUNT(*) FROM test;
Bonnie++
dd


blocks = 250,000 * (gigabytes of RAM)

time sh -c "dd if=/dev/zero of=bigfile bs=8k
count=blocks && sync"

time dd if=bigfile of=/dev/null bs=8k
IOPS
pgbench
pgbench -S -c 4 -t 20000 pgbench
starting vacuum...end.
transaction type: SELECT only
scaling factor: 10
query mode: simple
number of clients: 4
number of threads: 1
number of transactions per client: 20000
number of transactions actually processed: 80000/80000
tps = 17070.599733 (including connections establishing)
tps = 17173.602799 (excluding connections establishing)
Resultado pgbench
tsung (Emulando el test apache ab)
<load duration="5" unit="minute">
 <arrivalphase phase="1" duration="10" unit="minute">
  <users maxnumber="10" arrivalrate="100" unit="second"></users>
 </arrivalphase>
</load>
<sessions>
<session probability="100" name="ab">
  <for from="1" to="1000" var="i">
    <request>
     <http url="http://myserver/index.html" method="GET"></http>
    </request>
  </for>
n</session>
</sessions>
Resultado pgbench
Tips interesante


 Si lo tienes que hacer más de una vez automatizalo
 Lleva anotaciones de lo que haces y los resultados
 Realiza las pruebas una y otra y otra vez
 Activa y almacena todos los logs posibles
 Realiza pruebas incrementales, desde un escenario
sensillo hasta un escenario complejo
 Documenta todo
 Comparte tus experiencia
Preguntas



Contacto:
lennin.caro@yahoo.com
@lennincaro
412-5826767

Mais conteúdo relacionado

Semelhante a postgresql carga volumen stress

Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
Ingeniería del software 3
Ingeniería del software 3Ingeniería del software 3
Ingeniería del software 3enayluis
 
DotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en AzureDotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en AzurePlain Concepts
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupMartin Siniawski
 
Análisis Forense Memoria RAM
Análisis Forense Memoria RAMAnálisis Forense Memoria RAM
Análisis Forense Memoria RAMConferencias FIST
 
Los casos de uso para In-Memory OLTP
Los casos de uso para In-Memory OLTPLos casos de uso para In-Memory OLTP
Los casos de uso para In-Memory OLTPSpanishPASSVC
 
Grupo#4 trabajo colaborativo1
Grupo#4 trabajo colaborativo1Grupo#4 trabajo colaborativo1
Grupo#4 trabajo colaborativo1ddiego7
 
Por qué hacemos persistencia de datos
Por qué hacemos persistencia de datosPor qué hacemos persistencia de datos
Por qué hacemos persistencia de datosCarlos Gustavo Ruiz
 
PRACTICAS 5 Y 6 PAO
PRACTICAS 5 Y 6 PAOPRACTICAS 5 Y 6 PAO
PRACTICAS 5 Y 6 PAOthereyblak
 
Cesnavarra 2009-boletín 3
Cesnavarra 2009-boletín 3Cesnavarra 2009-boletín 3
Cesnavarra 2009-boletín 3Cein
 
Presentac..
Presentac..Presentac..
Presentac..Leyda
 
Computación evolutiva no tradicional
Computación evolutiva no tradicionalComputación evolutiva no tradicional
Computación evolutiva no tradicionalJuan J. Merelo
 
Introduccion ethical hacking - chakan
Introduccion ethical hacking - chakanIntroduccion ethical hacking - chakan
Introduccion ethical hacking - chakanch4k4n
 
Taller definición bugs
Taller definición bugsTaller definición bugs
Taller definición bugsAndrés Grosso
 
+Ficha tecnica investigación tecnológica (11)
+Ficha tecnica investigación tecnológica (11)+Ficha tecnica investigación tecnológica (11)
+Ficha tecnica investigación tecnológica (11)Ruby Garzon Suarez
 

Semelhante a postgresql carga volumen stress (20)

Pruebas de estress
Pruebas de estressPruebas de estress
Pruebas de estress
 
Top Bug
Top BugTop Bug
Top Bug
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Starta KaliLinux
Starta KaliLinuxStarta KaliLinux
Starta KaliLinux
 
Alumno
AlumnoAlumno
Alumno
 
Ingeniería del software 3
Ingeniería del software 3Ingeniería del software 3
Ingeniería del software 3
 
DotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en AzureDotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en Azure
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
 
Análisis Forense Memoria RAM
Análisis Forense Memoria RAMAnálisis Forense Memoria RAM
Análisis Forense Memoria RAM
 
Los casos de uso para In-Memory OLTP
Los casos de uso para In-Memory OLTPLos casos de uso para In-Memory OLTP
Los casos de uso para In-Memory OLTP
 
Intro to DTrace
Intro to DTraceIntro to DTrace
Intro to DTrace
 
Grupo#4 trabajo colaborativo1
Grupo#4 trabajo colaborativo1Grupo#4 trabajo colaborativo1
Grupo#4 trabajo colaborativo1
 
Por qué hacemos persistencia de datos
Por qué hacemos persistencia de datosPor qué hacemos persistencia de datos
Por qué hacemos persistencia de datos
 
PRACTICAS 5 Y 6 PAO
PRACTICAS 5 Y 6 PAOPRACTICAS 5 Y 6 PAO
PRACTICAS 5 Y 6 PAO
 
Cesnavarra 2009-boletín 3
Cesnavarra 2009-boletín 3Cesnavarra 2009-boletín 3
Cesnavarra 2009-boletín 3
 
Presentac..
Presentac..Presentac..
Presentac..
 
Computación evolutiva no tradicional
Computación evolutiva no tradicionalComputación evolutiva no tradicional
Computación evolutiva no tradicional
 
Introduccion ethical hacking - chakan
Introduccion ethical hacking - chakanIntroduccion ethical hacking - chakan
Introduccion ethical hacking - chakan
 
Taller definición bugs
Taller definición bugsTaller definición bugs
Taller definición bugs
 
+Ficha tecnica investigación tecnológica (11)
+Ficha tecnica investigación tecnológica (11)+Ficha tecnica investigación tecnológica (11)
+Ficha tecnica investigación tecnológica (11)
 

postgresql carga volumen stress

  • 1. Carga Volumen y Estrés... Ing. Lennin Caro Pérez
  • 2. El evento......... La Comunidad de base de datos libres (PostgreSQL) En el país existen una gran cantidad de personas muy talentosos y comprometidos con las TIL Solo necesitan la oportunidad y los espacios para demostrar lo que se puede hacer Demostrar con hechos y no con palabras Gracias al CNTI por el apoyo e impulso al uso de las tecnologías de información libres... y por la oportunidad de estar aquí
  • 3. ¿Por que estas aquí? Para conocer procesos de prueba de un ambiente y validar si es confiable. Para saber de alguna herramienta de prueba y simulación en ambientes. Para cumplir con un estándar de rendimiento del ambiente Para ver otras alternativas y herramientas de prueba ambientes Estas de paso
  • 4. ¿Para que sirve realizar prueba de Estrés? Detectar fallas de hardware. Detectar fallas de configuración Detectar fallas de diseño. Detectar fallas de integridad. Optimizar el uso del hardware y software. Detectar si se necesita modificar los parámetros de entonación Detectar si los parámetros de entonación son los correctos
  • 5. Pruebas de rendimiento o estrés “son las pruebas que se realizan, desde una perspectiva, para determinar lo rápido que realiza una tarea un sistema en condiciones particulares de trabajo.” (Wikipedia)
  • 6. ¿Que buscamos? El objetivo de una prueba de carga es verificar el rendimiento e identificar problemas que ocurre cuando todos los procesos se ejecutan para responder las necesidades de los usuarios.
  • 7.
  • 9. Pero antes de comenzar ......
  • 11. Que tipo de base de datos tengo
  • 12. ¿Por donde comenzar? Memoria memtest86+ STREAM Procesador (CPU) Habilitar timing en la ejecución de consultas Disco (I/O) dd Bonnie++ sysbench
  • 13. ¿Por donde comenzar? Base de datos pgbench Tsung Procesos (Backend) Se incluye en las pruebas de aplicativo Aplicativo Tsung Siege Apache Bench
  • 14. Procesador timing CREATE TABLE test (id INTEGER PRIMARY KEY); INSERT INTO test VALUES (generate series(1,100000)); EXPLAIN ANALYZE SELECT COUNT(*) FROM test;
  • 16. dd blocks = 250,000 * (gigabytes of RAM) time sh -c "dd if=/dev/zero of=bigfile bs=8k count=blocks && sync" time dd if=bigfile of=/dev/null bs=8k
  • 17. IOPS
  • 18. pgbench pgbench -S -c 4 -t 20000 pgbench starting vacuum...end. transaction type: SELECT only scaling factor: 10 query mode: simple number of clients: 4 number of threads: 1 number of transactions per client: 20000 number of transactions actually processed: 80000/80000 tps = 17070.599733 (including connections establishing) tps = 17173.602799 (excluding connections establishing)
  • 20. tsung (Emulando el test apache ab) <load duration="5" unit="minute"> <arrivalphase phase="1" duration="10" unit="minute"> <users maxnumber="10" arrivalrate="100" unit="second"></users> </arrivalphase> </load> <sessions> <session probability="100" name="ab"> <for from="1" to="1000" var="i"> <request> <http url="http://myserver/index.html" method="GET"></http> </request> </for> n</session> </sessions>
  • 22. Tips interesante Si lo tienes que hacer más de una vez automatizalo Lleva anotaciones de lo que haces y los resultados Realiza las pruebas una y otra y otra vez Activa y almacena todos los logs posibles Realiza pruebas incrementales, desde un escenario sensillo hasta un escenario complejo Documenta todo Comparte tus experiencia