我是否通過在其上保留符號連結來錘擊我的 SSD?
我沒有配置我的 Nextcloud (Linux/Nginx/PGsql/PHP) 伺服器來查找安裝在我的旋轉硬碟上的文件夾
/mnt/HDDfs/
,而是符號連結/var/Nextcloud_Data
,因此它指向/mnt/HDDfs/Nextcloud_Data
然後將我的 Nextcloud 配置指向/var/Nextcloud_Data
. 這樣,如果我決定更改掛載點的名稱,我就不必接觸數據庫,因為我可以簡單地編輯符號連結。起初這似乎是個好主意,但後來我想起我的根
/
驅動器是 SSD,與傳統磁碟相比,它只能承受有限的磨損;即使在當今的磁碟上使用磨損是微不足道的,一遍又一遍地敲擊驅動器的特定單元並不是最好的主意。我要問的是:當程序載入和/或寫入其中包含符號連結的位置時,作業系統是否每次都從源位置載入符號連結,然後將其跟隨到真正的目標並在那裡執行操作或它會“記憶體”符號連結並直接翻譯
/var/Nextcloud_Data/filename
嗎/mnt/HDDfs/Nextcloud_Data/filename
?附加資訊:
- 作業系統:帶有所有最新更新檔和升級的 Ubuntu Server 18.04 LTS。
- 磁碟驅動器:通過 SATA 連接的 WD RED 硬碟和 PCIe M.2 (Samsung 960 EVO) SSD。
- 文件系統:兩個驅動器都是用Ext4文件系統 格式化的 GPT 。
- 主機板:華碩Z170-Deluxe(台式機主機板)
很好,有很多原因。
首先,快閃記憶體驅動器關注的是寫入次數,而不是讀取次數。
其次,這種擔憂適用於韌體較差或驅動程序較差的較舊或較便宜的驅動器,但不適用於現代作業系統上的現代驅動器。現代 SSD 具有足夠好的磨損均衡,現代作業系統具有區分覆蓋和擦除 ( TRIM ) 的驅動程序,因此需要很長時間才能開始關注寫入次數。在這個時代,磁驅動器經常因機械相關原因而當機,例如濕度或灰塵放置在錯誤的位置或機械損壞。
讀取符號連結可能會根據系統配置更新其訪問時間。Linux 預設每天只更新一次文件的訪問時間。因此,即使擔心對驅動器的寫入次數,一次寫入也是一天,而不是通過符號連結進行一次訪問。
核心將有關符號連結的資訊保存在其磁碟記憶體中,就像它從磁碟讀取的任何其他資訊一樣。它不保留寫著“重定向到”的記憶體,但它維護著一個寫著“是一個目標是”的符號連結的記憶體。這意味著只要記憶體條目仍然存在,它就不會從驅動器中讀取。這與訪問時間的更新頻率無關:這是訪問文件時間的函式,而不是從驅動器傳輸文件資訊的時間。
/var/Nextcloud_Data/*filename*``/mnt/HDDfs/Nextcloud_Data/*filename*``/var/Nextcloud_Data``/mnt/HDDfs/Nextcloud_Data