increase disk space slack recommendation

As discussed in #84 and #116.
This commit is contained in:
Scott Lamb 2021-04-01 09:39:14 -07:00
parent a434b42672
commit 96255efd3e

View File

@ -183,19 +183,21 @@ In the user interface,
each camera. each camera.
3. Assign disk space to your cameras back in "Directories and retention". 3. Assign disk space to your cameras back in "Directories and retention".
Leave a little slack (at least 100 MB per camera) between the total limit Leave a little slack between the total limit and the filesystem capacity,
and the filesystem capacity, even if you store nothing else on the disk. even if you store nothing else on the disk. 1 GiB per camera should be
There are several reasons this is needed: plenty. This is needed for a few reasons:
* The limit currently controls fully-written files only. There will be up * Up to `max(120, flush_if_sec)` seconds of video can be written before
to two minutes of video per camera of additional video. being counted toward the usage because the recording doesn't count until
* The rotation happens after the limit is exceeded, not proactively. it's fully written, and old recordings can't be deleted until the
* Moonfire NVR currently doesn't account for the unused space in the final next database flush. So a 8 Mbps video stream with `flush_if_sec=300`
filesystem block at the end of each file. will take up to (8 Mbps * 300 sec / 8 bits/byte) = 300 MB ~= 286 MiB
* Moonfire NVR doesn't account for the space used for directory listings. of extra disk space.
* If a file is open when it is deleted (such as if a HTTP client is * If a file is open when it is deleted (such as if a HTTP client is
downloading it), it stays around until the file is closed. Moonfire NVR downloading it), it stays around until the file is closed. Moonfire NVR
currently doesn't account for this. currently doesn't account for this.
* Smaller factors: deletion isn't instantaneous, and directories
themselves take up some disk space.
4. Add a user for yourself (and optionally others) under "Users". You'll need 4. Add a user for yourself (and optionally others) under "Users". You'll need
this to access the web UI once you enable authentication. this to access the web UI once you enable authentication.