zoukankan      html  css  js  c++  java
  • [TimLinux] CPU 常见架构介绍

    1. 简介

    系统性能依赖硬件架构,CPU架构决定了硬件的布局。常见的CPU架构:SMP, NUMA, MPP.

    2. SMP(对称多处理器)

    SMP:Symmetric Multiprocessing,所有处理器、总线、内存都是共享的,扩展性很差,多核CPU常常因为总线共享成为了瓶颈。

    3. NUMA(非均匀内存访问)

    NUMA:Non-Uniform Memory Access,内存跟CPU有直接连接(Local Access),要访问其他CPU连接的内存,需要通过Inter-Connect总线(Remote Access),操作系统内将CPU,内存划分为一个个的node(对应/sys/devices/system/node目录中的node0, node1)来管理Core、内存节点(内存在系统内又映射成多个内存节点)。node间交换资源性能低,针对大数据访问量大应用(比如:MySQL数据库)容易出现性能时好时坏大问题。

    4. MPP(大规模并行处理)

    MPP:Massive Parallel Processing,像刀片服务器,每一个刀片单元又是一个独立大SMP架构的硬件,刀片间通过高性能的网络设备进行交互。增加刀片节点,相应的管理中心系统也需要进行扩容。

    5. Linux内关联命令

    lscpu 显示CPU架构相关信息
    taskset 设置进程亲近的CPU(系统调用:sched_setaffinity),也可以通过cgroup的cpuset来配置。
    
    关联的rpm包:util-linux

    # numactl --hardware
    available: 2 nodes (0-1)
    node 0 size: 32276 MB
    node 0 free: 26856 MB
    node 1 size: 32320 MB
    node 1 free: 26897 MB
    node distances:
    node   0   1 
      0:  10  21 
      1:  21  10

    关联的rpm包:numactl

    6. 相关优化

    针对各CPU架构,尤其是NUMA架构,一些应用软件遇到过各种坑(比如:MySQL,PostgreSQL),目前多是通过一些操作(启动前的系统操作,核心+内存+进程的关联绑定)来进行优化。

    • 比如:https://blog.jcole.us/2012/04/16/a-brief-update-on-numa-and-mysql/
  • 相关阅读:
    进程线程模型
    操作系统运行机制
    操作系统概论
    排序
    win32消息机制
    win32框架
    map
    deque & list
    vector内部实现2
    蓝桥杯 文化之旅 图论 待复习
  • 原文地址:https://www.cnblogs.com/timlinux/p/10451419.html
Copyright © 2011-2022 走看看