部署 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