我们这里说的缓存就是迅雷水晶下载下来用于给其他客户端提供服务的文件。缓存存放在你自己自定义设定的路径中,有两部分组成,一个是数据库文件,dcdn_kernel_crystal.db,另一部分是dcdn_kernel_fv1-x。dcdn_kernel_fv1-x是供上传的缓存文件,而dcdn_kernel_crystal.db是记录本次初始化后水晶的信息、缓存文件信息的数据库文件,经过加密的,打开全是乱码,该文件功能类似于硬盘中的文件目录表PDT。
每次重启水晶都要进行初始化,这个初始化会重新生成dcdn_kernel_crystal.db文件,然后会重新下载缓存,这也就是为什么重启水晶后缓存文件还在,可是显示却是0。
为了描述的更简单更形象,打个比方吧。迅雷水晶就好像是一个买卖生意,首先市场有需求我们去进货(下缓存),货进到后给客户发货(上传),我们不一定要从同一家进货,谁家的货更好我们进谁的(多线程下载),售货呢也是谁需要我们发给谁(多线程上传)。可是货有一个属性,那就是需求,有需求的货自然发的多发的快,没需求的货就死掉了,无人问津。我们定义货的这个属性为活力,用字母w表示。新进的货一定是活力十足的,因为是看好了需求才进的货,而随着时间推移,货会慢慢过时,活力下降甚至死掉。不是所有的货都一定会死掉,也不是所有死掉的就不能活过来。因为看不到货我们只能定性分析,不能完全定量。同时货还有个有趣的属性,那就是昨天10点进的货也许半夜死掉了,可是到了第二天10点活过来的可能性为最大。死掉的货当然是扔掉最好,但是也不一定非要等到完全死掉,活力不行的货要来是无用的。
这些货是存放在512MB的dcdn_kernel_fv1-x文件中的,这个文件不是货物,更像是集装箱,一个集装箱可以存放N个货物,大的货物也可以放在几个集装箱中,货物的情况全部记录在dcdn_kernel_crystal.db文件中,没有他我们是找不到货物的。
Ok,一切围绕缓存来讨论。
插件版的水晶开启的时候会显示为预热,所谓预热就是下载缓存,直到开始上传。刚刚开始下载缓存的时候,我们手里的货物还很少,几乎不能给客户提供服务,也就没有多少流量,随着货物增加,我们给客户提供多种多样的服务,流量开始增加,而这种增加是随着线程数而增加的,而每一个线程上的速度却是我们无法操控的。随着缓存增加,线程增加,试想这样一个理论模型,我们1G的缓存对应10个线程,每个线程是50KB/s,总上传为500KB/s,那么当缓存10G的时候是100个线程,上传的速度是5MB/s,缓存继续增加,而我们的带宽是有限的,那么会出现什么情况呢?每个线程的流量不得已被压缩了,虽然表面上看上传速度很快,但是同样是5MB/s上传,10个500KB/s和100个50KB/s却相去甚远。过多的线程数严重侵蚀着硬盘的性能,也吞噬着cpu和路由器,于是一个缓存与速度的关系图就出来了。
下载:
缓存
但是我们最关心的两个问题却还没有得到解决。那就是:
1、何时是速度的峰值,这个缓存量化是多少;
2、如何能让缓存停留在峰值那里。
说实话,这两个问题目前都无法很好的解决。
其一,速度峰值的时候缓存是多少是根据每个人机器和带宽来的,只能定性不能定量,要想找到这个平衡点,那就要在自己机器上经过不断的摸索。
其二、让缓存停留在峰值那里,确实有办法,但是前提是你得先找到峰值是多少,而且峰值不是我们想要的,事实上是有多少有活力的资源才是关键,由于资源封装在缓存文件中我们无法得知,只能通过宏观的缓存量来体现。如果只是想让缓存停留,可以在自认为缓存大小合适的时候去限制水晶的下载速度。但是随着时间推移,死去的缓存越来越多,活力下降,速率必然下降。
综上我们得出,保持适当量的有活力的缓存是保证适当量的连接数的前提,保持适当量的连接数是保证速度最大化的前提。
回过头来我们分析一下水晶,水晶生成除了跟速度有关外还和转化率有关,这个就是体力。体力爆发的时候约512MB就可以生成一个水晶,如果提高爆发时间段的效率就是一天如何赚取最大量水晶的秘诀。要想爆发时间段高速上传,就要保证这一段时间内连接数的数量和质量。每天晚上六点开始爆发,要做到在爆发的时候我们已经准备好了符合条件的连接数。如果六点才开启水晶,预热下缓存,我敢说99%是无法取得好效果的。
实际操作中,我是在一点让机器休息,在爆发前让水晶已经保持良好的状态,缓存也已经准备,通常这个数至少在15G,当然,这个数是对我来说。如果缓存已经不少了,完全可以让水晶休息,在爆发前半个小时开启补充一些有活力的缓存即可。而如果缓存不够,则要早早开机储存缓存,事实上你储存的是缓存也是时间,千万不要浪费宝贵的爆发时间。
说了这么多,来点实战的攻略:
1、如何删除部分缓存而不是全部重新下载;
2、几种提速的方法及原理。
1、删除部分缓存
开工没有回头箭,目前水晶的设置是缓存下载就不能删,除非重新初始化全部删掉。大家可以删除缓存试试,会提示文件被占用无法删除。我的办法是把缓存空间设的很大,随时可以更新有活力的缓存,那些老的缓存则直接删掉。把运行水晶的系统进行休眠,用winpe启动进入找到缓存,适当删除排名靠前的缓存重启即可。砍掉那些活力不佳的缓存也就等于砍掉了那些弱的连接。
2、几种提速方法
(1)如果你不想删掉缓存,并发的连接数又过多,那么可以手动停止水晶等十分钟,然后再开启,他会自动连接那些速度较好的连接的。该方法适合长期挂机后连接数较多时用。
(2)本机或者在局域网内开启一个迅雷下载(包括各种平台的远程迅雷)并用会员登录开启离线或高速下载。原理和具体设置及效果稍后推出。
(3)使用锐速等第三方加速工具,不详表。