238 karma · joined May 25, 2024
Move your NVMe to the other slot, I bet you can't tell a difference without synthetic benchmarks.
If NVMe is your only option, I'd try to find a couple used 1.92TB enterprise class drives on ebay, and go ahead and mirror those without worrying about the different performance characteristics (the pool will perform as fast as the slowest device, that's all) - but 1.92TB isn't much for a media server.
In general, I'd say consumer class SSDs aren't worth the time it'll take you to install them. I'd happily deploy almost any enterprise class SSD with 50% beat out of it over almost any brand new consumer class drive. The difference is stark - enterprise drives offer superior performance through PLP-improved latency and better sustained writes (thanks to higher quality NAND and over-provisioning), while also delivering much better longevity.
I think you're pretty far into XY territory here. I'd recommend hanging out in r/homelab and r/zfs, read the FAQs, and then if you still have questions, maybe start out with a post explaining your high level goals and challenges.
- The ZIL is used exclusively for synchronous writes - critical for VMs, databases, NFS shares, and other applications requiring strict write consistency. Many conventional workloads won't benefit. Use `zilstat` to monitor.
- The cheap 16GB Optane devices are indeed great in terms of latency, but they were designed primarily for read caching and have significantly limited write speeds. If you need better throughput, look for the larger Optane models which don't have these limitations.
- SLOG doesn't need to be mirrored - the only risk is if your SLOG device fails at the exact moment your system crashes. While mirroring is reasonable for production systems, with these cheap 16GB Optanes you're just guaranteeing they'll wear out at the same time. You could kill one at a time instead. :)
- As for those 1TB NVMe devices for read cache (L2ARC) - that's probably overkill unless you have a very specific use case. L2ARC actually consumes RAM to track what's in the cache, and that RAM might be better used for ARC (the main memory cache). L2ARC only makes sense when you have well-understood workload patterns and your ARC is consistently under pressure - like in a busy database server or similar high-traffic scenario. Use `arcstat` to monitor your cache hit ratios before deciding if you need L2ARC.
In the future, we might not have to helicopter-parent the context window, but we definitely aren't there yet. I suspect nearly everyone who speaks poorly of LLMs simply hasn't figured this out yet.
I have created two simple scripts to help me with this workflow, `pc` and `po`. `pc` accepts a list of files and concatenates sanitized versions into the clipboard buffer, each file enclosed in triple backticks and prefixed with its filename. `po` accepts a single file, reverses sanitization and displays a diff between clipboard buffer and the specified file. It's not much, but it significant accelerates this workflow for me.
If the whole world hasn't completely left me behind by next week, I might look into adding some sort of AST-based diff/merge in `po`. It'd be nice not needing to constantly remind the LLM to output only changed files, complete, with no omissions.
This statement makes it difficult to believe you were there.
I suspect the real problem is much more fundamental: the vast majority of work we do is bullshit, and nobody gives a fuck about any of it.