zoukankan      html  css  js  c++  java
  • kvm内存优化--KSM

    一、KSM(Kernel SamePage Merging)
    1、KSM简介
    KSM允许内核在多个进程(包括虚拟机)之间共享完全相同的内存页,KSM让内核扫描检查正在运行中的程序并且比较他们的内存,若发现相同的内存页,就将相同的内存页合并成单一的内存页,标识为“写时复制”。
    如果有进程试图去修改被标识为“写时复制”的合并的内存页时,就为该进程复制出一个新的内存页供其使用。

    2、KSM提高内存的速度和使用效率
    (1)相同的内存页被合并,减少了虚拟机的内存使用量,内存中的内容更容易被保存到CPU的缓存中。
    (2)通过减少每个虚拟机实际占用的内存数量,让多个虚拟机占用的总内存之和大于物理内存,实现“内存过载”。

    3、KSM劣势
    (1)消耗一定的资源用于内存扫描,加重CPU的消耗。
    (2)虚拟机由于修改被KSM合并的内存页,从而这些被修改的内存重新被复制出来占用内存空间,造成内存不足,从而使用swap分区。因此内存不足时,频繁使用swap交互,虚拟机性能下降。

    二、KSM服务
    KSM主要有两个服务:ksm和ksmtuned。

    1、配置和监控ksm
    ksm的配置文件:/sys/kernel/mm/ksm/*
    1
    full_scans:已经对所有可合并的内存区域扫描过的次数。
    pages_shared:正在使用中的共享内存页数量
    pages_sharing:有多少内存页正在使用被合并的共享页,不包括合并内存页本身。这是实际节省的内存页数量。
    pages_to_scan:在ksmd进程休眠之前会去扫描的内存页的数量。
    pages_unshared:无重复内容而不可以被合并的内存页数量。
    pages_volatile:因为内容很容易变化而不被合并的内存页数量。
    run:控制ksmd是否运行。0:停止运行但是保存合并的内存页;1:马上运行ksmd;2:停止运行,并且分立已经合并的所有内存页。
    sleep_millisecs:ksmd进程的休眠时间。
    其中pages_to_scan、sleep_millisecs、run三个文件是可读写的,其他文件是只读的。

    2、配置和使用ksmtuned
    配置文件:/etc/ksmtuned.conf
    ksmtuned会一直保持循环执行,以调节ksm服务运行

  • 相关阅读:
    vue项目进行时,script标签中,methods事件中函数使用的async/await
    css阴影——box-shadow
    vue报错——Module not found: Error: Can't resolve 'less-loader sass' in ...
    vue组件如何引入外部.js/.css/.scss文件
    获得汉字的拼音或者拼音简写
    model转XML
    sql server 添加表注释、字段注释
    (转)SQL Server 监控统计阻塞脚本信息
    系统首页右下角弹框
    DropDownListExtend控件
  • 原文地址:https://www.cnblogs.com/lcword/p/14361931.html
Copyright © 2011-2022 走看看