AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1052737
Accepted
spacer GIF
spacer GIF
Asked: 2018-07-07 06:58:26 +0800 CST2018-07-07 06:58:26 +0800 CST 2018-07-07 06:58:26 +0800 CST

如何准确查看将文件写入外部介质需要多长时间?

  • 772

我一直在尝试基准测试读取和写入 3.5 英寸软盘上 FAT 文件系统中的整个可用空间需要多长时间。读取不是什么大问题。只要之前没有读取过该文件到测试,我可以简单地运行time cp /media/user/disk/file .。但是,事实证明,写作更麻烦。

如果我使用cpas 来阅读,我得到的结果接近于零。命令完成,驱动器在接下来的 45 秒左右继续写入。我还尝试使用dd if=/dev/urandom of=/media/user/disk/file bs=1457664 count=1动态生成随机数据以放在磁盘上,但结果相同。我尝试的最终解决方案是pv file > /media/user/disk/file,同样的结果,只是呈现方式不同。至少我发现声称的 192MiB/s 写入速度很有趣。

我怀疑它与这样的东西有很大的不同,但我正在运行 Ubuntu 18.04 x64 MATE。该驱动器使用 USB 进行电源和数据传输。

usb storage floppy usb-storage 18.04
  • 2 2 个回答
  • 714 Views

2 个回答

  • Voted
  1. Best Answer
    vanadium
    2018-07-07T07:31:03+08:002018-07-07T07:31:03+08:00

    Linux 广泛使用缓冲存储器来读/写文件。因此,对驱动器的写入可能看起来更早完成,而实际上,linux 继续将数据提交到驱动器。要将缓冲区刷新到磁盘,可以使用“同步”命令。因此,这样的命令time sh -c "cp /media/user/disk/file .. && sync"可以更好地了解将副本完全写入驱动器所需的实时时间。

    需要带有“sh”的构造,因为命令时间仅支持单个命令作为其参数。

    • 3
  2. sudodus
    2018-07-07T07:59:12+08:002018-07-07T07:59:12+08:00

    您可以使用time来测量cp命令本身写入所用的时间,然后用于sync刷新缓冲区,以及在那些之外测量总时间。请参阅以下示例。

    写入通过 SATA 连接的硬盘驱动器:

    $ time bash -c 'time cp ubuntu-18.04-desktop-amd64.iso /media/multimed-2/ttt && time sync;echo -e "\n----------\ntotal time"'
    
    real    0m23,207s
    user    0m0,009s
    sys 0m3,908s
    
    real    0m1,328s
    user    0m0,000s
    sys 0m0,006s
    
    ----------
    total time
    
    real    0m24,538s
    user    0m0,012s
    sys 0m3,914s
    

    写入 USB 3 随身碟:

    $ sudo time bash -c 'time -p cp ubuntu-18.04-desktop-amd64.iso /mnt/sd1/usbdata/ttt && time sync;echo -e "\n----------\ntotal time"'
    [sudo] password for sudodus: 
    
    real    0m55,390s
    user    0m0,029s
    sys 0m5,279s
    
    real    0m17,595s
    user    0m0,000s
    sys 0m0,003s
    
    ----------
    total time
    real 72.98
    user 0.03
    sys 5.28
    

    请注意,在写入 pendrive 时,刷新缓冲区的时间要多得多,但复制命令的时间也会增加。

    bc可以从文件大小和总时间计算复制速度。

    $ bc
    bc 1.07.1
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    scale=2
    1921843200/24.538/10^6
    78.32
    1921843200/72.98/10^6
    26.33
    quit
    $ 
    
    • 2

相关问题

  • 如何在连接 MTP 设备时禁用自动播放功能?

  • 我这里有一个 22 号陷阱!除非我更新,否则没有互联网[关闭]

  • 修复 USB 驱动器自动通知

  • 什么是 Ubuntu One?

  • 如何从命令行重置 USB 设备?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve