1. 程式人生 > 實用技巧 >什麼是TSO(tidb配置tso)

什麼是TSO(tidb配置tso)

部署 Drainer
獲取 initial_commit_ts
使用 binlogctl 工具生成 Drainer 初次啟動所需的 tso 資訊,命令:

$ cd /home/tidb/tidb-ansible
$ resources/bin/binlogctl -pd-urls=http://127.0.0.1:2379 -cmd generate_meta
INFO[0000] [pd] create pd client with endpoints [http://192.168.199.118:32379]
INFO[0000] [pd] leader switches to: http://192.168.199.118:32379, previous:
INFO[0000] [pd] init cluster id 6569368151110378289
2018/06/21 11:24:47 meta.go:117: [info] meta: &{CommitTS:400962745252184065}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

分析:什麼是tso
檢視tso狀態
ethtool -k ens160

TSO(TCP Segmentation Offload),是利用網絡卡對TCP資料包分片,減輕CPU負荷的一種技術,也有人叫 LSO (Large segment offload) ,TSO是針對TCP的,UFO是針對UDP的。如果硬體支援 TSO功能,同時也需要硬體支援的TCP校驗計算和分散/聚集 (Scatter Gather) 功能。如果網絡卡支援TSO/GSO,可以把最多64K大小的TCP payload直接往下傳給協議棧,此時IP層也不會進行segmentation,網絡卡會生成TCP/IP包頭和幀頭,這樣可以offload很多協議棧上的記憶體操作,節省CPU資源,當然如果都是小包,那麼功能基本就沒啥用了。

————————————————
對TSO的簡單理解就是:
比如:我們要用汽車把3000本書送到另一個城市,每趟車只能裝下1000本書,
那麼我們就要書分成3次來發。如何把3000本書分成3份的事情是我們做的,汽車司機只負責運輸。
TSO的概念就是:我們把3000本書一起給司機,由他去負責拆分的事情,這樣我們就有更多的時間處理其他事情。
對應到計算機系統中,“我們”就是CPU,“司機”就是網絡卡。
在網路系統中,傳送tcp資料之前,CPU需要根據MTU(一般為1500)來將資料放到多個包中傳送,對每個資料包都要新增ip頭,tcp頭,分別計算IP校驗和,TCP校驗和。如果有了支援TSO的網絡卡,CPU可以直接將要傳送的大資料傳送到網絡卡上,由網絡卡硬體去負責分片和計算校驗和。

來源:https://blog.csdn.net/jiangbenchu/article/details/99973801