tspubtm 壓測工具的測試模型, 如下:
tspubtm(send) ---tcp--> MDC ---tcp--> tspubtm(recv)
※ tspubtm(send) / tspubtm(recv) 須為同設備
為了更精確的計算時差, 採用主機時間戳記
測試流程, 如下:
1. tspubtm(recv) 先啟動並連到 MDC, 以及訂閱行情
連線訂閱完成後, 會在無收取壓測資料 5秒後, 列表數據
2. tspubtm(send) 於 1. 啟動後的連線都完成後, 以及5秒退出前
開始發行假行情, 並且列表所發行的數量與耗時
參數與畫面 說明: 以下假設 MDC IP 在本機 127.0.0.1 若為跨機, 需修改
tspubtm(send)
例1: 模擬發行 50 商品, 1個成交, 伴隨4個委託簿, 委託簿深度5
每 10000us(10ms) 發行一次, 重複 50
因此總發行量為 50 * (1+4) * 50 = 12,500 筆
./tspubtm S 127.0.0.1 50 1 4 5 10000 50
※ 發行有權限問題, 因此無法指定 Port 統一走 9888, 因此跨機測試防火要注意
例2: 模擬發行 100 商品, 1個成交, 伴隨4個委託簿, 委託簿深度5
每 1000us(1ms) 發行一次, 重複 100
因此總發行量為 100 * (1+4) * 100 = 50,000 筆
./tspubtm S 127.0.0.1 100 1 4 5 1000 100
※ 使用此例, 要小心, mdc 預設保護上限 20,480 很容易發生, 而使測試失真
Publish L1+L2: 表示總筆數 5萬筆
tspubtm(recv)
例1: 模擬 10 個連線, 訂閱 50 個商品(L1+L2)
./tspubtm R 127.0.0.1:443 10 50
例2: 模擬 50 個連線, 訂閱 100 個商品(L1+L2)
./tspubtm R 127.0.0.1:443 50 100
Sess[#] 表示連線號
L1(max: 最大延遲us min: 最小延遲us avg:平均延遲us)
L2(max: 最大延遲us min: 最小延遲us avg:平均延遲us)
( Drop 數(非0表示有保護發動) / 合併封包表頭數量 / 總傳輸量(bytes))
這些數據, 還會因以下參數, 而有效率上的起伏
所以在調校時, 您可以調整 mdctsd 的參數, 來最佳化
TS.CompressLength 壓縮
TS.PacketLimitCount 行情包保護上限
TS.SplitProcessL2 L2 是否合併 L1 發行
TS.SendBufferKb socket 底層的傳送緩衝區


