Problema de la manada atronadora


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

En informática , el problema de la manada estruendosa ocurre cuando una gran cantidad de procesos o subprocesos que esperan un evento se despiertan cuando ocurre ese evento, pero solo un proceso es capaz de manejar el evento. Cuando los procesos se despierten, cada uno de ellos intentará manejar el evento, pero solo uno ganará. Todos los procesos competirán por los recursos, posiblemente congelando la computadora, hasta que la manada se calme nuevamente. [1]

Mitigación

El kernel de Linux serializará las respuestas para las solicitudes a un descriptor de archivo único, por lo que solo se activa un hilo (proceso). [2] Para epoll () en la versión del kernel de Linux 4.5 se agregó el indicador EPOLLEXCLUSIVE, por lo que varios conjuntos de epoll (diferentes subprocesos o procesos) pueden esperar en el mismo recurso y solo se activará un conjunto. Para determinadas cargas de trabajo, esta marca puede dar lugar a una reducción significativa del tiempo de procesamiento. [3]

De manera similar, en Microsoft Windows, los puertos de finalización de E / S pueden mitigar el problema de la manada estruendosa, ya que se pueden configurar de modo que solo uno de los subprocesos que esperan en el puerto de finalización se despierte cuando ocurre un evento. [4]

En los sistemas que se basan en un mecanismo de retroceso (por ejemplo, retroceso exponencial ), los clientes volverán a intentar las llamadas fallidas, esperando una cantidad de tiempo específica entre reintentos consecutivos. Para evitar el problema de la manada atronadora, la fluctuación se puede introducir intencionalmente, para romper la sincronización entre los clientes evitando así colisiones. En este enfoque, la aleatoriedad se agrega a los intervalos de espera entre reintentos, de modo que los clientes ya no estén sincronizados.

Ver también

Referencias

  1. ^ "Problema de la manada atronadora" . El archivo de jerga (versión 4.4.7) . Consultado el 9 de julio de 2019 .
  2. ^ "¿Existe el problema Thundering Herd en Linux más" . stackoverflow.com . Consultado el 9 de julio de 2019 .
  3. Madars, Vitolins (5 de diciembre de 2015). "Prueba de parche EPOLLEXCLUSIVE Linux Kernel" . mvitolina . Consultado el 11 de agosto de 2020 .
  4. ^ "Puertos de finalización de IO - blog de Matt Godbolt" . xania.org . Consultado el 23 de enero de 2019 .

5. [1]

enlaces externos

  1. ^ Setiawan, Tedi. "CÓDIGOS HTML PARSE" . SiTeDay Exe . Consultado el 15 de septiembre de 2021 .