下面这个帖子的大部分内容来自下面这个帖子: 用64位软件做系统测试和自动交易,大家对硬件有何建议? http://www.hylt.net/vb/showthread.php?t=28064 单独整理出来方便大家参考。 众所周知Amibroker是做系统回测最快的一个平台,最近随着64位系统和大内存的逐渐普及,不少朋友开始考虑升级自己的PC到64位系统。这里是我目前使用的一个方法,实践证明效果非常明显,特地分享给大家,希望能为各位节省一点你最宝贵的资源:时间。 先介绍一下内存硬盘,其基本原理很简单,就是从内存里面划一块,然后虚拟成一个硬盘,实现和硬盘完全一样的功能,因为所有的读写操作都转化成内存读写,其速度非常快。 使用内存硬盘唯一的缺点是突然掉电之后就完蛋。关机前必须把上面需要保留的文件拷贝回硬盘,要不一关机就全部丢失了。 到底内存硬盘有多快呢?看具体的数据。 另,如果你google “RAM disk”的话,会找到有很多,其中不少是收费的,但其实性能还没有免费的RAMDISK好。 我用的是这个RAMDISK http://memory.dataram.com/products-a...ftware/ramdisk 下面有一个12种RAM DISK的I/O性能比较链接,你可以看到我用的这个免费的RAMDISK (第6个)非常不错: 顺序读写速度比普通硬盘(7200RPM)至少快20倍, 512K块读写读写速度快45-60倍, 4K碎块读写速度快230-520倍! 这种速度上的差异,再加上amibroker的话,做系统回测可以说是最完美的组合。 内存硬盘应该也可以和其他基于.net的平台一起使用,速度也可以提升,但是没有实验过,不知道具体效果。 参考:12内存硬盘软件性能比较 12 RAM Disk Software Benchmarked for Fastest Read and Write Speed http://www.raymond.cc/blog/archives/...d-write-speed/
进入下一个主题之前再来个小热身,喜欢网上看电影和连续剧,喜欢p2p下载的朋友注意啦 假设你的RAMDISK配置好了之后,把pps, pplive, emule这些P2P软件的工作目录转到内存硬盘上面,看电影和下载的速度倒是不一定有明显提升(因为这最终由你的网速决定),但关键是减少非常多的硬盘读写,长期而言,对硬盘有很好的保护。 下面让我们用 ramdisk 来提速 amibroker !!
下面的这个方法是在64位的Windows 7里面实现 基本要求:64bit Windows 7 (至少Home Premium版本)+ 至少4GB内存 *) 安装 VMware Server 2.0 (64bit) *) 用RAMdisk建一个1.5GB或者2GB的内存硬盘 (这个是关键 ) *) 在VMware里面安装Windows XP (32bit),分配1GB内存(足够了),然后装一堆需要的软件,包括amibroker (32bit) *) 然后把Windows XP的工作目录定位到内存硬盘上面,这样的话,所有这个Windows XP上的I/O都变成在内存里面的操作了。 *) 备份一个当前的Windows XP的镜像。 然后你就可以在这个虚拟出来的Windows XP里面做任意的实验,即使你的这个XP因为任何原因坏掉,不必重新安装,只要把原来的备份重新装回去,一切又恢复如新。 只要你的PC有足够资源,完全可以同时运行2,3个虚拟出来的Windows XP,然后里面装不同的实验环境。 我自己PC上面的Windows 7里面非常干净,只有一些基本的软件,还有就是VMware。VMware Server非常好,而且是免费的。
RAMDisk在32位Windows系统里面很难帮amibroker提速的主要原因是我们不能完全控制amibroker的工作目录,这样就不能把磁盘上的操作转到内存里面。 但是在64bit的Windows里面,其最小内存是4GB,这样就可以借助VMware去虚拟出一个Windows XP,并把整个Windows XP虚拟机的工作目录放在内存硬盘上面,这就实现了把绝大部分磁盘操作都转到内存里面的目的。 ======================================== 不过,上面的方法可能对于很多朋友而言有点过了,Amibroker即使不用任何的RAMdisk也是我所知道的做系统回测的最快的开发平台。
网上有很多讨论,比如是否把windows的temp目录,paging file这些东西放到RAMDISK里面,最后的结论是最好不要这样,因为这些目录的用途太复杂,很多应用程序都把东西扔到temp目录里面,重启之后也试图去用,结果导致很多问题。paging file也是非常重要的wnidows系统文件,放在ramdisk上面就怕突然掉电。 对于RAMDISK的用法就是越单纯,越简单越好,而且是要放那些可以丢失的临时文件。 我就把pps的那个臭名昭著的1G的临时文件放在RAMDISK上面,下次重启之后,pps又自动建一个放在那里。 手工保存文件非常快,从RAMDISK拷贝一个1GB的文件到硬盘,最多不会超过10秒。
I've been using vbox but it's not quite perfect, so I did a quick research on vmware. Looks like vmware server is discontinued and the currently free version is vmware player 3.0. http://vmfaq.com/entry/5/
多谢Funnymentals 的链接,vmware的产品是非常好,但是它的产品线的确是有点让人迷惑。 vmware player是免费的,面向普通桌面应用,支持3D加速的虚拟环境,如果要获得一些更多功能的话,再花$189升级成vmware workstation vmware server是免费的,面向企业服务器级的虚拟环境,如果要获得企业级vmware vSphere的话,就再花$$$$。 你给的那个链接非常详细,但是说server 2.x不是很准确,它其实指的是vCenter,现在被vSphere取代了....VMware到2013年终止对vCenter 2.x 的技术支持,对2.5的支持到2015年。这不是vmware server。 放心吧,用vmware server不会错,世界500强几乎都部署了vmware的产品,这么多公司给你买单让vmware继续研发,vmware放这些免费版本出来一是打击竞争对手,而是培养潜在用户,它一点不会吃亏的。而且这些免费版本都能升级到收费的虚拟环境中,在性能和可靠性方面一点都不含糊。
vmware现在还把ESXi也免费了,以前是收费的产品。这个东西可以直接安装在裸机上(没有任何OS,比如windows, linux),然后在ESXi上面再虚拟出其他的操作系统....算了,说这个太跑题了,和自动交易,交易系统不沾边,而且也不是我的重点。 我自己用vmware server就足够了。
假如你配置1GB内存给winxp,然后让winxp在vmware中启动,vmware就会在指定的工作目录中创建一个1GB的文件以和winxp的内存对应。我说的就是把这个1GB的磁盘文件放在内存硬盘中,这样就把对应于磁盘IO都放在了内存里面。 这么说估计你还是不能全明白, 如果你有兴趣的话,先把vmware装起来(网上很多资料,随便一搜就一堆),然后把winxp在vmware里面运行起来,大概就明白我说的啦
gzpony兄怎么想要在vmware里面模拟集群?的确是可以的。windows/linux集群都可以。 但是设置和管理不是更简单,而是有点复杂了。 另,不能把独立的物理pc虚拟成一台机器或者一个集群(这需要硬件的支持,比如SAN),但是像刚才说的,可以把几个虚拟的pc做成一个集群。
呵呵,是好奇问问。 看到有时候,要是购买速度为1倍处理速度的PC,要付出的价钱往往要超出1倍以上,可能是几倍才行。 所以突发奇想,要是几台速度低点的PC用虚拟化捆绑起来使用,也许更好? 而很多软件不支持集群,要是虚拟化后看起来像是一台PC,那软件都能支持了。