한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Libro blanco del lag en juegos › L11 Disco

Latencia de búsqueda (seek) en HDD HDD seek latency

ID de la causa dk-hdd · Responsable principal Infraestructura de servidores (Equipo de infraestructura) · También Infraestructura de BD (Equipo de infraestructura), Desarrollo de servidor (Equipo de desarrollo)

Abrir la ficha interactiva con gráficos y simulaciones →

En un HDD el cabezal tiene que moverse sobre el plato (búsqueda, seek), así que cada lectura o escritura de datos dispersos tarda cerca de 10 ms.

Por qué Servidores antiguos o almacenamiento económico con HDD → Efecto Unos 10 ms por cada lectura o escritura dispersa → En pantalla Guardados y cargas lentos en general

Síntomas
Input lag
Factores
Latencia
A quién afecta
Todo el servidor
Cuándo
Siempre
Responsable
Responsable principal Infraestructura de servidores (Equipo de infraestructura) · También Infraestructura de BD (Equipo de infraestructura), Desarrollo de servidor (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Diseñar para escrituras secuenciales.
Tareas (Equipo de infraestructura)
Servidores/SO: cambiar a SSD (empezando por los discos de guardado con muchas lecturas y escrituras dispersas). Servidores de BD: cambiar primero a SSD los discos de la BD con más lecturas y escrituras dispersas.
En el gráfico
Siempre alto · Latencia de lectura y escritura en disco (r_await, w_await)
Dónde mirar
Comprobar con lsblk -d -o NAME,ROTA si es un disco rotacional (HDD) y revisar r/s y w/s, y r_await y w_await de iostat -x 1. En servidores virtuales, comprobar el tipo de disco en las especificaciones de la nube o del almacenamiento
Se confirma si
Es un disco rotacional y, con solo entre decenas y algo más de cien solicitudes por segundo, r_await y w_await están siempre entre varios ms y decenas de ms
Se descarta si
Si es SSD y la latencia es alta, apunta a la cola saturada (dk-iops) o a créditos de ráfaga agotados (dk-burst)
Se verifica con
Con herramientas de infraestructura (no hace falta código del juego)

Fuentes

  1. Designs, Lessons and Advice from Building Large Distributed Systems (LADIS 2009 keynote) Google
    Una búsqueda en disco: 10 ms; leer 1 MB secuencial del disco: 20 ms
  2. Exos X18 Data Sheet Seagate
    HDD de 7,200 rpm: latencia rotacional media de 4.16 ms, 170 IOPS en lectura aleatoria 4K
  3. lsblk(8) — Linux manual page util-linux
    -o elige las columnas de salida; las columnas de topología del dispositivo incluyen ROTA (si es rotacional)
  4. ABI stable symbols Linux kernel
    /sys/block/(disco)/queue/rotational: indica si el dispositivo es rotacional o no rotacional
  5. iostat(1) — Linux manual page sysstat
    -x: r/s y w/s, r_await y w_await (tiempo medio de servicio por solicitud, incluida la espera en la cola)

Ver también

Misma capa: L11 Disco

Causas de otras capas con el mismo síntoma (Input lag)

Ver la ficha interactiva con gráficos y simulaciones