本帖最后由 Pale_Cheung 于 2016-3-8 15:16 编辑
我抽时间测试了下速度.
主机信息
cpu 3770k @3.5G (default)
memory 8GB (三星大号 512M) *4
plextor m3p 256G * 2 (当前实测读写都超过400)
Windows Server 2008 R2 with sp1
每次我都用 \windows\system32\ftp.exe 作为ftp客户端来下载。当前路径"%tmp%" "c:\...\temp"
ftp.exe可以利用windows文件缓存。下载时候,全部空闲内存都可以做缓存,所以写入不存在压力。
第一种
虚拟化: Hyper-v 2.0
虚拟网卡 hostonly
vm os : Windows Server 2008 R2 with sp1
ftp服务器: (系统自带)iis 7.5
第二个虚拟硬盘文件放在第二块ssd上,虚拟硬盘挂载点为C:\inetpub\ftproot (确保最佳读取性能)
1.5G 视频:
- 连接到 192.168.8.2。
- 220 Microsoft FTP Service
- 331 Anonymous access allowed, send identity (e-mail name) as password.
- 230 User logged in.
- 对 Pale@MVG.ZPALE.COM 匿名登录成功
- ftp> get dat/e01.mkv
- 200 PORT command successful.
- 125 Data connection already open; Transfer starting.
- 226 Transfer complete.
- ftp: 收到 1572130891 字节,用时 4.03秒 390591.53千字节/秒。
复制代码
381MB/s
5.2G iso文件
- 连接到 192.168.8.2。
- 220 Microsoft FTP Service
- 331 Anonymous access allowed, send identity (e-mail name) as password.
- 230 User logged in.
- 对 Pale@MVG.ZPALE.COM 匿名登录成功
- ftp> get dat/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso
- 200 PORT command successful.
- 125 Data connection already open; Transfer starting.
- 226 Transfer complete.
- ftp: 收到 5545527296 字节,用时 14.60秒 379752.61千字节/秒。
- ftp> qui
复制代码
371MB/s
第二种
虚拟化:Workstation 12 Pro
VM Hardware version 12
3vCPU
4GB
虚拟网卡 hostonly
ethernet0.virtualDev = "vmxnet3" (将默认的网卡改为10Gbps的)
vm os : Windows Server 2008 R2 with sp1
ftp服务器: (系统自带)iis 7.5
第二个虚拟硬盘文件放在第二块ssd上,虚拟硬盘挂载点为C:\inetpub\ftproot (确保最佳读取性能)
vm内 as ssd 持续读取测试 :As SSD, Copy Test, ISO, 357MB/s
5.2G iso文件
- 连接到 192.168.137.2。
- 220 Microsoft FTP Service
- 331 Anonymous access allowed, send identity (e-mail name) as password.
- 230 User logged in.
- 对 Pale@MVG.ZPALE.COM 匿名登录成功
- ftp> get dat/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso
- 200 PORT command successful.
- 125 Data connection already open; Transfer starting.
- 226 Transfer complete.
- ftp: 收到 5545527296 字节,用时 31.22秒 177616.02千字节/秒。
复制代码
173MB/s
第三种
省略的信息同上一种情况
vm os :CentOS Linux release 7.2.1511 (Core)
第二个虚拟硬盘文件放在第二块ssd上,
mount
/dev/sdb1 on /var/ftp type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
(还是为了最佳读取性能)
selinux Enforcing
setsebool -P ftpd_connect_all_unreserved=1
firewalld running
firewall-cmd --add-service=ftp --permanent
vsftpd-3.0.2-10.el7.x86_64
- 连接到 192.168.37.2。
- 220 (vsFTPd 3.0.2)
- 331 Please specify the password.
- 230 Login successful.
- 对 Pale@MVG.ZPALE.COM 匿名登录成功
- ftp> get pub/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso
- 200 PORT command successful. Consider using PASV.
- 150 Opening BINARY mode data connection for pub/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso (5545527296 bytes).
- 226 Transfer complete.
- ftp: 收到 5545527296 字节,用时 31.55秒 175769.49千字节/秒。
复制代码
172MB/s
第四种
直接从vm上的内存读取文件 (/dev/shm就是分享内存的)
省略的信息同上一种情况
vMemory 7GB
[root@cos72 vsftpd]# grep shm /etc/fstab
tmpfs /dev/shm tmpfs size=6g 0 0
setsebool -P ftpd_full_access=1
修改/etc/vsftpd里配置文件,允许root登陆
- 连接到 192.168.37.2。
- 220 (vsFTPd 3.0.2)
- 用户(192.168.37.2:(none)): root
- 331 Please specify the password.
- 密码:
- 230 Login successful.
- ftp> get /dev/shm/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso
- 200 PORT command successful. Consider using PASV.
- 150 Opening BINARY mode data connection for /dev/shm/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso (5545527296 bytes).
- 226 Transfer complete.
- ftp: 收到 5545527296 字节,用时 29.93秒 185308.00千字节/秒。
复制代码
181MB/s
结论
vmware workstation 的10G虚拟网卡和 hyper-v的差距很大。
造成 workstation 虚拟机在万兆网卡速度卡在181MB上不去的瓶颈是cpu。
虚拟网卡完全由cpu模拟,在传输文件的时候vmware-vmx.exe cpu占用率为13%,刚好是1/8。3770k一共 8ht,所以表明vmware workstation 模拟网卡只能利用到 1ht,cpu有多快决定了,网卡的最高速度。
不过话说回来,181MB对机械硬盘来说,是很满意的速度了。
如果追求速度的话,vmware workstation 的这个解决方案还是很好的。 |