使用tar+lz4/pigz+ssh更快的数据传输
前面一篇介绍了如何最大限度的榨取SCP的传输速度,有了这个基础,就可以进一步的使用压缩来加速传输速度了。只使用scp,传输速率
前面一篇介绍了如何最大限度的榨取SCP的传输速度,有了这个基础,就可以进一步的使用压缩来加速传输速度了。只使用scp,传输速率最快约90MB,本文通过压缩将把最快传输速率提升到约250MB/s(包括解压的过程)。
目录
使用tar+lz4+ssh的方式能够获得最大的传输性能:
time tar -c sendlog/|pv|lz4 -B4|ssh -c arcfour128 \ -o"MACs umac-64@openssh.com" 10.xxx.xxx.36 "lz4 -d |tar -xC /u01/backup_supu" 3.91GiB 0:00:16 [ 249MiB/s] real 0m16.067s user 0m15.553s sys 0m16.821s
249MB/s,妥妥的。是最原始scp(40MB/s)的6倍,原来400GB传输需要约3小时,现在只需要27分钟了。
注1:lz4在解压方面的优异表现,使得他在本案例中非常重要。如果无需解压的传输,则可以考虑使用pigz/pbiz2
注2:使用pv观察,网络流量约80MB,所以使用nc替换ssh并不会有明显的性能提升
注3:lz4压缩使用-B4(64KB块大小),解压使用-B7(4MB块大小),是本案例的测试最优值
2. 关于lz4lz4是一个让"人见人爱、花见花开"的压缩算法,能够在多核上很好的扩展,压缩速度和压缩比并没有太大优势(pigz),但是他的解压速度非常惊人,本案例测试lz4的解压是gunzip的3倍(更多的对比测试)。因为压缩时高效的多核利用,,再加上惊艳的解压,lz4已经在非常多重要场合使用了:Linux3.11内核实现了LZ4,并可以使用其压缩和解压kernel image HBase:Add an LZ4 compression option to HFile等等(参考)。
对于需要频繁压缩、实时快速解压的场景来说,lz4非常适合。
3. 性能环境说明这里使用同上一篇文章相同的两台主机环境:ping获得RTT是17ms;使用iperf测试带宽是115MB(参考附录);
整个过程有几个阶段:磁盘读取-->打包(tar)-->压缩-->传输-->解压缩-->拆包-->落盘 对应了的速度测试:
3.1 磁盘读取和落盘磁盘读取(有page cache),能到3GB/s;磁盘写入约428MB:
# dd if=./sendlog.tar of=/dev/null bs=4096 count=1048576 1024002+1 records in 1024002+1 records out 4194314240 bytes (4.2 GB) copied, 1.33946 s, 3.1 GB/s # dd if=/dev/zero of=./x.zero.file bs=4096 count=1048576 1048576+0 records in 1048576+0 records out 4294967296 bytes (4.3 GB) copied, 10.0306 s, 428 MB/s
3.2 打包、拆包打包和拆包速度都大于350MB/s:
# time tar -cf sendlog.tar ./sendlog/ real 0m10.996s # time tar -xf sendlog.tar real 0m11.564s
3.3 压缩、解压缩关于各个压缩工具的性能(压缩、解压、压缩率)已经有很多人做了比较,本文不做详细讨论,这里选择gzip/pigz lz4 bzip做本测试的比较:
| input speed | output speed | rate | speed of decoder pigz -p 16 | 327.0MB/s | 57.2MB/s | 17.5% | 95 MB/s lz4 | 288.0MB/s | 79.2MB/s | 27.5% | 264 MB/s bzip2 | 4.9MB/s | 0.65MB/s | 13.1% | 25.6MB /s压缩工具的比较测试参考:
可以看到,lz4在压缩率上略微逊色(对比pigz),但是在解压速度上有这惊人的优势。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题
![Windows 11 中的 Telnet 完整教程 [安装/启用和故障排除]](https://img.php.cn/upload/article/000/000/164/168476253791019.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Telnet是“终端网络”的简称。它是用户可以用来将一台计算机连接到本地计算机的协议。这里,本地计算机是指启动连接的设备,而连接到本地计算机的计算机称为远程计算机。Telnet在客户端/服务器主体上运行,虽然它已经过时,但在2022年它仍然被许多人使用。许多人已经转向Windows11操作系统,这是微软提供的最新操作系统。&

如何从 iPad SSH 到 Mac这是一个两部分的演练。首先,您将在 Mac 上启用 SSH 服务器,然后您将使用 ssh 客户端应用程序从 iPad 连接到它。在 Mac 上,启动 SSH 服务器您可以通过打开名为 Remote Login 的功能在 Mac 上启用 SSH 服务器。转到 Apple 菜单 > 系统偏好设置 > 共享 > 启用“远程登录”,并选中“允许远程用户完全访问磁盘”框Mac 现在是一个 SSH 服务器,为您提供从 iPad 连接的 shell。注意

随着云计算和物联网的发展,远程操作服务器变得越来越重要。在Python中,我们可以使用Paramiko模块来轻松实现SSH远程操作。在本文中,我们将介绍Paramiko的基本用法,以及如何在Python中使用Paramiko来远程管理服务器。什么是ParamikoParamiko是一个用于SSHv1和SSHv2的Python模块,可以用于连接和控制SSH客户

对于大多数Windows用户来说,远程桌面协议(RDP)一直是远程管理的首选,因为它提供了友好的图形界面。然而,对于那些需要更精细控制的系统管理员来说,SSH更适合他们的需求。通过SSH,管理员可以通过命令行与远程设备进行交互,这样可以让管理工作更加高效。SSH的优势在于其安全性和灵活性,使得管理员能够更方便地进行远程管理和维护工作,尤其是在处理大量设备或进行自动化任务时。因此,尽管RDP在用户友好性方面表现出色,但对于系统管理员来说,SSH的功能和控制力更胜一筹。以前,Windows用户需要借

背景如果需要访问远程服务器的Mysql数据库,但是该Mysql数据库为了安全期间,安全措施设置为只允许本地连接(也就是你需要登录到该台服务器才能使用),其他远程连接是不可以直接访问,并且相应的端口也做了修改,那么就需要基于ssh来连接该数据库。这种方式连接数据库与Navicat里面界面化基于ssh连接一样。Navicat连接数据库安装支持库如果要连接Mysql,首先需要安装pymysqlpipinstallpymysql安装基于ssh的库sshtunnelpipinstallsshtunnel#

1.做ssh互信的目的1、在做集群的时候是需要SSH互信,它有利于在另一节点方便操作。2、当使用scp远程拷贝操作时,需要输入目标服务器的用户名和密码,这个时候可以做linux服务器之间ssh互信配置,这样在多个linux服务器之间做操作时就可以免密登陆。2.ssh互信配置的原理简而言之,服务器存储目标主机的证书,以便自动完成认证,无需输入密码。3.ssh互信配置步骤1、各节点生成自己的公钥和私钥对。2、将自己的公钥文件发送给对方。3、验证互信配置是否成功。4.配置ssh互信这里以MYDB01和

linux自带有ssh。linux系统会自带ssh软件,默认就是OpenSSH相关软件包,并将ssh服务添加为开机自启动,可以通过“ssh -V”命令来查看安装的ssh版本信息。执行“systemctl start sshd”命令即可启动sshd服务,默认端口使用的22端口。

在Debian11服务器上安装SSH并创建新用户允许SSH远程登录的步骤如下:步骤1:安装SSH为了安装SSH服务器,您需要以root用户或具有sudo特权的用户身份登录到您的Debian11服务器。在终端中执行以下命令来安装SSH服务器:sudoaptupdatesudoaptinstallopenssh-server步骤2:创建新用户要创建一个新用户,您可以使用adduser命令。将下面的命令替换为您想要的用户名:sudoaddusernew_username系统会提示您设置新用户的密码和其
