我从文档中发现,如果使用orientdb 100%使用磁盘缓存,则读取缓存的最大大小为70%,写入缓存的最大大小为30%(http://orientdb.com/docs/last/plocal-storage-disk-cache.html#interaction-between-read-and-write-caches)。
阅读有关读取缓存的更多信息,它除以3个队列:a1in,a1out和am,它们各自的最大大小分别为读取缓存大小的25%,50%和75%(http://orientdb.com/docs/last/plocal-storage-disk-cache.html#queue-sizes )。
很明显,在读取缓存已满的稳定状态下,读取缓存需要超过70%的磁盘缓存。这是怎么处理的?从写入缓存中获取了一些空间,或者从读取缓存开始只有更多空间?
另外,我想确定:
谢谢大家!
答案 0 :(得分:0)
很明显,在读取缓存已满的情况下,它需要超过70%的磁盘缓存。
并非读取缓存中的所有队列都包含已加载的数据。消耗50%磁盘高速缓存大小的a1out队列仅包含有关在a1in队列中加载的页面的信息。所以这个队列包含所谓的“ghost条目”,实际上它不会影响磁盘高速缓存的消耗。需要此队列来提供额外的统计数据,克服简单LRU缓存的缺点。
从写入缓存中获取一些空间,或者从读取缓存开始给予更多空间
写缓存和读缓存共享相同的内存空间,但部分空间专属于写缓存。
所涉及的“磁盘缓存”是包含在公共磁盘(HDD或SDD)中的RAM,而不是机器的RAM;
我们使用服务器的RAM而不使用HDD缓冲区。
orientdb使用的磁盘缓存的默认空间为100%
在高负载数据的情况下使用100%,否则现在15%(不是文档中规定的30%)仅用于写入缓存,因此在没有高数据负载的情况下不使用。< / p>