CPU,記憶體虛擬化技術

來源:互聯網
上載者:User

標籤:kvm   cpu   記憶體   

內容從<深度實踐KVM>一書總結
 CPU、記憶體虛擬化技術與應用情境
 NUMA技術與應用
1.SMP技術
2.MPP模式
3.NUMA技術(none Uniform memory access architecture)非統一記憶體存取架構
numactl --hardware :查看當前CPU硬體的情況
 numastat -c qemu-kvm
 關閉Linux系統的自動平衡:echo 0 > /proc/sys/kernel/numa_balancing
虛擬機器NUMA資訊查看與配置


virsh numatune:查看修改虛擬機器的NUMA配置
<numatune>
    <memory mode=‘strict‘ placment=‘auto‘/>
</numatune>
<numatune>
    <memory mode=‘strict‘ node=‘0,2-3‘/>
</numatune>


使用numatune配置虛擬機器的NUMA
    virsh numatune rhel7 --nodeset ‘0,2-3‘
vCPU的設定如下
    <vcpu placement=‘auto‘>8</vcpu>
    <vcpu placement=‘static‘ cpuset=‘0-10,^5‘>8</vcpu>
    
    <vcpu>和<numatune>需要保持一致,<numatune>配置的是物理CPU,<vcpu>配置的是CPU的核,包括超執行緒產生的核。<numatune>使用strict模式,<nodeset>也必須是.
    
    設定一個虛擬機器給32個虛擬CPU,但是一開始只能使用8個.然後根據系統壓力,熱添加CPU給虛擬機器
     <vcpu placement=‘auto‘ current=‘8‘>32</vcpu>

    
    CPU pinning策略
    <cputune>
        <vcpupin vcpu="0" cpuset="1-4",^2"/>
        <vcpupin vcpu="1" cpuset="0,1"/>
        <vcpupin vcpu="2" cpuset="2,3"/>
        <vcpupin vcpu="3" cpuset="0,4"/>
    </cputune>
    

     或者使用emulatorpin的方式
         <cputune>
             <emulatorpin cpuset="1-3"/>
         </cputune>

         virsh emulatorpin CentOS7 1-3


     <cpu>
         ……
         <numa>
             <cell cpus=‘0-3‘ memory=‘512000‘/>
             <cell cpus=‘4-7‘ memory=‘512000‘/>
         </numa>
         ...
     </cpu>

             cell:numa的cell或者numa節點
             cpus:一個物理CPU可以使用的CPU範圍
             memory:可以使用的記憶體大小,單位為KB

     虛擬機器NUMA和記憶體KSM
         KSM技術可以合并相同的頁,即使是不同的NUMA節點

         關閉ksm

         echo 0 > /sys/kernel/mm/ksm/merge_across_nodes
         或者
         <memoryBacking>
             <nosharepages/>
         </memoryBakcing>

         CPU綁定操作方法
             可以線上配置,並且立即生效


             1.CPU資訊查看
             virsh vcpuinfo 21  <------ 虛擬機器ID
             
             線上綁定虛擬機器的CPU

                 virsh emulatorpin 21 26-31 --live
                 virsh vcpuinfo 21

                 virsh # dumpxml 21


         NUMA在虛擬化應用之外的提示:
         某些應用,比如資料庫,為了保證效能,需要盡量使用更多的記憶體.如果使用系統預設的NUMA自動平衡策略,有可能一個CPU的記憶體消耗光,另外一個CPU還有記憶體可以使用,但是系統卻去調度swap使用,造成嚴重的效能下降,使用這些記憶體消耗型的應用時,可以考慮直接將系統的NUMA自動平衡策略關閉



CPU熱添加與應用
    cat /proc/interrupts 查看CPU中斷可是看到有幾顆CPU在工作
        virsh setvcpus CentOS7 5 --live
        echo 1 > /proc/devices/system/cpu/cpu4/online啟用CPU4



        CPU Nested技術與配置方法
        第一步
            rmmode kvm-intel
            modprobe kvm-intel nested=1
            或者修改modprobe.d  編輯/etc/modprobe.d/kvm_mod.conf
            options kvm-intel nested=y


            檢查cat /sys/module/kvm_intel/parameters/nested   Y
        第二步:
            第一層的虛擬機器組態檔,要將物理機CPU的特性全部傳給虛擬機器,使用CPU HOST技術

            <cpu mode=‘host-passthrough‘/>
        第三步:
            和宿主機一樣,將第一層虛擬機器按照宿主機配置,安裝相應的組件,然後就可以安裝第二層的虛擬機器




KSM技術與應用
1. 宿主機記憶體合并
      KSM服務
      ksmtuned服務
      要關閉KSM,關閉相關的兩個服務
              service ksm stop
              servicde ksmtuned stop
              chkconfig ksm off
              chkconfig ksmtuned off
       案頭虛擬機器推薦使用, 但是要根據實際情況控制記憶體超用的比率


  記憶體氣球技術
              1.安裝virt balloon的驅動,核心開啟CONFIG_VIRTIO_BALLOON    CentOS7預設開啟,並且預設安裝該驅動

               lspci
                 ...
                 Red Hat.Inc Vritio balloon

                 虛擬機器需要增加以下配置
                 <memballoon model=‘virtio‘>
                         <alias name=‘balloon0‘/>
                 </memballoon>



                 查看當前記憶體大小
                       virsh qemu-monitor-command windows7 --hmp --cmd info balloon
                       balloon:actual=4096
                   限制記憶體大小為2GB並查看
                       virsh qemu-monitor-command windows7 --hmp --cmd balloon 2048

      記憶體限制技術
                  virsh memtune virtual_machine --parameter size


                  hard_limit
                  soft_limit
                  swap_hard_limit
                  min_guarantee

                      virsh memtune windows7 --hard_limit 9437184 --config
                      virsh memtune windows7 --soft_limit 7340032 --config
                      virsh memtune windows7 --swap_hard_limit 10488320 --config
                      virsh memtune windows7 --min_guarantee 4194304 --config



                      --config寫到設定檔中,下次重啟虛擬機器進程生效
                      --live:影響正在啟動並執行虛擬機器,虛擬機器進程停止後,效果消失
                      --current:影響停止和正在啟動並執行虛擬機器,如果虛擬機器運行,虛擬機器進程停止後,效果消失

本文出自 “lionel” 部落格,請務必保留此出處http://reliable.blog.51cto.com/10292844/1782384

CPU,記憶體虛擬化技術

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.