天下网吧 >> 网吧方案 >> 无盘方案 >> 正文

什么是无盘缓存

读缓存

在数据服务开启以后有磁盘映像数据的读取动作时,数据服务会不断检查此磁盘映像已经使用了多少缓存空间,如果没有达到设定值的话,数据服务就会申请一块内存把刚刚读到的磁盘映像数据保存在里面,直至申请的内存总数已经达到设定值。以后再有任何客户机需要读取磁盘映像数据时,数据服务先检查数据是否已经在内存里,如果在的话就直接从内存里读出来返回给客户机,如果不在的话就从磁盘映像文件里读出来返回给客户机
     由于我们的读缓存设计的比较简单,并没有做更深入的数据置换机制,所以最先读到的数据会一直保留在缓存中而永远不会被释放(一直到数据服务重启)。而对于无盘的系统盘,最新读的数据肯定是启动时需要的数据(大约100M左右),所以我们的读缓存最适合的就是系统盘。对于其他盘,一般系统启动以后都会先读取一下磁盘的目录区,根据磁盘大小不同大约会有5~10M的数据,这些数据都是每次系统启动以后必读的数据,也很适合于放置在读缓存中。
     根据以上的原理,系统盘大约设置100M~200M左右的缓存即可,而其他磁盘只需要设置10~20M缓存就可以了。除了系统启动数据和游戏盘的目录区数据,其他数据都是比较随机没有什么规律的,因为每台客户机上的使用者不同,使用的软件不同,玩的游戏不同,很难有一个比较好的缓存算法,缓存算法设计不好的话不仅不会改善反而会恶化性能。

写缓存

我们目前采用的写缓存容量是固定的1M,也就是说只要设置了“使用写缓存”,每台客户机启动后会为它使用的每个磁盘分配1M的写缓存,比如客户机使用了2个磁盘,分别是系统盘/游戏盘,就会为这台客户机分配2M的写缓存 。
写缓存主要目的是增大写数据的块,以提高磁盘的写效率。这就象拷贝一个1G的大文件会比拷贝1000,000个1K的小文件快的多,由于无盘的客户机数量比较多,写临时文件非常分散,每次写临时文件都被分散成很小的块,导致磁盘的磁头频繁的移动以搜索写的位置,这会极大降低写的效率。采用了写缓存以后,几K的小块会被合并成一个近1M的大块再写入临时文件,从而提高了写效率
     以上的读写缓存实际上在Windows服务器系统中也已经有了类似的缓存优化,我们所做的就是针对无盘的特殊读写方式做了更深一步的优化。某些第三方的缓存软件如“SuperCache”,“CleverCache”等也做的很专业,不排除使用了这些第三方软件后的效果比我们自己内嵌的缓存算法更好的可能,建议用户多做尝试,不同的硬件环境不同的系统都会有不同的结果。

参与讨论什么是无盘缓存,请点击进入网吧论坛

本文来源:天下网吧 作者:网吧方案

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下