Instead of configuring my Nextcloud (Linux/Nginx/PGsql/PHP) server to look for a folder on my spinning hard drive mounted at /mnt/HDDfs/
, I Sym-Linked /var/Nextcloud_Data
so it points to /mnt/HDDfs/Nextcloud_Data
and then pointed my Nextcloud config to /var/Nextcloud_Data
. This way, if I ever decide to change the name of my mountpoint, I don't have to touch the DB, as I can simply edit the Symbolic Link.
At first it seemed like a great idea, but then I remembered that my root /
drive is an SSD, which can only withstand limited wear compared to a traditional magnetic platter; even if wear by usage is marginal on nowadays' disks, hammering specific cells of a drive over and over isn't exactly the best idea.
What I'm asking is: when a program loads and/or writes to a location with a symlink in it, does the OS load the symlink every single time from the source location and then follow it to the real target and perform actions there or does it "cache" symlinks and translate /var/Nextcloud_Data/filename
to /mnt/HDDfs/Nextcloud_Data/filename
directly?
Additional info:
- Operating system: Ubuntu Server 18.04 LTS with all latest patches and upgrades.
- Disk Drives: a WD RED Hard Disk connected via SATA and a PCIe M.2 (Samsung 960 EVO) SSD.
- File Systems: both the drives are GPT formatted with Ext4 file systems.
- Motherboard: Asus Z170-Deluxe (a desktop board)
smartctl
and WEAR_LEVELING_COUNT if you are worried it is getting hit hard unnecessarily – ron Oct 12 '18 at 20:58