

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 對重複資料刪除進行故障診斷
<a name="data-dedup-ts"></a>

使用下列資訊，以協助疑難排解設定和使用重複資料刪除時的一些常見問題。

**Topics**
+ [重複資料刪除無法運作](#data-dedup-not-working)
+ [重複資料刪除值意外設定為 0](#data-dedup-stopped)
+ [刪除檔案後，檔案系統不會釋放空間](#data-dedup-freed-space)

## 重複資料刪除無法運作
<a name="data-dedup-not-working"></a>

若要查看重複資料刪除的目前狀態，請執行 `Get-FSxDedupStatus` PowerShell 命令以檢視最新重複資料刪除任務的完成狀態。如果一或多個任務失敗，您可能不會看到檔案系統上可用的儲存容量增加。

重複資料刪除任務失敗的最常見原因是記憶體不足。
+ Microsoft [建議](https://docs.microsoft.com/en-us/windows-server/storage/data-deduplication/install-enable#faq)最好擁有每 1 TB 邏輯資料的 1 GB 記憶體 （或每 1 TB 邏輯資料至少 350 MB)。使用 [Amazon FSx 效能表](performance.md#performance-table)來判斷與檔案系統輸送量容量相關聯的記憶體，並確保記憶體資源足以容納您的資料大小。如果不是，您需要[將檔案系統的輸送量容量增加](managing-throughput-capacity.md)到符合每 1 TB 邏輯資料 1 GB 記憶體需求的層級。
+ 重複資料刪除任務設定為 Windows 建議的預設值 25% 記憶體配置，這表示對於具有 32 GB 記憶體的檔案系統，8 GB 將可用於重複資料刪除。記憶體配置是可設定的 （使用 `Set-FSxDedupSchedule`命令搭配參數 `–Memory`)。請注意，使用較高的記憶體配置進行刪除可能會影響檔案系統效能。
+ 您可以修改重複資料刪除任務的組態，以減少所需的記憶體量。例如，您可以限制最佳化以在特定檔案類型或資料夾上執行，或設定最佳化的最小檔案大小和存留期。當您的檔案系統負載最少時，我們也建議您將重複資料刪除任務設定為在閒置期間執行。

如果重複資料刪除任務的時間不足而無法完成，您也可能會看到錯誤。您可能需要變更任務的最長持續時間，如中所述[修改重複資料刪除排程](managing-data-dedup.md#set-dedup-sched)。

如果重複資料刪除任務長時間失敗，且在此期間檔案系統上的資料有所變更，則後續重複資料刪除任務可能需要更多資源才能第一次成功完成。

## 重複資料刪除值意外設定為 0
<a name="data-dedup-stopped"></a>

對於已設定重複資料刪除的檔案系統， `SavedSpace`和 的值意外`OptimizedFilesSavingsRate`為 0。

當您增加檔案系統的儲存容量時，這可能會在儲存最佳化程序期間發生。當您增加檔案系統的儲存容量時，Amazon FSx 會在儲存最佳化程序期間取消現有的重複資料刪除任務，將資料從舊磁碟遷移到新的、較大的磁碟。儲存最佳化任務完成後，Amazon FSx 會在檔案系統上繼續重複資料刪除。如需增加儲存容量和儲存最佳化的詳細資訊，請參閱[管理儲存容量](managing-storage-configuration.md#managing-storage-capacity)。

## 刪除檔案後，檔案系統不會釋放空間
<a name="data-dedup-freed-space"></a>

重複資料刪除的預期行為是，如果刪除的資料已節省空間，則在垃圾收集任務執行之前，不會實際釋放檔案系統上的空間。

您可能會發現有用的做法是設定排程，以便在刪除大量檔案後立即執行垃圾收集任務。垃圾回收任務完成後，您可以將垃圾回收排程設回其原始設定。這可確保您可以立即從刪除中快速查看空間。

使用下列程序，將垃圾收集任務設定為在 5 分鐘內執行。

1. 若要確認已啟用重複資料刪除功能，請使用 `Get-FSxDedupStatus`命令。如需 命令及其預期輸出的詳細資訊，請參閱 [檢視已儲存空間的數量](managing-data-dedup.md#get-dedup-status)。

1. 使用下列設定從現在起 5 分鐘執行垃圾回收任務的排程。

   ```
   $FiveMinutesFromNowUTC = ((get-date).AddMinutes(5)).ToUniversalTime()
   $DayOfWeek = $FiveMinutesFromNowUTC.DayOfWeek
   $Time = $FiveMinutesFromNowUTC.ToString("HH:mm")
   
   Invoke-Command -ComputerName ${RPS_ENDPOINT} -ConfigurationName FSxRemoteAdmin -ScriptBlock {   
       Set-FSxDedupSchedule -Name "WeeklyGarbageCollection" -Days $Using:DayOfWeek -Start $Using:Time -DurationHours 9
   }
   ```

1. 垃圾收集任務執行且空間已釋出後，請將排程設回其原始設定。