LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1914|回复: 13

为什么debian下copy文件速度不如windows xp

[复制链接]
发表于 2005-10-10 12:02:03 | 显示全部楼层 |阅读模式
测试文件:
   文件testfile 大小:991M
   目录gethome 大小:5.0G(含文件)(主要为avi,rmvb文件)
1.debian 下 fat32 ->fat32(不同硬盘)
文件testfile:
ark:~# date
一 10月 10 11:30:31 CST 2005
ark:~# cp /mnt/wind/testfile /mnt/homed
ark:~# date
一 10月 10 11:31:38 CST 2005
计:1m7s
目录gethome:
ark:~# date
一 10月 10 11:33:02 CST 2005
ark:~# cp -r /root/Desktop/info/wind/windoc/gethome /mnt/homed
ark:~# date
一 10月 10 11:39:24 CST 2005
计:6m22s
2.windows xp下 fat32 ->fat32(不同硬盘)
由于command下time不能精确显示秒只好人工复制+粘贴 同时看windows下钟
   文件testfile:1m35s
   目录gethome:3m0s
我已安装hdparm
  1. ark:~# aptitude purge hdparm
  2. 正在读取软件包列表... 完成
  3. 正在分析软件包的依赖关系树... 完成
  4. Reading extended state information
  5. Initializing package states... 完成
  6. The following packages will be REMOVED:
  7.   hdparm
  8. 0 packages upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
  9. Need to get 0B of archives. After unpacking 225kB will be freed.
  10. Do you want to continue? [Y/n/?] y
  11. Writing extended state information... 完成
  12. (正在读取数据库 ... 系统当前总共安装有 42084 个文件和目录。)
  13. 正在删除 hdparm ...
  14. 正在清除 hdparm 的配置文件 ...
  15. 正在读取软件包列表... 完成
  16. 正在分析软件包的依赖关系树... 完成
  17. Reading extended state information
  18. Initializing package states... 完成

  19. ark:~# aptitude install hdparm
  20. 正在读取软件包列表... 完成
  21. 正在分析软件包的依赖关系树... 完成
  22. Reading extended state information
  23. Initializing package states... 完成
  24. The following NEW packages will be installed:
  25.   hdparm
  26. 0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
  27. Need to get 0B/55.6kB of archives. After unpacking 225kB will be used.
  28. Writing extended state information... 完成
  29. 选中了曾被取消选择的软件包 hdparm。
  30. (正在读取数据库 ... 系统当前总共安装有 42067 个文件和目录。)
  31. 正在解压缩 hdparm (从 .../archives/hdparm_6.1-7_i386.deb) ...
  32. 正在设置 hdparm (6.1-7) ...

  33. 正在读取软件包列表... 完成
  34. 正在分析软件包的依赖关系树... 完成
  35. Reading extended state information
  36. Initializing package states... 完成
  37. ark:~# hdparm -tT /dev/hdb

  38. /dev/hdb:
  39. Timing cached reads:   616 MB in  2.00 seconds = 307.59 MB/sec
  40. Timing buffered disk reads:  156 MB in  3.02 seconds =  51.58 MB/sec
  41. ark:~# hdparm /dev/hdb

  42. /dev/hdb:
  43. multcount    =  0 (off)
  44. IO_support   =  0 (default 16-bit)
  45. unmaskirq    =  0 (off)
  46. using_dma    =  1 (on)
  47. keepsettings =  0 (off)
  48. readonly     =  0 (off)
  49. readahead    = 256 (on)
  50. geometry     = 16383/255/63, sectors = 156301488, start = 0

复制代码
发表于 2005-10-10 13:13:07 | 显示全部楼层
是否用hdparm打开 dma,没有,请搜索论坛
回复 支持 反对

使用道具 举报

发表于 2005-10-10 14:18:23 | 显示全部楼层
你应该在debian的图形界面下试试,不要使用命令行的形式
在X下使用nautilus的速度就要快的多
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-10 16:01:52 | 显示全部楼层
谢谢各位回复!
我已开启dma

  1. using_dma    =  1 (on)
复制代码

我用nautilus测试,确实速度提高一些
但也需4m49s 与xp 相差1m49s
我有一个疑惑,为什么shell下与nautilus下速度为什还有差异,差异还这么大?
回复 支持 反对

使用道具 举报

发表于 2005-10-10 16:30:47 | 显示全部楼层
荒唐
用fat32 ->fat32来做测试,你怎么不用ntfs -> ntfs,那样的话win还要快得多呢
回复 支持 反对

使用道具 举报

发表于 2005-10-10 17:04:35 | 显示全部楼层
1. Linux有time工具可以精确计时。CLI和GUI没有本质区别,其实是计时方法不一样。
2. 我的硬盘配置
# hdparm /dev/hda

/dev/hda:
multcount    = 16 (on)
IO_support   =  1 (32-bit)
unmaskirq    =  0 (off)
using_dma    =  1 (on)
keepsettings =  0 (off)
readonly     =  0 (off)
readahead    = 256 (on)
geometry     = 39870/16/63, sectors = 40188960, start = 0

multcount和IO_support你都没有设置。

3. 不知道你的XP和Linux是否是在相同的机器上。如果不是,就很难说了。
4. 如果是在相同的机器上,而且即使使用相同的2块硬盘,文件复制的方向(即由A硬盘到B硬盘还是反向)也有可能造成不同,因为不同的硬盘(我假设你的2块硬盘不是相同尺寸的)读写策略是不一样的。
5. 本质上说,FAT32这种没有日志的文件系统,无论什么操作系统对其进行读写,性能应该只受硬盘物理性能的影响,更不应该有这么大的区别,除非是FAT32的碎片影响了,即2次复制时硬盘的碎片状态不一样,可以试试把第一次复制的文件删除后再进行第二次复制。
6. FAT32毕竟过气,楼主如果有兴趣,可以比较一下NTFS与ext2/ext3/JFS/XFS之间的性能。
回复 支持 反对

使用道具 举报

发表于 2005-10-10 20:22:27 | 显示全部楼层
1.
linux 下执行命令的时间可以用 time 来看

hua@huaesktop$ time  cp  广东省软件设计比赛文档.pdf 广东省软件设计比赛文档.pdf.bak

real    0m0.024s
user    0m0.000s
sys     0m0.023s
hua@huaesktop$

这 real    0m0.024s 就是实际使用的时间



2.
linux 下应该用 ReiserFS 等 Linux 分区上的操作来比才公平吧

3.
硬盘上不同磁道的读写速度是不同的,靠外侧的磁道具有更快的读写速度
( C: 比 F: 快 , hda1 比 hda9 快 )


4.
装了 hdparm 未必就表示设置好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-11 10:20:15 | 显示全部楼层
谢谢各位的回复!
荒唐
用fat32 ->fat32来做测试,你怎么不用ntfs -> ntfs,那样的话win还要快得多呢

我无意挑启争端,只是实际使用过程无意碰到此问题,想予以解决。用fat32->fat32为方便做对比测试
3. 不知道你的XP和Linux是否是在相同的机器上。如果不是,就很难说了。
4. 如果是在相同的机器上,而且即使使用相同的2块硬盘,文件复制的方向(即由A硬盘到B硬盘还是反向)也有可能造成不同,因为不同的硬盘(我假设你的2块硬盘不是相同尺寸的)读写策略是不一样的。

我是同一机器同一第2块硬盘对比测试 ,我电脑是debian ,windows xp双启动
可以试试把第一次复制的文件删除后再进行第二次复制。

我是严格这样操作的
装了 hdparm 未必就表示设置好了

这个我信服
我今天又作了一个测试! 详细如下!debian 下shell 与nautilus 速度就是不一样,连我自己都觉的不可思议,但事实毕竟是事实
  1. 重新调整hdparm 命令
  2. ark:~# hdparm -d1 -c1 -X69 -m16 /dev/hdb

  3. /dev/hdb:
  4. setting 32-bit IO_support flag to 1
  5. setting multcount to 16
  6. setting using_dma to 1 (on)
  7. setting xfermode to 69 (UltraDMA mode5)
  8. multcount    = 16 (on)
  9. IO_support   =  1 (32-bit)
  10. using_dma    =  1 (on)
  11. ark:~# hdparm /dev/hdb

  12. /dev/hdb:
  13. multcount    = 16 (on)
  14. IO_support   =  1 (32-bit)
  15. unmaskirq    =  0 (off)
  16. using_dma    =  1 (on)
  17. keepsettings =  0 (off)
  18. readonly     =  0 (off)
  19. readahead    = 256 (on)
  20. geometry     = 16383/255/63, sectors = 156301488, start = 0

  21. 测试目录大小:2.5G
  22. 1.nautilus :09:08:00 ~ 09:10:25  计2m25s
  23. 2.clr:# time cp  -r /root/Desktop/info/wind/windoc/gethome/1011  /mnt/homed

  24. real    3m11.419s
  25. user    0m0.304s
  26. sys     0m30.969s
  27. 3.windows xp:09:29:00~09:30:34 计1m34s
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-10-11 12:00:33 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2005-10-11 12:19:48 | 显示全部楼层
请试试在 Debian 在  Linux 的 ReiserFS 或 Reiser4 分区里的情况


既然是 Linux 下操作 Win 分区来对比 ,那再试试在 WinXP 里操作 Linux 分区来对比吧..........
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表