无盘工作站与Smartdrv 王磊 1997-01-01   众所周知:在一台有硬盘的PC上使用Smartdrv会使其读写数据的速度大为加快。那么,在Novell网络中的无盘工作站上使用Smartdrv是否会提高工作站从服务器硬盘上读写数据的速度呢?乍一看这似乎不行,因为Smartdrv不支持对网络驱动器的缓冲。我们可以在无盘站上加载Smartdrv后运行Smartdrv/s来观察,会发现情况确实如此。另外Netware在服务器的内存中单独开辟了文件和目录的读写缓冲区,无盘站上运行Smartdrv对之无法产生影响。   为验证这种看法,笔者从单位的无盘工作站中选取三种类型的机器进行测试。服务器硬盘为昆腾1.2G大脚,测试软件则采用Norton 8.0中的sysinfo,因为它提供了对网络驱动器的读写性能测试,其结果如下:(单位:sec/s)。 #3            内存Smartdrv加载处   286/16(1M)    常规内存   386/40(4M)    上位内存   K5/75(8M)     上位内存 #3            未加Smartdrv时的速度 #3               硬盘读    硬盘写   286/16(1M)  238.0  250.0   386/40(4M)  277.7  294.1   K5/75(8M)   333.3  357.1 #3            加载Smartdrv后的速度 #3               硬盘读    硬盘写   286/16(1M)  250.0  250.0   386/40(4M)  294.1  294.1   K5/75(8M)   357.1  357.   可以看出,加载Smartdrv前,网络硬盘的读取速度低于写入速度,而加载后,写盘速度没有变化,而读盘速度有了一定幅度的增加,究其原因,是各无盘站在读取网络驱动器的数据之前,先到Smartdrv设置 的缓冲区中寻找,如找到则无须访问网络硬盘,而写盘动作则由于必须直接写服务器硬盘而受Netware设置的缓冲区限制,其速度无法得到改善。   考虑到Smartdrv在缺少状态时只提供硬盘读缓冲,而不提供写缓冲,因此笔者使用“Smartdrv F+”命令打开其写缓冲(会给出提示,说明不提供对F盘的缓冲),经再次测试,发现写盘速度不升反降。这是因为Smartdrv不仅在内存中开辟了额外的写缓冲区(实际上未利用),而且程序本身中内存量也从27K增至30K,过多的系统开销导致了其性能的下降。   综上所述,笔者认为尽管Smartdrv不支持对网络硬盘的缓冲,但加载Smartdrv仍然会对无盘工作站性能有一定的改善。当然,若是286机,Smartdrv本身不能装入上位内存,需占用27K常规内存,易影响其他程序的正常运行,可不考试加载,对386,2M内存以上机器,加载Smartdrv则有益无害。此时,config.sys文件中的buffers应设为2,因为Smartdrv已代替了buffers的作用,过大的buffers是一种浪费,但不能省去“buffers=”这一行,否则DOS将按系统默认值将buffers设为15。   需要提醒读者的是,若你使用的是有盘工作站,请使用“Smartdrv C+D+”命令打开写缓冲(假设你的硬盘分了两个区),这样会使硬盘速度有显著的提高,尤其是安装一些大型光盘程序,读者不妨一试。