本地 IIS 下載 266MB 檔案耗時 22 秒 (≈12 MB/s),遠低於千兆網卡理論值。
瓶頸分析
- 網卡頻寬: 若為 **100Mbps 網卡**,理論上限 12.5 MB/s (100/8),實測 12 MB/s **已跑滿頻寬**。
- 硬碟讀取: 機械硬碟持續讀取 80-150 MB/s,單檔案複製約 30-60 MB/s,非瓶頸。
- HTTP/IIS 開銷: 緩衝、壓縮、日誌、防毒掃描均佔用 CPU/IO。
- AJAX 下載機制: 瀏覽器將整個回應緩存在記憶體/磁碟再觸發下載,大檔案易 OOM,建議改用
<a href="..." download> 或流式 Blob 下載。
提速建議
- 升級 **千兆/萬兆網卡** 並確認交換器/纜線支援。
- 啟用 IIS **靜態內容壓縮** (動態內容不壓縮)。
- 大檔案提供下載連結而非 AJAX,讓瀏覽器原生下載器處理斷點續傳。
- 使用
Content-Disposition: attachment + X-Accel-Redirect (Nginx) / HttpResponse.TransmitFile (ASP.NET) 釋放應用執行緒。