佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 6915|回复: 53

[原创]使用RAM Disk把ERP系统提升到极限。

[复制链接]
发表于 30-9-2004 10:51 AM | 显示全部楼层 |阅读模式
这是原创文章,请尊重我的努力搜寻和写作,不要随意更改,欢迎阅读。

[原创]RAM Disk-虚拟硬碟:解决硬碟瓶颈问题。

相信很多朋友,尤其是在面对伺服器(Server)工作上的朋友们,时常面对一些使用者的投诉说,ERP系统极度缓慢,回应需要很多时间,工作站(Workstation)需要很多时间分析来作报告等等问题。以上的现象相信大家都有概念,往往就算是更新了新的作业系统(OS),或最新硬件(如新处理器和更多记忆体) ,基本上系统的表现只是增加一点点,不会是很特出,回应时间是快了一点,可是还不是想象中那么理想。

问题出在那里呢?是在处理器不够快?还是记忆体不够多和快?还是软体没有好的设定?很多因素,可是硬碟的瓶颈往往是ERP最致命的地方。

这里介绍大家一个很好的技术,你不需要花很多钱,可是你可以将现在的ERP系统回应时间提升至少300%。你可以自己尝试设定,我本身就实行了1年多,速度很快,几乎是没有用前2倍,我没有加新的硬件,只是软体。 要这样作,你所需要只是更高的记忆体和稳定的电源供应。

这就是我要分享的RAM Disk-虚拟硬碟,以下将以RAM Disk为简称。

原理:
一般上硬碟的表现在於其读写速度,除此之外还有一个因素,那就是Seek Time,Seek Time是从一个磁区到另一个磁区需要一定的时间,意思即搜寻时间。通常都是以mili second计算,或是ms. 1 ms 是1/1000秒,就以Seagate的Cheetah Series SCSI硬碟,其seek time是3。6ms. 就是说无论我们用最快的处理器或最好的软体和作业系统,系统还是需要面对硬碟瓶颈,因为很多资料都是储存在硬碟,系统需要搜寻资料,最终也要在硬碟去找。

既然硬碟搜寻速度比较缓慢又有很多延迟(Delay), 我们有什么办法可以将之提升速度呢?很多人都认为实行RAID是明智的选择,因为RAID 0+1模式可以把速度提升,也可以保障资料的安全性。虽然这样的提升是不错,可是如果你还是面对系统回应缓慢,尤其是使用ERP的朋友都会意识到系统回应时间(System Response Time)的重要性。於是很多IT专业者都想到了记忆体,因为记忆体的搜寻时间是非常快,而且是在nano second, 或是ns. 1ns是1/1 000 000 00, 其原理可以参考这个网站:http://www.sysopt.com/articles/latency/

因为记忆体和硬碟速度和搜寻时间的巨大差距,我们可以利用记忆体的容量来模拟硬碟,这样系统表现可以更好。更多原理请看这个网站:http://www.superspeed.com/ramdisk.html.


[ Last edited by goolb78 on 8-1-2005 at 11:16 AM ]
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 30-9-2004 11:10 AM | 显示全部楼层
当初,我加入这间公司时,这里的ERP面对回应缓慢的问题,很多使用者都向我投诉系统很慢,寻找资料,查询资料往往等了很久或系统时常没有回应,我把系统更新了,发现我遇到的问题基本上还是存在,这些问题虽然减轻了,可是还是存在,对我在工作上干扰不少,於是我下了研究,想到了RAM Disk的这个概念,其实早已经存在,问题是有没有人去实践。於是我抱着测试的方式去实行,结果效果很好,这里我和大家分享我安装和测试过程。

需要软体:SuperSpeed RAM Disk 2000 Server (如果你是用Windows 2000 Server)
需要硬体:记忆体,最少要保留256MB给系统使用,我设定1GB用RAM Disk,1GB是系统使用。

以下是我的系统配备:



CPU: Intel Pentium 4 2.4Ghz with HyperThreading
System Bus : 800Mhz
RAM: 4x512MB Dual Channel DDR400
Harddisk: Maxtor 6Y080M0 with 8MB Cache
External UBS Harddisk: IBM-IC25 N015ATDA04-0 USB Disk
OS : Windows 2000 Server Service Pack 4
ERP: EnterpriseBuilder version 2004.05.26
SQL Server: Sybase SQL Anywhere Network Server Version 5.5.04 Build#1867


[ Last edited by goolb78 on 8-1-2005 at 11:17 AM ]
回复

使用道具 举报

 楼主| 发表于 30-9-2004 11:20 AM | 显示全部楼层
安装和设定:

1.下载RAM Disk 2000 Server,和安装适合现在作业系统的RAM Disk 版本 <- 这个很重要!。
2.安装很简单,安装过程中需要Serial Number,你可以注意我的贴图中会有噢。



3. Start -> Programs -> SuperSpeed Software -> Configure Ram Disk 2000 Server



因为我的数据库(Database) 是570MB,所以我设定使用1GB的记忆体为模拟硬碟,硬碟号为R,将之规格化为NTFS。

4.将系统从新启动,你可发现到你的硬碟群加了个R的硬碟,这个硬碟的是用记忆体模拟的。



5.将你的数据库抄入R硬碟中,启动你的SQL SERVER将数据目录(Destination Folder) 指向R里的数据。为了方便设置,我写了个batch file来启动SQL SERVER,你们也可以选择自己的方式。



6.由於考虑到数据遗失问题,我们可以在Windows里的Task Scheduler写一些备分的程式。让系统自动在设定时间去做备分,就算电源供应流失,数据遗失也可以回复。为了以防万一,我设定每90分钟,系统自动备分,每次备分需要约2分钟,由於是记忆体的数据备分入硬碟,所以快了很多,同常只要2分钟就好了。



[ Last edited by goolb78 on 8-1-2005 at 11:18 AM ]
回复

使用道具 举报

 楼主| 发表于 30-9-2004 11:41 AM | 显示全部楼层
使用RAM Disk好处:-

1.系统回应时间(System Response Time)提升很大,甚至200%,如果在多使用者的环境,这个效果非常明显。

2.如果系统有重启,RAM Disk的速度从开始到关机速度还是一样快,不象硬碟因为需要系统重新启动,读取速度时快时慢。

3.系统备分很快,几乎是在几分钟内可以解决。

4.系统硬碟可以用Disk Defragmentation来持续整理,所有系统基本上的速度没有减低,反而更快。因为我们在Disk Defragmentation时往往会让系统变慢,这个问题不会这么明显。

使用RAM Disk缺点:-

1。电源切断极可能数据流失,所有系统的备分必须要好和电源稳定。
2。需要多于的记忆体。


[ Last edited by goolb78 on 8-1-2005 at 11:19 AM ]
回复

使用道具 举报

发表于 30-9-2004 05:37 PM | 显示全部楼层
支持原创...RAMDISK玩过一段时间.
若没有1G or 2G memory,还真的难以玩转这东东.
回复

使用道具 举报

 楼主| 发表于 1-10-2004 08:16 AM | 显示全部楼层
HotmailUser 于 30-9-2004 17:37  说 :
支持原创...RAMDISK玩过一段时间.
若没有1G or 2G memory,还真的难以玩转这东东.


这比较适合在伺服器上使用,因为通常RAM都是在1GB以上,还有伺服器最重要的任务是在最快时间回应。
回复

使用道具 举报

Follow Us
 楼主| 发表于 1-10-2004 08:23 AM | 显示全部楼层
我用以下软体测试RAM Disk的表现。

测试软体: SiSoftware Sandra Standard 2003.7.9.73




从图表中,我们看到RAM Disk的表现是862513KB/s,这是全世界也不可能有的这么快硬碟。

比图表中最快的2xRAID 还好上9。237倍!!!

笔者的硬碟速度是29500KB/s,如果以提升表现来说,表现提高29。23倍

所以说RAM Disk在解决宽频上的问题是可行及非常特出的,尤其是在高阶级的伺服器,当然需要稳定的电源供应。。。

在使用ERP是,数据库往往很大,如果通过硬碟搜寻资料,需要很多时间,如果使用RAM Disk,你可以看到Random Read竟然是800MB/s,这样的搜寻速度可以提升系统。。。


[ Last edited by goolb78 on 8-1-2005 at 11:19 AM ]
回复

使用道具 举报

发表于 1-10-2004 10:24 AM | 显示全部楼层
真的很快,但是我没有这么大的RAM?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 1-10-2004 10:48 AM | 显示全部楼层
红发 于 1-10-2004 10:24  说 :
真的很快,但是我没有这么大的RAM?


比较适合在伺服器使用,因为伺服器的RAM一般都是1GB或更多,当然个人用户也可以这样使用,如果你的记忆体够大,可以将整个游戏抄入RAM Disk,那你的游戏存取是极快的。可是没有几个用户有条件这么作。

所以在伺服器是最好应用的地方。
回复

使用道具 举报

发表于 1-10-2004 10:52 AM | 显示全部楼层
我的RAM有1G的话就可以了是吗?
我对硬件方面不是很有心得,如果我想把RAM提升到2G不知道可以吗?

听说反而会得不偿失,还是需要怎样的条件呢

[ Last edited by emilccp on 1-10-2004 at 10:57 AM ]
回复

使用道具 举报

 楼主| 发表于 1-10-2004 11:17 AM | 显示全部楼层
emilccp 于 1-10-2004 10:52  说 :
我的RAM有1G的话就可以了是吗?
我对硬件方面不是很有心得,如果我想把RAM提升到2G不知道可以吗?

听说反而会得不偿失,还是需要怎样的条件呢

[ Last edited by emilccp on 1-10-2004 at 10:57 AM ]


当然可以,可是你的RAM Disk的容量不能很高,大约可以512MB,要留512MB给Windows使用。

至於RAM的扩充问题,你可以参考你的主机板手册,如果你的主机板有4个插槽,那么应该可以支援至少2GB。

当你有这么多容量时,你就可以将RAM Disk提高到1。5GB。

RAM Disk最适合用在数据库,至於其他的方面,也可以,可是很少人这么作。
回复

使用道具 举报

发表于 1-10-2004 11:17 AM | 显示全部楼层
好啊!终于有看到原创了,写得好好,加油楼主!
请问楼主,这个在Active Directory上面用有什么问题吗?
还有,Batch File要怎样写?有没有一些资料可以参考?
回复

使用道具 举报

 楼主| 发表于 1-10-2004 11:27 AM | 显示全部楼层
kfchai1982 于 1-10-2004 11:17  说 :
好啊!终于有看到原创了,写得好好,加油楼主!
请问楼主,这个在Active Directory上面用有什么问题吗?
还有,Batch File要怎样写?有没有一些资料可以参考?


谢谢支持。

基本上用在任何方面都没有问题,只是最重要是要时常备分和稳定电源,这也许不是问题,因为备分很快。

我的Batch File是参考我的SQL Server手册写,你可以参考自己的SQL Server手册。

如果你有使用过MS-DOS,相信你也懂得写Batch File的技巧。
回复

使用道具 举报

Trisonz 该用户已被删除
发表于 2-10-2004 04:54 PM | 显示全部楼层
RAM Disk概念真的很好,但只限于database size不是很大的...我有个customer, database size 去到25GB,你说变态吗...??

谢谢楼主的分享...
回复

使用道具 举报

发表于 2-10-2004 05:10 PM | 显示全部楼层
加入精华。。
回复

使用道具 举报

 楼主| 发表于 2-10-2004 06:29 PM | 显示全部楼层
谢谢版主,我会继续努力的为大家写更多心得。。。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 2-10-2004 06:48 PM | 显示全部楼层
Trisonz 于 2-10-2004 16:54  说 :
RAM Disk概念真的很好,但只限于database size不是很大的...我有个customer, database size 去到25GB,你说变态吗...??

谢谢楼主的分享...


数据库如果太大,还有其他方法可以调整:
1。把数据库分成几个小数据库,放在几个伺服器,然后让每个伺服器都使用RAM Disk,这样也称为Network Load Balancing.速度可大幅度提高,相信Windows 2000 Server Data Center Edition是最适合的作用系统,因为其系统支持Network Load Balancing得很好。

2。还有一个比较底成本方法,就是使用Super Cache 2000 Server,原理是使用记忆体设立一个新的Cache,不同于Windows本身的Cache,是独特的,资料还是存在硬碟,系统启动时可以即刻将所有资料放入Cache里,这样一来减低了硬碟搜寻机率,提高系统表现,可是性能不如RAM Disk,也不必担心电源问题。通常这样适合在系统记忆体小于数据库。

假设你的伺服器的内存是4GB,你可以用Super Cache 2000 Server将使用3GB的记忆体来当是只有数据库的Cache,这样你的资料可以在系统启动时自动将3GB的数据库上载入记忆体,减少了很多硬碟旋转时间。

详细可以参考:http://www.superspeed.com/supercache.html

P/S:请问我的帖子右上角有五个小手指,是什么意思?

[ Last edited by goolb78 on 2-10-2004 at 09:25 PM ]
回复

使用道具 举报

 楼主| 发表于 4-10-2004 08:48 AM | 显示全部楼层
以下是我的ERP图片。

回复

使用道具 举报

发表于 5-10-2004 01:49 PM | 显示全部楼层
emilccp 于 1-10-2004 10:52 AM  说 :
我的RAM有1G的话就可以了是吗?
我对硬件方面不是很有心得,如果我想把RAM提升到2G不知道可以吗?

听说反而会得不偿失,还是需要怎样的条件呢



可以,你最好先了解自己的用户习惯。
例如你平时用多数用什么软件与大概用多少记忆体。
设定是必须根据电脑的性能与用户的习惯来调整。
回复

使用道具 举报

发表于 5-10-2004 02:15 PM | 显示全部楼层
goolb78 于 1-10-2004 11:17 AM  说 :
RAM Disk最适合用在数据库,至於其他的方面,也可以,可是很少人这么作。



有1GB记忆体的个人用户并不多,加上对这原理明白的人不多。
数据库属于读写率很高的应用软件,所以效能增加比较明显。

一般的个人用户所使用的软件,即使是用了效能也不会有很大的提升。
而且最难的是这个Ramdisk的空间是没有规定,必须由用户自己摸索出来的。
Ramdisk的大小必须根据用户的习惯来调整才能发挥到最优化的效能。

如果不是电脑玩家,相信很难可以说服他们用。
因为大部分的用户都中了英特尔的“Ghz病毒”!
而且一般的用户很怕会弄坏他们的电脑。
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 28-4-2024 09:33 PM , Processed in 0.065474 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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