Let’s take a fictional set of hardware specs:
-Ryzen 7 3700x
-32-64GB of Ram
-1-2 512GB NVMe’s
-1-2 SATA SSD’s
Most users put their Windows 10 on the NVMe’s either in raid1 or using them as two individual devices.
The SATA drives are used to store stuff, maybe the mayority of the steam library and normal documents. They might be Raid1
The memory above 16GB is mostly unutilized for the regular consumer without the need for video editing.
Here are a few fun facts about SSD’s:
-They are not meant for long term storage.
They lose data over time. Essentially the cells are written to once and given a certain electrical charge. This charge is never refreshed unless the cell is overwritten and diminishes over time. HDD’s do not have this problem. This issue is called “de-trapping” and also applies to USB sticks
SSD’s fail at the same time if run in RAID1. Both of them will reach their max TBWD at the same time and fail simultaneously, probably within a single week. The HDD’s do not have this problem.
So, what can we do with this information?
Well, we have memory, we have SSD’s and we have HDD’s.
What would AngryAdmin do?
He would install proxmox on two USB drives and mirror them with ZFS.
Configure a mirrored ZFS pool of the two 4TB HDD’s
Attach whatever SSD’s are avail to this pool of HDD’s as L2ARC persistent cache.
Install windows 10 as a virtual machine in proxmox, passthrough a few USB controllers and the GPU. Give theVM 24GB ram if total mem is 64GB, 16GB if total mem is 32GB. ZFS will use the rest as read cache(ARC) and write cache(ZIL)
Windows, Steam and important data is now stored on a pool consisting of one mirrored vdev backed by whatever SSD’s were present before. These SSD’s are striped in what could resemble RAID0 yielding twice the read performance.
Imagine having two NVM’es backing these 4TB disks.. The data you use most often will be cached on the NVMe and read at twice the speed of a single set of RAID1 NVMe. After windows and important stuff is cached, set options zfs mfuonly=1
Moreover, if the NVMe break, which they will eventually, the data is not lost, it is still stored on the two HDD’s
You now fully utilize the space of your NVMe’s. You speed up the entire system by having the ARC present data to your VM’s when needed. Of course ARC is cleared when you reboot, but persistent L2ARC is not.
You are now utilizing both your memory and your nvme’s and get 98-99% bare metal performance.
If you feel like it, add another GPU, install a 2nd windows, attach a 2nd keyboard and mouse and last but not least, another monitor to the 2nd GPU. have a friend over and play games on the same PC 2 people.
Regular users waste 16GB ram if having 32GB total. They waste SSD capacity by mirroring two drives. This solves that 🙂
My storage system currently looks like this:
6x2TB disks each mirrored to form 3 sets of mirrors. These 3 mirrors are striped “(Raid10) but not really raid10” 2x240GB SSD’s are attached to this pool of 6TB data capacity as 480GB speedy L2ARC cache.
A second pool with a 12 year old 1TB and a relativly new 4TB disk. The first to be replaced soon. The pool will auto-expand to 4TB when I replace the 1TB disk. This pool holds temporary data that is not important but I also do not want the IOPS this data on “storage2” requires interfering with IOPS on “storage”
Windows users probably do not utilize their hardware effeciently.
Let’s take a fictional set of hardware specs:
One thought on “Windows users probably do not utilize their hardware effeciently.”
Your fictional hardware setup is really close to my actual setup except I don’t utilize raid and the 32gb of ram is in fact because I do video editing. On top of that, all the hard drives I have installed are utilized for storage which I know is terrible as I have no backups of anything should a hard drive pass away BUT the point of my comment was that your suggestion sounds intriguing and although it took a second read over to fully comprehend what each step meant (basic end user here who doesn’t run a server and is more like a hobbyist tech nerd wannabe), I understand more simply it translates to efficient use of the hardware, improved performance, and some relief of anxiety in case of inevitable drive failure. So I guess my question to you is, for the purpose of clarification, this turns my standard installation into a virtual one, but in doing so, utilizes the read/write speeds of my NVM drives and SSD drives so that whatever data is being used off my HDDs will feel superiorly faster and in turn, make everything run ultra smooth and in a very simplified way means I no longer am dealing with the bottleneck of hard drive write/read speeds in general?