论文部分内容阅读
Memcached作为一个高性能分布式缓存系统在云计算中得到了广泛的应用,它通过在内存中建立缓存来减少数据访问次数,提高读写速度。然而,随着大规模云计算技术和Web应用的快速发展,数据存储数量和速度成指数倍增长,Memcached在空间利用率和并发执行效率上已无法满足日益增长的快速数据读写需求。因此,对Memcached的性能优化成为目前亟待解决的问题。论文首先对Memcached缓存系统在不同内存资源池中的数据访问特征进行了对比分析,结果显示,Memcached数据操作以读操作为主,并且某些读操作中包含冗余的锁机制。另一方面,由于Memcached采用小key/value对象存储缓存数据,这使得它在空间利用率和并发性能上有很大提升空间。其次,论文在对链式哈希、线性探测、Cuckoo哈希和Hopscotch哈希四种哈希算法进行对比分析的基础上,提出了针对Memcached系统的三种优化方法:1)使用Hopscotch算法替换Memcached原有的链式哈希算法,减少了线程同步开销,提高了并发性能和空间利用率;2)使用时钟置换算法替换Memcached的近期最少使用算法(LRU),优化数据锁机制,提高了读操作的性能;3)提出了一种分块哈希表法,通过将哈希表分块,使得每个分块拥有自己的置换算法和哈希算法,并对所有分块进行线程级并发处理,提升系统并发访问效率。最后,论文基于OpenStack云平台对上述三种优化方法进行了实现。实验结果表明,在相同工作负载下,优化后的缓存系统提升了系统的并行性、减少了键值查找中访问内存的次数、提高了缓存利用率,与原系统相比在综合性能上提升了1.5倍左右。