大文件跨服务器传送
2015年9月15日 19:02:47
<高性能mysql>里的內(nèi)容
場景是將數(shù)據(jù)從一個(gè)服務(wù)器傳遞到另一個(gè)服務(wù)器中用于mysql數(shù)據(jù)初始化或恢復(fù)
本質(zhì)的原理是壓縮傳輸
1. 使用管道命令, 壓縮的時(shí)候直接傳輸, 不再壓縮到本地, 再傳輸?shù)搅硪慌_server壓縮
server1$ gzip -c /server1/data/file | ssh root@server2 "gunzip -c - > /server2/data/file"
2. 上一步用了ssh加密, 也可以不用加密的nc命令傳輸, 需要監(jiān)聽一個(gè)端口
server2$ nc -l -p 12345 | gunzip -c - > /server2/data/file //server2監(jiān)聽端口,等待數(shù)據(jù)傳遞進(jìn)行解壓縮
server1$ gzip -c - /server1/data/file | nc -q 1 server2 12345
注意:
1. 壓縮命令的選擇: 更快的壓縮/解壓但壓縮率不高, 慢一些的壓縮速度, 但是壓縮率比較高 (gzip -l 壓縮更快, lzo壓縮更快, bzip2壓縮率更高)
2. 壓縮的時(shí)候用tar打包, 他解壓的時(shí)候會自動(dòng)命名
3. 用rsync支持?jǐn)帱c(diǎn)續(xù)傳
4. 通過監(jiān)控來選擇更好的方法 vmstat -n 5, 查看是磁盤IO還是cpu速度是瓶頸(千兆網(wǎng)卡的話,但cpu/磁盤不咋滴, 瓶頸就可能在讀寫文件上, 不壓縮反而更快)
?
總結(jié)
- 上一篇: 用例设计工具PICT — 输入组合覆盖
- 下一篇: This is my first tim