mixi如何利用memcached构建大规模缓存系统

0 下载量 3 浏览量 更新于2024-08-30 收藏 230KB PDF 举报
本文主要介绍了memcached在实际应用中的重要性,特别是在mixi服务中的部署和使用情况。mixi在初期阶段就引入了memcached来应对数据库读写压力的增加,通过验证其性能和稳定性,证明了memcached是提高系统扩展性的有效解决方案。 在mixi的系统架构中,memcached被广泛应用于各种服务器,如数据库服务器、应用服务器、图片服务器和反向代理服务器。目前,他们运营着近200台专门的memcached服务器。这些服务器通常配置为Intel Pentium 4 2.8GHz处理器,4GB内存和146GB SCSI硬盘,运行Linux(x86_64)操作系统。随着技术进步,旧的数据库和应用服务器被升级,内存更丰富的服务器被用来运行memcached,从而控制了整体服务器数量的增长,降低了管理成本。 每台memcached服务器仅运行一个进程,分配3GB内存用于数据存储,启动参数为`/usr/bin/memcached -p 11211 -u nobody -m 3000 -c 30720`。使用64位操作系统允许分配超过2GB的内存,避免了在32位系统中可能遇到的内存限制问题。尽管服务器总内存为4GB,但分配给memcached的内存只占3GB,这是为了避免触发内存交换,因为内存交换会导致性能下降。 memcached的内存管理机制,特别是“slab allocator”,在启动时指定的内存分配量是用于存储数据的,不包括 slab allocator 自身占用的内存和管理数据的空间。这确保了高效的数据存储和检索,同时避免了内存浪费。 memcached在大规模Web服务中的应用展示了其在处理高并发和缓存数据方面的优势。它在mixi的系统中扮演了关键角色,有效地提升了系统的响应速度和稳定性,并且通过合理配置和利用硬件资源,降低了运营成本。