zoukankan      html  css  js  c++  java
  • openstack-NUMA排错记录

    生成环境中有使用到numa 技术, 但是对numa 知道也是一知半解。如果有理解错误请大家指正啊。

    什么是numa ?

    非统一内存访问(NUMA)

    内存访问时间取决于处理器的内存位置。 在NUMA下,处理器访问它自己的本地存储器的速度比非本地存储器(存储器的地方到另一个处理器之间共享的处理器或存储器)快一些。

    因为同一时间只能有一个处理器访问计算机的存储器,所以在一个系统中可能存在多个处理器在等待访问存储器 ,随着CPU核心数的增加,这样的架构难免遇到问题,比如对总线的带宽带来挑战、访问同一块内存的冲突问题 ,延申出来得解决方法:NUMA 

    numa 注意得问题: 

    • 默认情况下,内核不会将内存页面从一个 NUMA Node 迁移到另外一个 NUMA Node;

    问题得描述: 

     用户在openstakc  在用一个大的flavor 在指定得compute 节点启虚机失败提示Insufficient compute resources: Requested instance NUMA topology cannot fit the given host NUMA topology 报错 ,检查compute 节点资源充足但是无法创建虚机

    排查问题记录: 

    1.  检查了创建虚机得flavor 调用资源是有多少,检查compute 节点得资源是否满足

    检查虚机使用得flavor

    nova flavor show  test-yk-113

    +----------------------------+---------------------------------------------------------------+
    | Property | Value |
    +----------------------------+---------------------------------------------------------------+
    | OS-FLV-DISABLED:disabled | False |
    | OS-FLV-EXT-DATA:ephemeral | 0 |
    | disk | 20 |
    | extra_specs | {"hw:cpu_policy": "dedicated", "hw:mem_page_size": "1048576"} |
    | id | 1998 |
    | name | test-yk-113 |
    | os-flavor-access:is_public | True |
    | ram | 20480 |
    | rxtx_factor | 1.0 |
    | swap | |
    | vcpus | 20 |
    +----------------------------+---------------------------------------------------------------+

    检查compute 节点资源  (没有报错compute 资源截图,为了查看用了一台初始得环境得节点) 

    nova hypervisor-show    conpute节点

    hypervisor_type | QEMU |
    | hypervisor_version | 2011001 |
    | id | 43 |
    | local_gb | 6532 |
    | local_gb_used | 0 |
    | memory_mb | 515075 |
    | memory_mb_used | 0 |
    | running_vms | 0 |
    | service_disabled_reason | None |
    | service_host | ca-compute-0-9.internal.ca.fuel |
    | service_id | 121 |
    | state | up |
    | status | enabled |
    | vcpus | 68 |
    | vcpus_used | 0 |
    +---------------------------+------------------------------------------+

    2.  compute 检查资源充足,但是看到我们flavor 使用得HugePages 检查一下我们大页内存

    如果配置了大页内存,检查物理节点上的剩余大页内存是否满足需求,我们flavor 的内存应该是小于HugePages_Free:     20  。 这里的应该是20G

    cat /sys/devices/system/node/node*/meminfo | fgrep Huge


    Node 0 AnonHugePages: 0 kB
    Node 0 HugePages_Total: 50
    Node 0 HugePages_Free: 20
    Node 0 HugePages_Surp: 0
    Node 1 AnonHugePages: 0 kB
    Node 1 HugePages_Total: 50
    Node 1 HugePages_Free: 14
    Node 1 HugePages_Surp: 0


    HugePages_Total表示目前总共有多少个大页,
    HugePages_Free表示程序运行起来之后还剩余多少个大页,
    HugePages_Rsvd表示系统当前总共保留的HugePages数目,更具体点就是指程序已经向系统申请,
    但是由于程序还没有实质的HugePages读写操作,因此系统尚未实际分配给程序的HugePages数目。
    Hugepagesize表示每个大页的大小,在此为1GB。

    3. 修改flavor 大小创建虚机验证

    修改flavor 大小小于20G

    +----------------------------+---------------------------------------------------------------+
    | Property | Value |
    +----------------------------+---------------------------------------------------------------+
    | OS-FLV-DISABLED:disabled | False |
    | OS-FLV-EXT-DATA:ephemeral | 0 |
    | disk | 20 |
    | extra_specs | {"hw:cpu_policy": "dedicated", "hw:mem_page_size": "1048576"} |
    | id | 1998 |
    | name | test-yk-113 |
    | os-flavor-access:is_public | True |
    | ram | 18432 |
    | rxtx_factor | 1.0 |
    | swap | |
    | vcpus | 20 |
    +----------------------------+---------------------------------------------------------------+

    创建虚机检查(创建虚机命令可以查看openstack 创建实例得随笔)

    nova list| grep  test-yk

    | 9e201369-12ee-4f65-b656-c1210c786f34 | test-yk                  | ACTIVE  | -          | Running     | test=100.100.0.33  

    nova show test-yk | grep  flavor

    | flavor                               | test-yk-113 (1998)

  • 相关阅读:
    如何修改Myeclipse的JSP模板
    解决----------“win10,不能打字了,已禁用IME”
    Scala学习之For、Function、Lazy(4)
    Scala学习之Tuple、Map、Array
    PHP Cookies
    PHP Cookies
    PHP 文件处理
    PHP include 和 require
    sqlserver2012 评估期已过问题处理
    PHP preg_match正则表达
  • 原文地址:https://www.cnblogs.com/yk0625/p/14037259.html
Copyright © 2011-2022 走看看