论文部分内容阅读
Memcached是一个高性能的分布式内存对象缓存系统,它通过在内存中缓存对象来减少读取数据库的次数,提高数据库读写速度。随着web应用的高速发展,Memcached在缓存领域发挥越来越重要的作用,对Memcached内存利用率和并发性能的要求也越来越高,寻求同时满足应用服务和性能需求的优化机制,是目前亟待解决的问题。结合对Memcached工作负载特征分析,和不同系统内存利用率和并发机制的分析对比,以偏重小对象键值存储和读操作为主的工作负载,难以兼顾内存利用率和高并发请求。据此提出了相应的解决方案:优化布谷鸟哈希算法,用其取代系统中默认的开链哈希算法,实现哈希表高占用,从而提高Memcached内存利用率;优化哈希表查询插入算法,基于标记值的查询和插入保持哈希表操作的缓存友好性,实现对哈希表的多读单写并发访问;基于计数器的乐观并发控制采用版本计数器来替换原系统全局锁,通过版本号的改变发现并发的替换操作,减小内部线程同步,确保数据一致性,允许大量并发访问,降低插入查询开销。基于Linux操作平台和cpu密集型计算,实现了Memcached的内存利用率和并发性能优化,在维持了内存高效率的前提下,提高了Memcached多读单写的高并发访问。系统测试采用符合zipf分布的测试数据集,存储相同记录,优化后的系统内存占用比原系统内存占用率减小20%;客户端请求读写高并发时,优化后的系统相较原系统,吞吐量至少提高2倍。