Learning only ends when your life does!
Printable View
Then this was my most successful good deed of the day ever :P
Okay, just a quick update...
I have a few SSD's (OS, main downloads and an extra.) attached and inside the PC I use daily (nightly... whatever), they have power. You got me thinking about all the clone, backups and archival mess that I had with an USB dust case and connection for each and all. Then I purchased a 7-Port USB 3.1 bar than I can periodically turn on each of the drives for a power exercise to stimulate those little electrons in them to lessen any decay.
What do you think anon?
(I believe you definitely know more about SSD's than most folks and as a matter of course (although it was I believe to be two years ago), much was also discussed on reddit about what you mentioned.)
Depending on how long they have been unpowered for, it's hardly a bad idea to do a full read of all sectors from beginning to end and check the SMART attributes just to be sure everything's fine. After that, turning on once a month should be more than enough. For USB disk enclosures you'll want to run this as administrator and reboot. Otherwise, the port won't be powered off when ejecting the drive, buffered data may not be written, and the Unsafe Shutdowns count will increase.
While not strictly related, this is my optimization checklist for SSDs that are regularly powered and used.Code:reg add "HKLM\SYSTEM\CurrentControlSet\services\usbhub\hubg" /v "DisableOnSoftRemove" /t REG_DWORD /d 0x1 /f
Spoiler: Show
- Set a fixed size for the swap file and/or place it on a regular HDD. If you have enough RAM, it will rarely be used anyway.
- Disable hibernation, it requires a large amount of writes by definition and regular sleep mode is usually good enough.
- (Windows 7 only) Disable scheduled disk defragmentation because it's not smart enough to know SSDs don't require it.
- Disable prefetch and SuperFetch, the performance advantages are not worth the extra writes.
As of Windows 10, both reenable themselves when turned off via the registry, so disabling the SysMain service is the only way. Unfortunately that also kills memory compression and ReadyBoost, so it's a tradeoff. Also note using Enable-MMAgent on PowerShell immediately reenables and starts SysMain.- Disable ReadyBoot (not ReadyBoost) for the same reasons.
- Disable search indexing for the same reasons.
- (SATA SSDs only) Make sure AHCI mode is enabled.
- Do overprovisioning, i.e. don't partition the entire drive to leave unused sectors and therefore trade capacity for longer life. Note many drives do this on firmware with a hidden block of spare sectors, so it may not be necessary (but the benefits will stack).
- Run these commands as administrator.
Code:rem Enable TRIM
fsutil behavior set disabledeletenotify 0
rem Disable short filename generation
fsutil behavior set disable8dot3 1
rem Disable NTFS encryption (some SSDs compress internally, but encrypted data is highly entropic)
fsutil behavior set disableencryption 1
rem Disable paging file encryption
fsutil behavior set encryptpagingfile 0
rem Disable NTFS last access timestamp (default as of Vista, but just in case)
fsutil behavior set disablelastaccess 1
- Disable all disk-related OS power management settings like spindown timeout, standby timeout, APM/AAM, DIPM/HIPM, etc. Those are either inapplicable to, or have negligible impact on, SSDs.
- Install the latest firmware and regularly check for upgrades.
- Install the manufacturer's disk controller (AHCI or NVMe) drivers unless there are specific reasons not to.
- Install the manufacturer's management software, it's usually fluff but sometimes unlocks vendor-specific features.
- Use a mechanical HDD or make a RAM disk for transient stuff like browser caches and temporary files.
Feedback is welcome, especially regarding items specific to non-Windows systems.
An extra for VMware users. Add this to your .vmx files to reduce the amount of writes for virtual machines stored in a solid drive. Keep in mind that if any of these values are already defined, you should edit the existing lines instead, otherwise the VM will silently refuse to load.
Code:# Disable vmware.log
logging = "FALSE"
# Disable scoreboard files
vmx.scoreboard.enabled = "FALSE"
# Disable .vmem files (under Linux, uncomment the second line)
mainMem.useNamedFile = "FALSE"
#mainmem.backing = "swap"
# Don't create partial snapshots
mainMem.partialLazySave = "FALSE"
mainMem.partialLazyRestore = "FALSE"
# Uncomment to change storage directory for (large yet transient) .vmss, .vmsn and .vmem files
#workingDir = "X:\whatever"
A generic way to reduce SSD writes is to once a day, search for all files modified within the last 24 hours, then investigate what they're associated with. This is how I was able to find and stop SleepStudy and various other event traces, WIA logs, unnecessary event providers, StorPort benchmarks and other stuff I'm forgetting.
Be aware that under Windows this won't find writes to the paging file, event logs and (some) tracing data because their timestamps aren't updated. You'll also need to use RegScanner to know exactly what's changed in the registry.
Whew! It's a lot of babysitting, but the speeds are worth it, and since many new laptops don't even have a SATA slot for an HDD you may not have a choice anyway.
Thank YOU! Your the best! Got it all copied! :)
(I forgot to mention the USB bar has on / off mechanical switches for each of the 7 ports.... best of all Win 10 recognizes each and can do the "Eject" safely thingy if needed!)