Add warning for below suggested SHM calculation

This commit is contained in:
Nick Mowen 2023-01-30 15:09:55 -07:00
parent 116edce3dc
commit da3db39ead

View File

@ -3,6 +3,7 @@ import multiprocessing as mp
from multiprocessing.queues import Queue from multiprocessing.queues import Queue
from multiprocessing.synchronize import Event as MpEvent from multiprocessing.synchronize import Event as MpEvent
import os import os
import shutil
import signal import signal
import sys import sys
from typing import Optional from typing import Optional
@ -329,6 +330,22 @@ class FrigateApp:
self.frigate_watchdog = FrigateWatchdog(self.detectors, self.stop_event) self.frigate_watchdog = FrigateWatchdog(self.detectors, self.stop_event)
self.frigate_watchdog.start() self.frigate_watchdog.start()
def check_shm(self) -> None:
current_shm = round(shutil.disk_usage("/dev/shm").total / 1000000, 1)
calculated_shm = 30
for _, camera in self.config.cameras.items():
calculated_shm += round(
(camera.detect.width * camera.detect.height * 1.5 * 9 + 270480)
/ 1048576,
1,
)
if calculated_shm < current_shm or True:
logger.warning(
f"The current SHM size of {current_shm}MB is too small, recommend increasing it to at least {calculated_shm}MB."
)
def start(self) -> None: def start(self) -> None:
self.init_logger() self.init_logger()
logger.info(f"Starting Frigate ({VERSION})") logger.info(f"Starting Frigate ({VERSION})")
@ -377,6 +394,7 @@ class FrigateApp:
self.start_recording_cleanup() self.start_recording_cleanup()
self.start_stats_emitter() self.start_stats_emitter()
self.start_watchdog() self.start_watchdog()
self.check_shm()
# self.zeroconf = broadcast_zeroconf(self.config.mqtt.client_id) # self.zeroconf = broadcast_zeroconf(self.config.mqtt.client_id)
def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None: def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None: