Opened 18 years ago
Closed 18 years ago
#1457 closed enhancement (wontfix)
Change default values for TFW_DEF_BUF_SIZE, TFW_MAX_WRITE_SIZE, and TFW_MIN_WRITE_SIZE
Reported by: | Owned by: | danielk | |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | mythtv | Version: | 0.19 |
Severity: | medium | Keywords: | IOBOUND ThreadedFileWriter.cpp TFW_DEF_BUF_SIZE |
Cc: | Ticket locked: | no |
Description
Currently, the constants TFW_DEF_BUF_SIZE, TFW_MAX_WRITE_SIZE, and TFW_MIN_WRITE_SIZE are defined within ThreadedFileWriter?.cpp as:
TFW_DEF_BUF_SIZE = 2*1024*1024 (2MB) TFW_MAX_WRITE_SIZE = TFW_DEF_BUF_SIZE / 4 (512KB) TFW_MIN_WRITE_SIZE = TFW_DEF_BUF_SIZE / 8 (256KB
These values often prove too small to handle two HDTV recording streams plus a single recording stream, let alone other demands on the storage bandwidth like additional recording streams and mythcommflag, without generating IOBOUND errors.
After extensive testing over several weeks (see http://www.gossamer-threads.com/lists/mythtv/users/183808?search_string=tfw_def_buf_size;#183808 for an in-process discussion thread I started), I have found that changing the values to:
TFW_DEF_BUF_SIZE = 64*1024*1024 (64MB) TFW_MAX_WRITE_SIZE = TFW_DEF_BUF_SIZE / 8 (8MB) TFW_MIN_WRITE_SIZE = TFW_DEF_BUF_SIZE / 256 (256KB; i.e., no change from current)
signficantly increases recording robustness. On my frontend/backend with CIFS-mounted video storage NAS using ext3, the above settings let me do the following, none possible without IOBOUND errors with the default:
- Record two HDTV streams while watching a third.
- Record two HDTV streams while commflagging.
- Record three HDTV streams.
- Delete a one-hour (~7.5GB) or smaller HDTV program while recording an HDTV stream.
Not going to increase memory usage by 62MB per recorder for everybody.