活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

手把手教你查看Ubuntu系统下各种数据传输速度的简单方法和实用技巧

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-21 16:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

在Ubuntu系统中,了解各种数据传输速度对于系统性能优化、故障排除和资源规划至关重要。无论是网络连接、磁盘读写、USB设备还是内存访问,数据传输速度都是衡量系统性能的重要指标。本文将详细介绍在Ubuntu系统下查看各种数据传输速度的简单方法和实用技巧,帮助您全面了解系统性能状况。

网络传输速度测试方法

使用speedtest-cli测试网络速度

speedtest-cli是一个命令行工具,可以测试您的互联网连接速度。它使用Speedtest.net的服务器来测试下载速度、上传速度和ping值。

首先,安装speedtest-cli:
  1. sudo apt update
  2. sudo apt install speedtest-cli
复制代码

安装完成后,运行以下命令进行测试:
  1. speedtest-cli
复制代码

您将看到类似以下的输出:
  1. Retrieving speedtest.net configuration...
  2. Testing from Your ISP (Your IP)...
  3. Retrieving speedtest.net server list...
  4. Selecting best server based on ping...
  5. Hosted by Your ISP (City) [10.00 km]: 20.12 ms
  6. Testing download speed................................................................................
  7. Download: 95.42 Mbit/s
  8. Testing upload speed......................................................................................................
  9. Upload: 23.18 Mbit/s
复制代码

如果您想生成一个分享结果的URL,可以使用--share选项:
  1. speedtest-cli --share
复制代码

使用iperf测试局域网速度

iperf是一个网络性能测试工具,可以测试TCP和UDP带宽质量。要使用iperf,您需要在两台计算机上安装它,一台作为服务器,另一台作为客户端。

首先,在两台计算机上安装iperf:
  1. sudo apt update
  2. sudo apt install iperf
复制代码

在服务器端(假设IP地址为192.168.1.100),运行以下命令:
  1. iperf -s
复制代码

在客户端,运行以下命令连接到服务器:
  1. iperf -c 192.168.1.100
复制代码

测试结果将显示带宽、抖动和丢包率等信息:
  1. ------------------------------------------------------------
  2. Client connecting to 192.168.1.100, TCP port 5001
  3. TCP window size: 85.0 KByte (default)
  4. ------------------------------------------------------------
  5. [  3] local 192.168.1.101 port 54321 connected with 192.168.1.100 port 5001
  6. [ ID] Interval       Transfer     Bandwidth
  7. [  3]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec
复制代码

如果您想测试UDP性能,可以使用-u选项:
  1. iperf -u -c 192.168.1.100
复制代码

使用nload监控网络带宽

nload是一个实时网络流量监控工具,可以显示当前网络带宽使用情况。

安装nload:
  1. sudo apt update
  2. sudo apt install nload
复制代码

运行nload:
  1. nload
复制代码

nload将显示一个实时更新的图表,显示网络接口的入站和出站流量。默认情况下,它会监控所有网络接口,但您也可以指定特定接口:
  1. nload eth0
复制代码

使用iftop监控网络连接

iftop是一个实时网络带宽监控工具,类似于top命令,但用于网络连接。它显示网络连接的带宽使用情况,并按连接排序。

安装iftop:
  1. sudo apt update
  2. sudo apt install iftop
复制代码

运行iftop:
  1. sudo iftop
复制代码

iftop将显示一个实时更新的列表,显示各个网络连接的带宽使用情况。默认情况下,它会监控第一个网络接口,但您也可以指定特定接口:
  1. sudo iftop -i eth0
复制代码

磁盘I/O速度测试方法

使用dd命令测试磁盘读写速度

dd是一个基本的Unix工具,可以用于测试磁盘的读写速度。需要注意的是,dd测试结果受多种因素影响,如文件系统缓存、缓冲区大小等。

测试写入速度:
  1. # 创建一个1GB的测试文件
  2. dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct
复制代码

测试读取速度:
  1. # 清除系统缓存
  2. echo 3 > /proc/sys/vm/drop_caches
  3. # 读取测试文件
  4. dd if=./testfile of=/dev/null bs=1G iflag=direct
复制代码

注意:oflag=direct和iflag=direct选项用于绕过系统缓存,直接测试磁盘性能。echo 3 > /proc/sys/vm/drop_caches命令用于清除系统缓存,确保测试结果准确。

使用hdparm测试硬盘速度

hdparm是一个用于获取和设置IDE/SATA设备参数的工具,也可以用于测试硬盘的读取速度。

安装hdparm:
  1. sudo apt update
  2. sudo apt install hdparm
复制代码

测试硬盘读取速度:
  1. sudo hdparm -Tt /dev/sda
复制代码

输出结果类似于:
  1. /dev/sda:
  2. Timing cached reads:   1234 MB in  2.00 seconds = 616.85 MB/sec
  3. Timing buffered disk reads: 222 MB in  3.00 seconds =  73.99 MB/sec
复制代码

其中,”Timing cached reads”表示从缓存读取的速度,”Timing buffered disk reads”表示从磁盘缓冲区读取的速度。

使用fio进行更专业的磁盘性能测试

fio(Flexible I/O Tester)是一个专业的I/O性能测试工具,可以模拟各种I/O负载场景。

安装fio:
  1. sudo apt update
  2. sudo apt install fio
复制代码

进行随机读写测试:
  1. # 随机读测试
  2. fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
  3. # 随机写测试
  4. fio --name=randwrite --ioengine=libaio --iodepth=16 --rw=randwrite --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
  5. # 混合随机读写测试
  6. fio --name=randrw --ioengine=libaio --iodepth=16 --rw=randrw --rwmixread=70 --bs=4k --direct=1 --size=1G --numjobs=4 --runtime=60 --group_reporting
复制代码

这些命令将运行60秒的测试,使用4个作业,每个作业处理1GB的数据,块大小为4KB,I/O队列深度为16。混合随机读写测试中,70%为读取操作,30%为写入操作。

USB设备传输速度测试

测试USB存储设备的读写速度

要测试USB存储设备的读写速度,可以使用dd命令,类似于测试磁盘I/O速度的方法。

首先,插入USB设备并确定其设备名称(例如/dev/sdb):
  1. lsblk
复制代码

然后,测试写入速度:
  1. # 创建一个1GB的测试文件到USB设备
  2. sudo dd if=/dev/zero of=/dev/sdb bs=1G count=1 oflag=direct
复制代码

测试读取速度:
  1. # 从USB设备读取1GB数据
  2. sudo dd if=/dev/sdb of=/dev/null bs=1G iflag=direct
复制代码

注意:直接在设备上写入(如/dev/sdb)会破坏设备上的所有数据。如果您想保留设备上的数据,可以挂载设备并在文件系统上进行测试:
  1. # 挂载USB设备
  2. sudo mount /dev/sdb1 /mnt
  3. # 测试写入速度
  4. dd if=/dev/zero of=/mnt/testfile bs=1G count=1 oflag=direct
  5. # 清除系统缓存
  6. echo 3 > /proc/sys/vm/drop_caches
  7. # 测试读取速度
  8. dd if=/mnt/testfile of=/dev/null bs=1G iflag=direct
  9. # 删除测试文件并卸载设备
  10. rm /mnt/testfile
  11. sudo umount /mnt
复制代码

内存传输速度测试

使用mbw测试内存带宽

mbw(Memory Bandwidth Benchmark)是一个简单的内存带宽测试工具。

安装mbw:
  1. sudo apt update
  2. sudo apt install mbw
复制代码

运行mbw测试:
  1. mbw 256
复制代码

这将测试256MB内存的带宽,输出结果类似于:
  1. Long uses 8 bytes per array element.
  2. Memory bandwidth benchmark with array size 256MB (each test will run 10 times)
  3. Method: MEMCPY Elapsed: 0.28252 sec. MiB: 256.00000 Copy: 906.223 MiB/s
  4. Method: DUMB Elapsed: 0.31412 sec. MiB: 256.00000 Copy: 815.023 MiB/s
  5. Method: MCBLOCK Elapsed: 0.28821 sec. MiB: 256.00000 Copy: 888.271 MiB/s
复制代码

使用stream测试内存性能

stream是一个更专业的内存带宽测试工具,可以测试不同内存访问模式下的性能。

安装stream:
  1. sudo apt update
  2. sudo apt install stream
复制代码

运行stream测试:
  1. stream
复制代码

输出结果类似于:
  1. -------------------------------------------------------------
  2. STREAM version $Revision: 5.10 $
  3. -------------------------------------------------------------
  4. This system uses 8 bytes per array element.
  5. -------------------------------------------------------------
  6. Array size = 10000000 (elements), Offset = 0 (elements)
  7. Memory per array = 76.3 MiB (= 0.1 GiB).
  8. Total memory required = 228.9 MiB (= 0.2 GiB).
  9. Each kernel will be executed 10 times.
  10. The *best* time for each kernel (excluding the first iteration) will be used to compute the reported bandwidth.
  11. -------------------------------------------------------------
  12. Number of Threads requested = 1
  13. Number of Threads counted = 1
  14. -------------------------------------------------------------
  15. Your clock granularity/precision appears to be 1 microseconds.
  16. Each test below will take on the order of 12345 microseconds.
  17.    (= 12345 clock ticks)
  18. Increase the size of the arrays if this shows that
  19. you are not getting at least 20 clock ticks per test.
  20. -------------------------------------------------------------
  21. WARNING -- The above is only a rough guideline.
  22. For best results, please be sure you know the
  23. precision of your system timer.
  24. -------------------------------------------------------------
  25. Function    Best Rate MiB/s  Avg time     Min time     Max time
  26. Copy:           12345.6     0.012345     0.012345     0.012345
  27. Scale:          12345.6     0.012345     0.012345     0.012345
  28. Add:            12345.6     0.012345     0.012345     0.012345
  29. Triad:          12345.6     0.012345     0.012345     0.012345
  30. -------------------------------------------------------------
  31. Solution Validates: avg error less than 1.000000e-13 on all three arrays
  32. -------------------------------------------------------------
复制代码

综合监控工具

使用sysstat包中的工具

sysstat包包含了一系列系统性能监控工具,如sar、iostat、mpstat等。

安装sysstat:
  1. sudo apt update
  2. sudo apt install sysstat
复制代码

启用sysstat收集数据:
  1. sudo vi /etc/default/sysstat
复制代码

将ENABLED="false"改为ENABLED="true",然后保存文件并重启sysstat服务:
  1. sudo systemctl restart sysstat
复制代码

使用iostat监控磁盘I/O:
  1. iostat -dx 2
复制代码

这将每2秒更新一次磁盘I/O统计信息。

使用mpstat监控CPU使用情况:
  1. mpstat 2
复制代码

这将每2秒更新一次CPU使用情况统计信息。

使用sar查看历史系统性能数据:
  1. sar -u
  2. sar -b
  3. sar -d
复制代码

这些命令分别显示CPU使用率、I/O传输率和磁盘使用率的历史数据。

使用nmon系统监控工具

nmon是一个综合的系统性能监控工具,可以监控CPU、内存、磁盘、网络等系统资源的使用情况。

安装nmon:
  1. sudo apt update
  2. sudo apt install nmon
复制代码

运行nmon:
  1. nmon
复制代码

nmon将显示一个交互式界面,您可以通过按键切换不同的监控视图:

• c: CPU使用率
• m: 内存使用情况
• d: 磁盘I/O
• n: 网络使用情况
• t: 进程信息
• h: 帮助信息

要退出nmon,按q键。

您也可以使用nmon记录系统性能数据:
  1. nmon -f -s 2 -c 30
复制代码

这将每2秒记录一次系统性能数据,共记录30次,并将结果保存到文件中。

实用技巧和最佳实践

如何解读测试结果

解读测试结果时,需要注意以下几点:

1. 单位转换:确保理解不同的单位,如MB/s(兆字节/秒)和Mb/s(兆比特/秒)。1字节 = 8比特,所以8 MB/s = 64 Mb/s。
2. 理论值与实际值:实际传输速度通常低于理论最大值。例如,千兆以太网的理论最大速度是1000 Mb/s,但实际速度通常在900-950 Mb/s之间。
3. 多次测试取平均值:单次测试结果可能受到系统负载、缓存等因素的影响,建议多次测试取平均值。
4. 比较相对值:测试结果的最重要用途是比较不同配置或不同时间的性能变化,而不是绝对值。

单位转换:确保理解不同的单位,如MB/s(兆字节/秒)和Mb/s(兆比特/秒)。1字节 = 8比特,所以8 MB/s = 64 Mb/s。

理论值与实际值:实际传输速度通常低于理论最大值。例如,千兆以太网的理论最大速度是1000 Mb/s,但实际速度通常在900-950 Mb/s之间。

多次测试取平均值:单次测试结果可能受到系统负载、缓存等因素的影响,建议多次测试取平均值。

比较相对值:测试结果的最重要用途是比较不同配置或不同时间的性能变化,而不是绝对值。

测试时的注意事项

在进行数据传输速度测试时,需要注意以下几点:

1. 关闭不必要的程序:确保在测试期间关闭不必要的程序,以减少对系统资源的竞争。
2. 清除系统缓存:在进行磁盘I/O测试时,清除系统缓存可以获得更准确的结果。
3. 考虑测试文件大小:测试文件大小应足够大,以避免缓存效果影响结果。通常建议至少为系统内存大小的2倍。
4. 注意测试时间:测试时间应足够长,以获得稳定的平均值。通常建议至少10秒。
5. 考虑测试环境:测试环境应尽可能接近实际使用环境,例如,测试网络速度时应考虑网络拥塞情况。

关闭不必要的程序:确保在测试期间关闭不必要的程序,以减少对系统资源的竞争。

清除系统缓存:在进行磁盘I/O测试时,清除系统缓存可以获得更准确的结果。

考虑测试文件大小:测试文件大小应足够大,以避免缓存效果影响结果。通常建议至少为系统内存大小的2倍。

注意测试时间:测试时间应足够长,以获得稳定的平均值。通常建议至少10秒。

考虑测试环境:测试环境应尽可能接近实际使用环境,例如,测试网络速度时应考虑网络拥塞情况。

如何优化数据传输速度

根据测试结果,您可以采取以下措施优化数据传输速度:

1. 网络优化:使用有线连接代替无线连接升级网络设备(如路由器、交换机、网卡)优化网络设置(如调整TCP窗口大小)使用QoS(服务质量)管理网络流量
2. 使用有线连接代替无线连接
3. 升级网络设备(如路由器、交换机、网卡)
4. 优化网络设置(如调整TCP窗口大小)
5. 使用QoS(服务质量)管理网络流量
6. 磁盘I/O优化:使用更快的存储设备(如SSD代替HDD)优化文件系统(如选择适合的文件系统类型和参数)使用RAID提高磁盘性能定期进行磁盘碎片整理(对于HDD)
7. 使用更快的存储设备(如SSD代替HDD)
8. 优化文件系统(如选择适合的文件系统类型和参数)
9. 使用RAID提高磁盘性能
10. 定期进行磁盘碎片整理(对于HDD)
11. 系统优化:增加系统内存调整内核参数(如I/O调度器、虚拟内存设置)使用最新的驱动程序和固件保持系统更新
12. 增加系统内存
13. 调整内核参数(如I/O调度器、虚拟内存设置)
14. 使用最新的驱动程序和固件
15. 保持系统更新

网络优化:

• 使用有线连接代替无线连接
• 升级网络设备(如路由器、交换机、网卡)
• 优化网络设置(如调整TCP窗口大小)
• 使用QoS(服务质量)管理网络流量

磁盘I/O优化:

• 使用更快的存储设备(如SSD代替HDD)
• 优化文件系统(如选择适合的文件系统类型和参数)
• 使用RAID提高磁盘性能
• 定期进行磁盘碎片整理(对于HDD)

系统优化:

• 增加系统内存
• 调整内核参数(如I/O调度器、虚拟内存设置)
• 使用最新的驱动程序和固件
• 保持系统更新

结论

在Ubuntu系统下,有多种工具和方法可以查看各种数据传输速度。从简单的命令行工具如dd、hdparm到专业的测试工具如fio、iperf,每种工具都有其特定的用途和优势。通过合理使用这些工具,您可以全面了解系统的网络、磁盘、USB设备和内存的性能状况,并根据测试结果进行相应的优化。

需要注意的是,测试结果受多种因素影响,包括系统配置、测试方法、环境因素等。因此,在进行测试时,应遵循标准化的测试流程,并考虑多次测试取平均值,以获得准确可靠的结果。

希望本文介绍的方法和技巧能够帮助您更好地了解和优化Ubuntu系统的数据传输性能。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则