我會建議你暫時先把這個問題擱置一旁——至少一開始如此——因為你描述的是一個效能隨時間下降的問題。相容性問題——至少就我所知——通常是比較二元的:要嘛能用,要嘛不能用。根據你的問題描述,我確實不認為相容性是根本原因。
我認為我們應該回到你所描述的「問題是什麼」和「問題不是什麼」來聚焦。
讓我們試著再縮小一點範圍……
- 你的網路上是否有其他 NAS 或伺服器設備可以讓你的用戶端進行測試,以便你能明確判斷問題是否出在某一特定設備上?
- 你能否建立或設定某種可重複、可量化的測試,來獲得一些客觀的速度測試數據?例如,你可以寫一個 Windows Shell 腳本,將計時歸零,從 NAS 複製一個或多個檔案到主機(或從主機到 NAS),然後記錄所花的時間。如果你有這樣一個簡單的 Shell 腳本,能夠在不同主機和不同時間點重複執行,對你會非常有幫助。
- 你的設備應該是透過某些網路設備作為中介連接——你可能在工作站和 NAS 之間有一個或多個乙太網路交換器。例如,首先……你是否能夠把用戶端實體移到 NAS 的同一地點,重新執行測試,排除所有中間網路設備的影響?再來,你的網路設備是受管理的還是非管理型的?如果是前者,也許你可以用 SNMP 工作站從網路設備拉取一些有用的效能數據。
- 在你的 QNAP NAS 上,可以透過 SSH 執行「ethtool」——你可以 Google 查詢所有指令列選項的意義及如何組合使用來取得資料……在 Windows 上,你可以用 Powershell 的「Get-NetAdapterStatistics」來查詢作業系統對本機網路介面的效能評價……
- 我已經提過,但我認為如果你能在相關主機間測試非 CIFS 協定會有幫助。我建議你試試 NFS——設定 NAS 支援 NFS 連線(記得正確設定版本)會是個不錯的開始。如果不行,也可以考慮用 ftp 或 sftp。
- 第六點是顯而易見的——變更。問題發生在你已經順利運作一段時間之後,這強烈暗示有什麼東西改變了。你沒有描述你的組織規模或你對技術變更的控管嚴謹度……所以有沒有可能是某個只和你主要關注範圍間接相關的問題造成的?也許檢查一下變更紀錄,或和其他管理你環境的人員聊聊?
- 第七點是可靠性……不是針對 NAS(這方面通常是要嘛能用要嘛不能用),而是例如你有沒有哪顆硬碟狀況邊緣?你的 NAS 是否有設定在偵測到硬碟問題時對外發送警報?S.M.A.R.T. 監控報告是否一切正常?
- 第八點是你的網路使用率。你有沒有辦法檢查網路上是否有其他設備佔用頻寬,導致 NAS 很難傳送封包?這也是為什麼我建議第一步是把你的用戶端工作站和 NAS 實體放在一起——臨時把它們接到同一個交換器,確保只有這兩台設備連接,然後重跑效能測試。如果還是失敗,那你就知道問題出在其中一台設備;如果成功,那你就可以「反向追蹤」——逐步把工作站移遠,直到效能下降。
- 現在我們來談一些比較特殊的可能原因……你有沒有檢查過你的工作站在「Remote File Dirt Page」閾值方面的表現?這可能會導致你遇到的這種問題。基本上,Windows 用戶端對「髒」和「未儲存」資料有預設緩衝區設定(通常大約 5GB)。一旦超過這個閾值,系統就會停止接收新資料,直到已寫入磁碟。有個登錄檔參數「RemoteFileDirtyPageThreshold」(可以 Google 查詢),你可以在測試前後調整,看看有沒有差異。
- 如果你還沒這麼做,務必也去問問 Microsoft 支援社群——規模更大(原因顯而易見),也許有人遇過和你描述的情況類似的問題。
我很清楚上面列出的方法有點像散彈槍式的做法(我有試著讓測試順序有點邏輯性)。希望即使你沒辦法完全照著做,也能給你一些可以追蹤的方向……