Lección 1: Latencias Flashcards

1
Q

¿Qué es la latencia?

A

En computación: el tiempo necesario para realizar una operación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Ejemplos importancia latencia.

A
  • Tiempo de recepción de precios.
  • Tiempo de procesamiento del precio y lanzamiento de la orden.
  • Tiempo que tarda la orden en llegar a mercado.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Asocia las siguientes unidades de latencia con su valor en segundos:

  • Milisegundos
  • Microsegundos
  • Nanosegundos
A

Milisegundos → 0,001 segundo,
Microsegundos → 0,000001 segundo,
Nanosegundo → 0,000000001 segundo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cuales de las siguientes características pertenecen al protocolo NTP?

a. Requiere de hardware especializado
b. Utiliza un servidor maestro que tiene el tiempo de referencia
c. Permite medir con precisión de nanosegundos
d. Es un estándar de la industria
e. Las siglas significan Network Time Protocol

A

b. Utiliza un servidor maestro que tiene el tiempo de referencia
d. Es un estándar de la industria
e. Las siglas significan Network Time Protocol

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

La precisión de NTP únicamente permite utilizarlo en redes locales

  • Verdadero
  • Falso
A
  • Falso
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

HDRHistogram permite reservar inicialmente todo el espacio de memoria que necesita para almacenar y realizar todos los cálculos de percentiles sobre las latencias.

  • Verdadero
  • Falso
A
  • Verdadero
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Un percentil del 90% en latencia indica que el 90% de las operaciones tienen tiempos peores que el valor dado en el percentil

A
  • Falso
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

En operaciones de trading tener una latencia mas alta me da ventaja ya que puedo realizar operaciones en menor tiempo.

  • Verdadero
  • Falso
A
  • Falso
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

A la hora de reducir los valores de Jitter en Trading que es mas importante…

Seleccione una:

a. Que el Jitter sea predictible aunque no sea el mas bajo posible
b. Que el Jitter medio sea lo mas bajo posible

A

a. Que el Jitter sea predictible aunque no sea el mas bajo posible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Calcular el Jitter máximo, mínimo y medio es suficiente para conocer el comportamiento del sistema

  • Verdadero
  • Falso
A
  • Falso
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Para calcular la latencia de red entre dos sistemas…

Seleccione una:

a. Siempre debemos hacer round-trip
b. Debemos tener en cuenta los sub-sistemas y por tanto los diferentes saltos del mensaje
c. Es suficiente con calcular la diferencia entre el envío del mensaje y la recepción final

A

b. Debemos tener en cuenta los sub-sistemas y por tanto los diferentes saltos del mensaje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Para poder calcular latencia entre dos aplicaciones sin utilizar round-trip necesito que las mediciones de tiempos entre ambas estén sincronizados.

Seleccione una:
Verdadero
Falso

A
  • Verdadero
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

El tiempo de computo del valor del reloj del sistema en milisegundos suele tardar centenas de nanosegundos.

Seleccione una:
Verdadero
Falso

A
  • Falso
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Si queremos medir la latencia de una operación pero la operación tarda menos que la unidad de medida no hay ninguna forma de medir la latencia de esa operación salvo que utilicemos una unidad de medida menor.

Seleccione una:
Verdadero
Falso

A
  • Falso
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Medir nanosegundo en Windows puede producir problemas en aplicaciones multi-hilo cuando los tiempos a calcular son muy pequeños.

Seleccione una:
Verdadero
Falso

A
  • Verdadero
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Empareja las siguientes unidades de latencia con casos de uso típicos donde se suele utilizar esta unidad para hacer mediciones.

Microsegundos

Respuesta 1
Tiempo de escritura en disco, envío en red local

Milisegundos

Respuesta 2
Acceso a base de datos, carga de una web

Nanosegundos

Respuesta 3
Comunicaciones con IPC

A

Microsegundos

Respuesta 1
Tiempo de escritura en disco, envío en red local

Milisegundos

Respuesta 2
Acceso a base de datos, carga de una web

Nanosegundos

Respuesta 3
Comunicaciones con IPC

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

El Jitter es la variación de tiempo entre mediciones de latencia consecutivas

Seleccione una:
Verdadero
Falso

A
  • Verdadero
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Si necesito calcular los percentiles de millones de operaciones, ¿cual es la mejor solución?

Seleccione una:

a. Utilizar “buckets” para aproximar los valores de los percentiles
b. Almacenar todos los valores y realizar el cálculo cuando terminen las operaciones

A

a. Utilizar “buckets” para aproximar los valores de los percentiles

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Que podemos hacer para medir latencia entre dos aplicaciones? Marca todas las respuestas correctas.

Seleccione una o más de una:

a. Marcar con un “timestamp” el mensaje y utilizar round-trip para medir en el emisor
b. Marcar con un “timestamp” el mensaje y medir cuando el mensaje llega al receptor
c. Utilizar round-trip, calcular el tiempo de envío y esperar que vuelva el mensaje para conocer el tiempo total

A

a. Marcar con un “timestamp” el mensaje y utilizar round-trip para medir en el emisor
b. Marcar con un “timestamp” el mensaje y medir cuando el mensaje llega al receptor
c. Utilizar round-trip, calcular el tiempo de envío y esperar que vuelva el mensaje para conocer el tiempo total

20
Q

Para medir correctamente latencias debo tener en cuenta… (Marca todas las correctas)

Seleccione una o más de una:

a. Los envíos y recepciones no son consecutivos y secuenciales
b. El numero de operaciones por segundo esperadas
c. La latencia acumulada cuando una operación tarda mas de lo esperado

A

a. Los envíos y recepciones no son consecutivos y secuenciales
b. El numero de operaciones por segundo esperadas
c. La latencia acumulada cuando una operación tarda mas de lo esperado

21
Q

La forma en que medimos la latencia depende de multiples factores, marca aquellos que son importantes:

Seleccione una o más de una:

a. Si medimos entre aplicaciones o dentro de la misma aplicación
b. Si puedo introducir trazas en los mensajes
c. Si las aplicaciones están en la misma máquina
d. La precisión con la que queremos medir
e. El tipo de tarjeta de red que utilicemos

A

a. Si medimos entre aplicaciones o dentro de la misma aplicación
b. Si puedo introducir trazas en los mensajes
c. Si las aplicaciones están en la misma máquina
d. La precisión con la que queremos medir

22
Q

PTP como mecanismo de sincronización de tiempos es menos costoso de implementar que NTP

Seleccione una:
Verdadero
Falso

A
  • Falso
23
Q

En mensajería de baja latencia es una práctica común el guardar todas las mediciones en base de datos o en fichero para poder procesarlas después.

Seleccione una:
Verdadero
Falso

A
  • Falso
24
Q

Para medir el comportamiento de un sistema teniendo en cuenta la carga

Seleccione una o más de una:

a. Comienzo por cargas bajas y voy subiendo hasta que encuentre congestión
b. Comienzo con cargas altas y voy bajando hasta que desaparezca la congestión.
c. Debo tener en cuenta y simular situaciones de micro-ráfagas

A

a. Comienzo por cargas bajas y voy subiendo hasta que encuentre congestión
c. Debo tener en cuenta y simular situaciones de micro-ráfagas

25
Q

¿Que características tiene medir en nanosegundos? Selecciona todas las respuestas correctas…

Seleccione una o más de una:

a. Utiliza el reloj del sistema para devolver el tiempo actual
b. Funciona mejor en Linux y Solaris que en Windows
c. Funciona siempre bien en multi-hilo y entre cores de CPU
d. Unicamente es válido dentro de la misma aplicación

A

b. Funciona mejor en Linux y Solaris que en Windows

d. Unicamente es válido dentro de la misma aplicación

26
Q

Calcular percentil 99% es suficiente en la mayoría de los casos para asegurar el buen comportamiento de mi sistema.

Seleccione una:
Verdadero
Falso

A
  • Falso
27
Q

Para calcular la latencia acumulada debo considerar siempre el rato esperado de envío y recepción de mensajes.

Seleccione una:
Verdadero
Falso

A
  • Verdadero
28
Q

HdrHistogram almacena los valores exactos de todas las mediciones de latencia de forma óptima para realizar los cálculos de percentiles

Seleccione una:
Verdadero
Falso

A
  • Falso
29
Q

La forma mas sencilla y eficiente de medir el Jitter es utilizar histogramas sobre percentiles

Seleccione una:
Verdadero
Falso

A
  • Verdadero
30
Q

HdrHistogram no puede utilizarse directamente en aplicaciones multi-hilo ya que no está sincronizado

Seleccione una:
Verdadero
Falso

A
  • Falso
31
Q

A la hora de medir latencias en Java es importante ejecutar la operación a medir múltiples veces antes de comenzar las mediciones para “calentar” el sistema.

Seleccione una:
Verdadero
Falso

A
  • Verdadero
32
Q

Formas de medir latencia.

  • En misma aplicación
  • Tiempo de duración menor a la precisión.
  • Mensajes entre aplicaciones
A
  • En una misma aplicación: la diferencia entre el tiempo justo antes y justo después de la operación.
  • Si la operación tarda menos que la precisión d medición podemos repetir la operación varias veces y tomar el tiempo medio.
  • Mensajes entre aplicaciones (tienen que estar sincronizadas): marcar mensaje con timestamp y enviarlo a la otra aplicación. Comparar el timestamp en recepción con el tiempo de envío. (50 ns cómputo)
33
Q

Medición en milisegundos.

A
  • Se usa el reloj interno de la máquina.
  • Se obtiene valor en milisegundos desde 1 de Enero de 1970 (misma máquina física).
  • Sincronización de relojes con NTP.
34
Q

Medición en nanosegundos.

A
  • Se usa número de ticks de reloj de la CPU desde que arrancó la aplicación. (40 ns cómputo)
  • Solo es válido dentro de la misma aplicación.
35
Q

Medición de latencias en misma máquina.

  • Milisegundos
  • Nanosegundos
A
  • Mili: sin problemas

- Nano: hay que usar roundtrip

36
Q

¿Qué es roundtrip?

A
  • La aplicación 1 envía el timestamp.
  • Aplicación 2 lo recibe y lo reenvía sin modificar.
  • Aplicación 1 calcula el timestamp nuevo y lo compara con el original.
  • La latencia es la mitad del tiempo que tarde el roundtrip completo.
37
Q

Medición de latencias entre máquinas.

A
  • Sincronización de relojes (solo es sencillo para milisegundos usando NTP, más preciso con PTP pero requiere de hardware especial.)
  • Round trip: válido para mili y nanosegundos.
38
Q

¿Qué es el Jitter?

A

Es la variación de latencias en operaciones iguales.

39
Q

¿Cómo se mide el Jitter? (Con el objetivo de reducirlo en lo posible)

A

Uso de histogramas. (HdrHistogram)

40
Q

¿Qué es un percentil?

A

Un percentil de x indica que el x% de las medidas están por debajo de ese valor.

41
Q

Librería HdrHistogram.

A
  • Inicialización: rango de medidas y precisión de la medida.
  • División del rango en buckets.
  • Número de elementos en cada bucket para hacer el cálculo (a mayor número de buckets, mayor precisión).
42
Q

¿Qué percentil es suficiente?

A

99,99% es suficiente. A partir del 99% hay casos extremos.

43
Q

¿Qué son las latencias acumuladas?

A

Es la latencia real del sistema considerando la congestión. Las operaciones con retardo afectan a las siguientes (suma de retardos).

44
Q

¿Qué es NTP?

A
  • Network Time Protocol (NTP) es un protocolo estándar para sincronizar los relojes entre distintas máquinas.
  • Usa UDP como capa de transporte (resistencia ante latencia variable).
  • Precisión entre 10 milisegundos y 200 microsegundos.
45
Q

¿Qué es PTP?

A
  • Precision Time Protocol es un protocolo más preciso que NTP para sincronizar.
  • Precisión menor de 1 microsegundo, cercana a 100 nanosegundos.
  • Sincroniza a nivel de aplicación (no el relo del sistema).
  • Requiere hardware especializado (relojes de alta precisión).