Update metrics tracking and enhance cache eviction strategies
Release Tag / release (push) Successful in 34s
Release Tag / release (push) Successful in 34s
- Added metrics for bytes saved from cache to improve performance insights. - Updated cache eviction strategies in MemoryFS and DiskFS to include metrics tracking for hits and evictions. - Enhanced README.md with updated garbage collection algorithm descriptions and recommendations for cache usage. - Introduced new madviseSequential functionality for improved memory access hints on Unix systems. - Adjusted validation configuration in examples to better reflect realistic usage scenarios.
This commit is contained in:
@@ -261,11 +261,11 @@ SteamCache2 supports different garbage collection algorithms for memory and disk
|
||||
**Available GC Algorithms:**
|
||||
|
||||
- **`lru`** (default): Least Recently Used - evicts oldest accessed files
|
||||
- **`lfu`**: Least Frequently Used (P1 real impl) - evicts by lowest AccessCount (tiebreak older ATime); uses existing FileInfo counters
|
||||
- **`fifo`**: First In, First Out - evicts oldest created files (predictable)
|
||||
- **`largest`**: Size-based - evicts largest files first (maximizes file count)
|
||||
- **`smallest`**: Size-based - evicts smallest files first (maximizes cache hit rate)
|
||||
- **`hybrid`**: Recency + frequency hybrid (P1 meaningful) - evicts by lowest time-decayed score (GetTimeDecayedScore combining ATime + AccessCount)
|
||||
- **`lfu`**: Least Frequently Used - evicts by lowest AccessCount (tiebreak older ATime); uses existing FileInfo counters
|
||||
- **`fifo`**: First In, First Out - evicts oldest created files (predictable and terrible all in one) don't ever use it
|
||||
- **`largest`**: Size-based - evicts largest files first (maximizes small file count) if used on memory greatly improves access time
|
||||
- **`smallest`**: Size-based - evicts smallest files first (maximizes large file count) probably best used for disk since there kinda slow with small files
|
||||
- **`hybrid`**: Recency + frequency hybrid - evicts by lowest time-decayed score (GetTimeDecayedScore combining ATime + AccessCount)
|
||||
|
||||
**Recommended Algorithms by Cache Type:**
|
||||
|
||||
@@ -273,18 +273,19 @@ SteamCache2 supports different garbage collection algorithms for memory and disk
|
||||
- **`lru`** - Best overall performance, good balance of speed and hit rate
|
||||
- **`lfu`** - Excellent for gaming cafes where popular games stay cached
|
||||
- **`hybrid`** - Optimal for mixed workloads with varying file sizes
|
||||
- **`largest`** - Crazy good for access times since disks are slow with lots of tiny files
|
||||
|
||||
**For Disk Cache (Slow, Large Size):**
|
||||
- **`hybrid`** - Recommended for optimal performance, balances speed and storage efficiency
|
||||
- **`largest`** - Good for maximizing number of cached files
|
||||
- **`smallest`** - Good for maximizing linear reads which is the only place spinning disks have performance don't expect too much though steam kinda uses small files
|
||||
- **`lru`** - Reliable default with good performance
|
||||
|
||||
**Use Cases:**
|
||||
- **Gaming Cafes**: Use `lfu` for memory, `hybrid` for disk
|
||||
- **LAN Events**: Use `lfu` for memory, `hybrid` for disk
|
||||
- **Home Use**: Use `lru` for memory, `hybrid` for disk
|
||||
- **Testing**: Use `fifo` for predictable behavior
|
||||
- **Large File Storage**: Use `largest` for disk to maximize file count
|
||||
- **Gaming Cafes**: Use `largest` for memory, `hybrid` for disk
|
||||
- **LAN Events**: Use `largest` for memory, `hybrid` for disk
|
||||
- **Home Use**: Use `largest` for memory, `hybrid` for disk
|
||||
- **Testing**: Use `fifo` for nothing its pointless
|
||||
- **Large File Storage**: Use `smallest` for disk get rid of the slow tiny files first
|
||||
|
||||
### DNS Configuration
|
||||
|
||||
|
||||
Reference in New Issue
Block a user