8.21

Launch an instance from an image

$ openstack server create --flavor 1 --image 397e713c-b95b-4186-ad46-6126863ea0a9 \
  --security-group default --key-name KeyPair01 --user-data cloudinit.file \
  myCirrosServer

Launch an instance from a volume

$ openstack volume create --size 8 my-volume

$ openstack server create --flavor 2 --image 98901246-af91-43d8-b5e6-a4506aa8f369 \
  --block-device source=volume,id=d620d971-b160-4c4e-8652-2513d74e2080,dest=volume,shutdown=preserve \
  myInstanceWithVolume  #附加新卷 官网的不支持$ nova boot --flavor FLAVOR --block-device  source=SOURCE,id=ID,dest=DEST,size=SIZE,shutdown=PRESERVE,bootindex=INDEX \  NAME   #对应界面创建 id是前面的openstack server create 
                         --flavor 42 
--image 66baed9d-1c7d-457c-a422-5117da1caa0d
--block-device source=ee7d42f1-8df2-4272-b5b4-f302e0713a2a
--nic net-id=e15fac1f-c3e3-4b69-996e-170b50442634
myInstanceWithVolume
nova boot
--flavor 42
--image 66baed9d-1c7d-457c-a422-5117da1caa0d
--block-device source=volume,id=ee7d42f1-8df2-4272-b5b4-f302e0713a2a,dest=volume,shutdown=preserve
--nic net-id=e15fac1f-c3e3-4b69-996e-170b50442634
myInstanceWithVolume



———————————————— 
https://blog.csdn.net/Jmilk/article/details/80816827 大佬的文章


仅仅需要指定 Guest NUMA nodes 的个数,然后由 Nova 根据 Flavor 设定的虚拟机规格平均将 vCPU/Mem 分布到不同的 Host NUMA nodes 上(默认从 Host NUMA node 0 开始分配)
  • 限制实例nume 

openstack flavor set FLAVOR-NAME \
--property hw:numa_nodes=FLAVOR-NODES \     设定 Guest NUMA nodes 的个数
--property hw:numa_cpus.N=FLAVOR-CORES \      N取值范围在 [0, FLAVOR-NODES-1] 单个分配到 Guest NUMA node N 上运行的 vCPUs 列表
--property hw:numa_mem.N=FLAVOR-MEMORY 单个设定分配到 Guest NUMA node N 上 Memory Size

例子:

EXAMPLE:定义虚拟机有 4 vCPU,4096MB Mem,设定 Guest NUMA topology 为 2 Guest NUMA node:

Guest NUMA node 0:vCPU 0、Mem 1024MB
Guest NUMA node 1:vCPU 1/2/3、Mem 3072MB

openstack flavor set aze-FLAVOR \
--property hw:numa_nodes=2 \
--property hw:numa_cpus.0=0 \    这玩意不是使用0个cpu,而是使用编号0的cpu
--property hw:numa_cpus.1=1,2,3 \
--property hw:numa_mem.0=1024 \
--property hw:numa_mem.1=3072 \
————————————————

e.g. 

glance image-update --property \
hw_numa_nodes=2 \
hw_numa_cpus.0=0 \    
hw_numa_mem.0=1024 \
hw_numa_cpus.1=1,2,3 \
hw_numa_mem.1=3072 \
image_name
————————————————
注意,当镜像的 NUMA 约束与 Flavor 的 NUMA 约束冲突时,以 Flavor 为准。

大佬写了例子,额机子只有一个nume,没有必要了

  •  发送api策略

api https://www.cnblogs.com/goldsunshine/p/8119209.html 这也是大佬

/etc/libvirt/qemu devstack xml地址

  • 调整cpu

virsh

           vcpuinfo    使用情况

           emulatorpin  ID 0-1(物理核) #在线调整cpu 

<cputune>
<shares>1024</shares>
<emulatorpin cpuset='0-1'/>
</cputune>

          dumpxml ID #查看调整的.xml 文件

           vcpupin 1 0 1(虚拟机id,vcpu,cpu) #绑定cpu qemu不支持

实现技术:CGroup绑定虚拟机进程

  • 在线添加cpu(改小不支持)

cat /proc/interrupts cpu核数

virsh setvcpus 虚拟机名 cpu数  --live 在openstack 无法在线添加cpu 因为vcpu会有限制

virsh setvcpus instance-00000007 5 --live

echo 1>/sys/devices/system/cpu/cpu4/online 激活

验证 : cat /proc/interrupts

             cat /proc/cpuinfo | grep processor | wc -l

  • cpu 模式

cat /usr/share/libvirt/cpu_map.xml

主要的几种模式

<cpu mode='custom' match='exact'>

<cpu mode='host-model'> 默认模式,寻找最靠近的cpu

<cpu mode='host-passthrough'> 暴露给cpu用,不同cpu的迁移需注意

  • 内存运行情况

内存压缩,ksm技术,默认打开

阻止内存压缩,

<memoryBacking> <nosharepages/> </memorybacking>

/sys/kernal/mm/ksm

  • balloon 两种操作

内存被置换到虚拟机和还给宿主机

1.须在.xml配置文件

<memballoon model='virtio'>

<alias name='balloon0'></memballoon>

2.内存大小

qemu-monitor-command instance-00000007 --hmp --cmd info balloon 

qemu-monitor-command instance-00000007 --hmp --cmd  balloon 30 限制内存大小

  •  内存技术写入文件

virsh memtune virtual_machine --parameter size 限制内存的方法

      memtune instance-00000007 --hard-limit 65535 --config 最大(不加swap)

     memtune instance-00000007 --min_guarantee 35840  --live 最小

偶尔看到https://blog.51cto.com/10983441/2426287

  • 巨型页

如果在系统中使用了huge page ,则内存页的数量就是减少,从而要更少的页表,节约了页表所占用的内存数量,并且所需的地址转换,也减少了,TLB缓存失效的次数就减少了,从而提高了内存访问的性能,另外,由于地址转换所需的信息,一般保存在cpu的缓存中,huge page 的使用让地址转换信息减少,从而减少了cpu缓存的使用,减轻了cpu缓存的压力,让cpu缓存能更多地用于应用程序的数据缓存,也能够在整体上提示系统的性能。

cat /sys/kernel/mm/transparent_hugepage/enabled  定义开启巨页

cd /sys/kernel/mm/transparent_hugepage/khugepaged/ 监控 ( grep Huge /proc/meminfo)

 

.xml 配置巨页 <memoryBacking> <hugepages/></memoryBacking>

使用情况grep Huge /proc/meminfo

修改大小: echo  25000 > /proc/sys/vm/nr_hugepages(定义巨页大小)

                 或者sysctl vm.br_hugepages=N mount -t hugetlbfs hugetlbfs /dev/hugepages

                 重启libvirtd

关闭巨页:sysctl vm.br_hugepages=0  umount hugetlbfs

69

 

 

 

 

 

 

 

 

 

 

 
 
posted @ 2019-08-21 10:56  aha012  阅读(169)  评论(0编辑  收藏  举报