每次启动的时候都看到“DMA没有打开会减慢速度”之类的话??
就是有一行英文,大意是硬盘的DMA没有打开,可能大大减慢速度,啥意思?不管它吗?还是打开硬盘DMA?怎么打开阿??谢谢 用hdparm 来设,具体的搜索一下坛子。 好像说如果我的硬盘不支持DMA的话会伤害硬盘??我怎么知道它支持不支持呢??
还有,请问大家打开了DMA后觉得快了很多吗 DMA
这么说吧
如果你用dos环境安装windowsxp
之前如果系统没有运行smartdrv.exe这个程序
就会发现系统非常缓慢
为什么这样呐?
我先发了这个帖子,然后继续说,骗一点帖数 :lol: 楼上的仿佛要长篇大论了,洗耳恭听ing 因为系统没有打开smartdrv.exe的缓存
基本上我这样讲,你就懂了,每一次从光驱读一点点,马上就写硬盘,当然速度就慢了
如果运行了smartdrv.exe,那么系统就会一次从光驱读很多,放在缓存里面,然后等到足够多了以后再一次性的写到硬盘,这样速度当然就快啦,因为减少了读写的次数嘛
再举一个例子,自然而然的我要再骗一点帖数 :mrgreen: 我们以前用dos的时候都发现有xcopy.exe这个命令,对不对?
其实用copy这个内部命令还不是一样的拷,那位什么还要有一个xcopy.exe呢?
原因很简单嘛
观察一下两个命令分别拷贝大量文件的过程就发现了,copy读一个文件就写一个文件,遇到比较大的文件就读写很多次才搞定
xcopy呢,读入很多文件,达到缓存的量再写入硬盘,遇到大文件,也可以明显减少读写次数,这样速度就提高了。
下面要讲DMA了 DMA是Direct Memory Access的缩写
这个特性通过让硬盘、光驱直接访问存储器来最大限度提升系统性能
因为现在个人计算机的最大瓶颈就是在磁盘的输入输出上
DMA可使PC机直接访问硬盘驱动器上的数据
但并不占用太多的CPU时间(与PIO模式相比)
从而使你的CPU可执行其它任务
当然要使用DMA模式
你的CDROM及硬盘要支持相应的功能才可以
要是你的CDROM和硬盘都太老
可能就不能了 所以说缓存和DMA技术是从两个不同的渠道提高系统读取性能
软的,我们肚量大一点,缓存技术的采用让系统读写时间减少
硬的,我们直接一点,不要读写一个屁东西都要CPU来管,直接搞就是了
该硬的时候硬,该软的时候软
是男人就应该这样啊 :mrgreen:
下面说一下linux的缓存和DMA 在windows下面的话,如果是98,需要自己手动打开DMA,但是开不开,觉得区别不大
没有记错的话具体做法如下
我的电脑->控制面板->系统
设备管理器里面有硬盘控制器和CDROM项
选中硬盘或者光驱
单击“属性”
接着选“设置”并选中DMA复选框
重新开机后即可
2000和xp稍微智能一点,自动打开了DMA
哦,现在才开始说Linux 就是haparm这个命令啦,首先,这个命令不是每个发行版都默认安装了的
让我们来看一看版主信息
hdparm - get/set hard disk parameters - version v6.1
Usage:hdparm[options] [device] ..
Options:
-a get/set fs readahead
-A set drive read-lookahead flag (0/1)
-b get/set bus state (0 == off, 1 == on, 2 == tristate)
-B set Advanced Power Management setting (1-255)
-c get/set IDE 32-bit IO setting
-C check IDE power mode status
-d get/set using_dma flag
--directuse O_DIRECT to bypass page cache for timings
-D enable/disable drive defect management
-E set cd-rom drive speed
-f flush buffer cache for device on exit
-g display drive geometry
-h display terse usage information
-i display drive identification
-I detailed/current information directly from drive
--Istdinreads identify data from stdin as ASCII hex
--Istdout writes identify data to stdout as ASCII hex
-k get/set keep_settings_over_reset flag (0/1)
-K set drive keep_features_over_reset flag (0/1)
-L set drive doorlock (0/1) (removable harddisks only)
-M get/set acoustic management (0-254, 128: quiet, 254: fast) (EXPERIMENTAL)
-m get/set multiple sector count
-n get/set ignore-write-errors flag (0/1)
-p set PIO mode on IDE interface chipset (0,1,2,3,4,...)
-P set drive prefetch count
-q change next setting quietly
-Q get/set DMA tagged-queuing depth (if supported)
-r get/set devicereadonly flag (DANGEROUS to set)
-R register an IDE interface (DANGEROUS)
-S set standby (spindown) timeout
-t perform device read timings
-T perform cache read timings
-u get/set unmaskirq flag (0/1)
-U un-register an IDE interface (DANGEROUS)
-v defaults; same as -mcudkrag for IDE drives
-V display program version and exit immediately
-w perform device reset (DANGEROUS)
-W set drive write-caching flag (0/1) (DANGEROUS)
-x tristate device for hotswap (0/1) (DANGEROUS)
-X set IDE xfer mode (DANGEROUS)
-y put IDE drive in standby mode
-Y put IDE drive to sleep
-Z disable Seagate auto-powersaving mode
-z re-read partition table
ATA Security Options:
--security-freeze Freeze security settings (until next reset)
--security-unlock PWD Unlock drive, using password PWD (DANGEROUS)
--security-set-pass PWD Lock drive, using password PWD (DANGEROUS)
--security-disable PWD Disable drive locking, using password PWD (DANGEROUS)
--security-mode MODE Specify user/master password and high/maximum security
u user password, high security
U user password, maximum security
m master password, high security
M master password, maximum security
这个帖子估计要彪精了……………… 我们先来看看简单的命令使用:
hdparm -t /dev/hda 可以测试硬盘的读写速度。
hdparm -i /dev/hda 可以看到硬盘的一些参数。
hdparm /dev/hda 可以看到硬盘的一些设置。
hdparm -I /dev/hda 可以看到硬盘的一些参数(比-i更全一些)
下面是我的硬盘的配置:
# hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
IO_support =0 (default 16-bit)
unmaskirq =0 (off)
using_dma =1 (on)
keepsettings =0 (off)
readonly =0 (off)
readahead =8 (on)
geometry = 2480/255/63, sectors = 39851760, start = 0
multicount已经打开成16
io_support还是0
umaskingirq没有打开
DMA打开了
再看一下dma模式:
# hdparm -i /dev/hda
/dev/hda:
Model=Maxtor 5T020H2, FwRev=TAH71DP0, SerialNo=T2JACKLC
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=57
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=39851760
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes:pio0 pio1 pio2 pio3 pio4
DMA modes:mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 *udma4 udma5
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: ATA/ATAPI-6 T13 1410D revision 0:
* signifies the current active mode
在给出的信息里面写的是udma模式是udma4,我也没有研究这个是什么意思,我们先测试一下现在硬盘读写的速度吧:
# hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads:108 MB in3.00 seconds =36.00 MB/sec
下面我首先把系统的硬盘的16位格式转换为32位模式(32-bit mode w/sync)。这玩意儿控制数据如何从pci总线传递到控制器。
# hdparm -c3 /dev/hda
/dev/hda:
setting 32-bit IO_support flag to 3
IO_support =3 (32-bit w/sync)
再测试一下硬盘的速度:
# hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads:110 MB in3.02 seconds =36.42 MB/sec
可以看到速度从每秒36.00升到了36.42
不错没,继续优化,我必须再骗一点帖数了 :oops:
页:
[1]
2