如何优化基于NoSQL内存数据库的Linux性能
[复制链接]
NoSQL指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。下面由卓跃教育为您介绍如何优化基于NoSQL内存数据库的Linux性能。
在重构Linux内核之前,请不要忘记风险,通过优化vanilla3.xkernel中的如下选项可以应对我们所提到的工作负载挑战:
•CONFIG_TASK_IO_ACCOUNTING:非常重要,允许您监控服务器进程的磁盘活动状态。
•CONFIG_SLUB:ChrisLameter的内核对象缓存系统。相比SLAB而言,在管理内核内存分配方面效率更高。
•CONFIG_JUMP_LABEL:内核分支优化,使内核速度更快。
•CONFIG_NUMAandfriends:适用于多核处理器,为内核启用NUMA功能,提升对高速缓存和内存的一致性支持。
•CONFIG_SPARSEMEM_VMEMMAP:针对pfn_to_page和page_to_pfn函数的稀疏内存优化选项。 •CONFIG_TRANSPARENT_HUGEPAGE,CONFIG_COMPACTION,CONFIG_MIGRATION,CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS:这些参数可用于分配大于4KB的内存页,为内存饥饿进程加速分配内存。另外,它们还可以对内存页进行压缩和迁移,以对大型页面进行安全查询,并进一步减少内存碎片。
•CONFIG_KSM:以MADV_MERGEABLE的方式取消内存页面的标记是一个非常重要的机制,可以以终极的方式节省内存。
•CONFIG_ZRAM:提供了一个基于内存的块设备。在此块设备中写入的数据会被压缩,并存储在内存中。这对临时存储空间非常有用(挂载在/tmp目录下),由于此特性用于临时区域,请将它构建为一个模块,并小心使用。
•CONFIG_ZCACHE,CONFIG_ZSMALLOC&CONFIG_CLEANCACHE:一个内存页面压缩框架,可透明地压缩清洁页面和交换页面,从而为基于内存的工作负荷提供显著的性能提升。CleanCache使用ZCache框架对内存页面进行压缩,可以在高内存环境下有效地降低I/O请求。由于此特性用于临时区域,请谨慎使用。
当然,我们的优化是基于x86_64架构的。此外,另一些选项也会涉及到工作负荷的性能优化:
•CONFIG_PERF_EVENTS:内核性能计数器,与perf等工具共同使用。尤其适用于深度性能监控。
•CONFIG_PROFILING:性能分析计数器,与OProfile等工具共同使用。与PERF_EVENTS同样重要。
您有任何关于Linux的疑问,欢迎咨询在线老师 •HAVE_BPF_JIT:基于时间规则的编译器,用于基于PCAP(packetcapturelibrary)并使用伯克利包筛选器(BerkeleyPacketFilter,如tcpdump)的用户工具,可以大幅提升复杂规则的处理性能。通过/proc/sys/net/core/bpf_jit_enable启用它。 通过上文,您对Linux是否有了一定的了解。如果您还有任何Linux方面的疑问,可以登录www.51great.org,点击在线咨询与在线老师交流。您也可以拨打我们的全国免费咨询专线:0591-83713060进行咨询。
|