PowerFlex 寫入效能問題
Summary: 執行網路維護后,某些SDS的寫入性能現在很差。
Symptoms
劇本
在執行機架頂端交換器 (TOR) 的網路維護後會出現此問題,通常是將交換器重新開機。
- SDS 節點對數據網路使用 LACP 綁定。
- 只有使用執行維護的交換機的 SDS 節點才會受到影響。
- 特定存儲池/PD 的寫入性能可能高達數百毫秒。
- 同一組 SDS 的讀取性能正常。
- diag_counters.txt中的“NET_LONG_RCV_GRP_PROCESS”顯示值快速攀升,而最後一次增量則保持低位。
範例:
Comp :: Counter :: Value :: ExtData :: Last Counted(Ms) NET :: NET_LONG_RCV_GRP_PROCESS :: 3756453 :: 0xffffffff :: 3120 NET :: NET_LONG_RCV_GRP_PROCESS :: 3825395 :: 0xffffffff :: 960 NET :: NET_LONG_RCV_GRP_PROCESS :: 3705906 :: 0xffffffff :: 1320 NET :: NET_LONG_RCV_GRP_PROCESS :: 4094919 :: 0xffffffff :: 1230 NET :: NET_LONG_RCV_GRP_PROCESS :: 3954725 :: 0xffffffff :: 1390 NET :: NET_LONG_RCV_GRP_PROCESS :: 3594178 :: 0xffffffff :: 420 NET :: NET_LONG_RCV_GRP_PROCESS :: 3702403 :: 0xffffffff :: 680 NET :: NET_LONG_RCV_GRP_PROCESS :: 3830299 :: 0xffffffff :: 510 NET :: NET_LONG_RCV_GRP_PROCESS :: 3491713 :: 0xffffffff :: 330 NET :: NET_LONG_RCV_GRP_PROCESS :: 4155343 :: 0xffffffff :: 690
在此示例中,第三列中的值很高(如果觀看直播,則會增加)。第五列顯示上次遇到它的時間,對於大部分SDS來說不到一秒。
在健全的 PowerFlex 系統中,第三列不會向上計數,第五列將向上計數,因為最後一次遇到的時間會隨著時間增加而增加。
若要即時觀看計數器,可以執行以下命令:
#Set 受影響保護網域中 SDS 的變數。在此處輸入正確的 PD 名稱。
pd=<PD_NAME>
#Set 保護網域中 SDS 數量的變數。依照原樣執行。
num=`scli --query_protection_domain --protection_domain_name $pd |grep Protection |awk '{print $16}'`
#login 以允許最後一個命令正常工作。
scli --login --username admin
從每個 SDS 的「query_diag_counters」命令 #Watch 正確的計數器
watch -d -n 1 "for x in \$(scli --query_all_sds | grep -A $num $pd | grep ID | awk '{print \$5}'); do echo \$x; scli --query_diag_counters | grep -A30 \$x | grep -Em1 '\$x|NET_LONG_RCV_GRP_PROCESS'; done"
在健康的系統中,預計第五列會隨著時間的流逝而定期計數,第三列會是靜態的。如果第五列時間保持低,而第三列正在計數,這是問題的癥狀。
影響
用戶端的寫入效能不佳。
Cause
上面跟蹤的「NET_LONG_RCV_GRP_PROCESS」表示將 TCP 資料發送到遠端 SDS 需要超過 1 秒才能完成。
此延遲可能是由於網路維護後初始 TCP 壅塞視窗較小,且未在作業系統中適當設定 OOO (無序) 封包參數所造成。這會導致 SDS 到 SDS 套接字無法有效通訊,導致多次 TCP 重新傳輸並減少分段大小。這會造成更高的寫入延遲,因為這只會影響 SDS 至 SDS 插槽。
讀取延遲不會受到影響,因為 SDC (用戶端) 會針對每個讀取 IO 要求使用單一 SDS 進行通訊,而且不依賴 SDS 對 SDS TCP 通訊。
Resolution
如需立即的因應措施,請在受影響的每個節點上重新啟動 SDS 服務。重新啟動 SDS 程序時,請使用維護模式。當節點開始維護時,「pkill sds」就足夠了。
若要防止將來發生此問題,請執行以下操作:
- 套用此公開知識庫文章中討論的系統設定:
Storage Data 伺服器節點可能不包含正確的系統調整參數,進而導致效能問題
- 如果使用 RHEL/CentOS 7,請將 SDS 節點上的作業系統核心版本更新為「3.10.0-1160.66.1」或更新版本
受影響的版本
PowerFlex 3.x
已修正問題的版本
RCM 版本 3.6.3.2 或更新版本
IC 版本 38.363.02 或更新版本