Saltar al contenido principal

Errores de grabaciones

Tengo SecureVu configurado para grabar solo con movimiento, pero parece seguir grabando incluso sin movimiento. ¿Por qué?

Deberías:

  • Asegurarte de que la marca de tiempo de tu cámara esté enmascarada con una máscara de movimiento. Incluso si no hay movimiento en tu escena, tu configuración de movimiento puede ser lo suficientemente sensible como para contar la marca de tiempo como movimiento.
  • Si tienes habilitada la detección de audio, ten en cuenta que el audio que se escuche por encima de min_volume se considera movimiento.
  • Ajustar la configuración de detección de movimiento ya sea editando tu archivo de configuración o usando el Ajustador de movimiento de la interfaz.

Veo el mensaje: WARNING : Unable to keep up with recording segments in cache for camera. Keeping the 5 most recent segments out of 6 and discarding the rest...

Este error puede ser causado por varios problemas diferentes. El primer paso en la solución de problemas es habilitar el registro de depuración para la grabación. Esto habilitará el registro que muestra cuánto tiempo tardan las grabaciones en moverse desde la caché en RAM al disco.

logger:
logs:
securevu.record.maintainer: debug

Esto incluirá registros como:

DEBUG   : Copied /media/securevu/recordings/{segment_path} in 0.2 seconds.

Es importante dejar que esto se ejecute hasta que comiencen a ocurrir los errores, para confirmar que no hay una ralentización del disco en el momento del error.

Tiempos de copia > 1 segundo

Si el almacenamiento es demasiado lento para mantenerse al ritmo de las grabaciones, el mantenedor se quedará atrás y purgará las grabaciones más antiguas para asegurarse de que la caché no se llene y cause un fallo. En este caso, es importante diagnosticar por qué los tiempos de copia son lentos.

Verificar la utilización de RAM, swap, caché y disco

Si la CPU, la RAM, el rendimiento del disco o el I/O del bus son insuficientes, nada dentro de SecureVu ayudará. Es importante revisar cada aspecto de los recursos del sistema disponibles.

En Linux, algunas herramientas/comandos útiles para el diagnóstico serían:

  • docker stats
  • htop
  • iotop -o
  • iostat -sxy --human 1 1
  • vmstat 1

En los kernels de Linux modernos, el sistema utilizará algo de swap si está habilitado. Establecer vm.swappiness=1 ya no significa que el kernel solo hará swap para evitar OOM. Para evitar cualquier swap dentro de un contenedor, establece las asignaciones de memoria y memoria+swap para que sean iguales y deshabilita el swap estableciendo los siguientes parámetros de ejecución de Docker/Podman:

Ejemplo de Docker Compose

services:
securevu:
...
mem_swappiness: 0
memswap_limit: <MAXSWAP>
deploy:
resources:
limits:
memory: <MAXRAM>

Ejemplo de comando run

--memory=<MAXRAM> --memory-swap=<MAXSWAP> --memory-swappiness=0

NOTA: Estos son límites estrictos para el contenedor; asegúrate de que haya suficiente margen por encima de lo que muestra docker stats para tu contenedor. Se detendrá inmediatamente si alcanza <MAXRAM>. En general, ejecutar toda la caché y el espacio de archivos temporales en RAM es preferible al I/O de disco donde sea posible.

Verificar el tipo de almacenamiento

Montar un recurso compartido de red es una opción popular para almacenar grabaciones, pero esto puede llevar a tiempos de copia reducidos y causar problemas. Algunos usuarios han encontrado que usar NFS en lugar de SMB redujo considerablemente los tiempos de copia y solucionó el problema. También es importante asegurarse de que la conexión de red entre el dispositivo que ejecuta SecureVu y el recurso compartido de red sea estable y rápida.

Verificar las opciones de montaje

Algunos usuarios encontraron que montar una unidad mediante fstab con la opción sync causó un rendimiento dramáticamente reducido y llevó a este problema. Usar async en su lugar redujo enormemente los tiempos de copia.

Tiempos de copia < 1 segundo

Si el almacenamiento funciona rápidamente, este error puede ser causado por una carga de CPU demasiado alta en la máquina para que SecureVu tenga los recursos necesarios para mantenerse al día. Intenta apagar temporalmente otros servicios para ver si el problema mejora.