一、SMP(对称多处理器)介绍

1)SMP简介

在计算机技术很普及和日益发达的今天,以 Intel、IBM 为代表的一些大公司推动着中央处理器(CPU)技术的飞速发展和更新换代。在如今计算机系统中,多处理器、多核、超线程等技术得到了广泛应用。

不管是在企业级和科研应用的server领域中;还是个人消费者使用的台式机、笔记本甚至仅仅能手机上,随处可见 SMP(Symmetric Multi-Processor 对称多处理器)系统。在 SMP 系统中。多个程序(进程)能够做到真正的并行运行。而且单个进程的多个线程也能够得到并行运行,这极大提高了计算机系统并行处理能力和总体性能。

2)SMP 硬件支持

在硬件方面,早期的计算机系统很多其它的是在一个主板上拥有多个物理的 CPU 插槽来实现 SMP 系统。后来随着多核技术、超线程(Hyper-Threading)技术的出现,SMP 系统就会使用多处理器、多核、超线程等技术中的一个或多个。多数的现代CPU都支持多核或超线程技术,如 Intel 的 Xeon(志强)、Pentium D(奔腾 D)、Core Duo (酷睿双核)、Core 2 Duo(酷睿二代双核)等系列的处理器和 AMD 的 Athlon64 X2、Quad FX、Opteron 200、Opteron 2000 等系列的处理器。

3)SMP 软件支持

在操作系统方面,多数的现代操作系统都提供了对 SMP 系统的支持、如主流的 Linux 操作系统(内核2.6及以上对 SMP 的支持比較完好)、微软的 Windows NT 系列(包含:Windows 2000、Windows XP、Windows 7、Windows 8、Windows 10等)、Mac OS 系统、BSD 系统、HP-UX 系统、IBM 的 AIX 系统,等等。


二、查看 CPU 数量、多核及超线程

至于查看 CPU 的 physical、processor、core 等信息,请看我曾经写的博客:

Linux查看CPU信息:http://blog.csdn.net/wanglei_storage/article/details/48326791


二、创建 kvm 虚拟机

1、安装 kvm 虚拟机

在配置客户机的 SMP 之前呢,必需要有虚拟机才行。这边简介下怎样创建一个虚拟机(准备一仅仅系统镜像。比如:CentOS-6.5-x86_64-bin-DVD1.iso):

1)首先。需要创建一个镜像文件,能够使用 dd 工具。以下创建一个 8GB 大小的系统磁盘文件 centos.img:

2)其次,启动该 kvm 虚拟机并安装系统

參数介绍:

-smp :也就是接下来要说明的东西。SMP(对称多处理器)系统

-m :分配给客户机的内存

-boot order=cd:指定引导次序。a、b表示软驱、c表示第一块硬盘,d表示第一个光驱设备。n-p表示网络适配器

-hda : 分配给客户机的 IDE 硬盘(即前面准备的镜像文件)

- cdrom:分配给客户机的光驱

默认情况下,QEMU会启动一个 VNC Server port(如上::1:5900),能够在kde桌面环境用 vncviewer 工具来连接到 QEMU 的 VNC port查看客户机,而且安装操作系统。

到这里,准备工作完毕


三、qemu-kvm 配置客户机的 SMP 系统

qemu-kvm 參数介绍:

在 qemu-kvm 命令中,”-smp” 參数即是为了配置客户机的 SMP 系统,详细參数例如以下:

-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]

当中:

  • n 用于设置客户机中使用的逻辑 CPU 数量(默认值为1)
  • maxcpus 用于设置客户机中最大可能被使用的 CPU 数量。包含启动时处于下线 offline 状态的 CPU 数量
  • cores 用于设置每一个 CPU socket 上的 core 数量 (默认值为1)
  • threads 用于设置每一个 CPU core 上的线程数(默认值为1)
  • sockets 用于设置客户机中看到的总的 CPU socket 数量。

以下通过 KVM 中的几个QEMU命令实例来看一下怎样将 SMP 应用于客户机中(查看进程及线程通过命令:ps -efL):

1)演示样例1(smp 指定为 4 表示分配了 4 个虚拟CPU给客户机):

我们在客户机中看到了4个 processor 和 cpu0、cpu1、cpu2、cpu3。而且在宿主机中看到了 qemu-kvm 进程和线程

2)演示样例2 (smp 指定为 2 表示分配了 2 个虚拟CPU给客户机)

我们在客户机中看到了2个 processor 和 cpu0、cpu1。而且在宿主机中看到了 qemu-kvm 进程和线程

3)演示样例3(不加 smp 參数。使用其默认值1,在客户机中查看 CPU 情况)

我们在客户机中看到了1个 processor 和 cpu0,而且在宿主机中看到了 qemu-kvm 进程和线程

kvm 虚拟化 SMP(对称多处理器)介绍及配置的更多相关文章

  1. [转] KVM虚拟化技术生态环境介绍

    KVM虚拟化技术生态环境介绍 http://xanpeng.github.io/wiki/virt/kvm-virtulization-echosystem-intro.html kvm和qemu/q ...

  2. KVM虚拟化(一)—— 介绍与简单使用

    一.架构及介绍 KVM(Kernel-based Virtual Machine)它由 Quramnet 开发,该公司于 2008年被 Red Hat 收购: 自Linux 2.6.20后整合到内核, ...

  3. Kvm 虚拟化介绍(1)

    一.虚拟化分类       1.虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间 ...

  4. kvm虚拟化介绍

    一.虚拟化分类 1.虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互相 ...

  5. KVM虚拟化介绍(1)

    一.虚拟化分类    1.虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独 立的空间内运 ...

  6. KVM——虚拟化

    KVM——虚拟化   虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互相 ...

  7. kvm虚拟化安装与部署(2)

    一.虚拟化VT开启确认 KVM 本身也有一些弱点,那就是相比裸金属虚拟化架构的 Xen . VMware ESX 和 HyperV , KVM 是运行在 Linux 内核之上的寄居式虚拟化架构,会消耗 ...

  8. kvm虚拟化之kvm虚拟机vnc配置

    本文是通过vnc方式访问虚拟主机上的KVM虚拟机.    这里的通过vnc方式访问虚拟机不是在kvm虚拟机安装配置vnc服务器,通过虚拟主机的IP地址与端口进行访问,kvm虚拟化对vnc的支持相对来说 ...

  9. Linux中安装配置KVM虚拟化

    KVM 概述: KVM 即 Kernel-based Virtual Machine 基于内核的虚拟机. KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的各 ...

随机推荐

  1. NIO使用Reactor模式遇到的问题

    关于Reactor模式,不再多做介绍,推荐Doug Lea大神的教程:Java 可扩展的IO 本来在Reactor的构造方法中完成一系列操作是没有问题的: public class Reactor i ...

  2. [BZOJ4000][TJOI2015]棋盘(状压DP+矩阵快速幂)

    题意极其有毒,注意给的行列都是从0开始的. 状压DP,f[i][S]表示第i行状态为S的方案数,枚举上一行的状态转移.$O(n2^{2m})$ 使用矩阵加速,先构造矩阵a[S1][S2]表示上一行为S ...

  3. 4425: [Nwerc2015]Assigning Workstations分配工作站

    4425: [Nwerc2015]Assigning Workstations分配工作站 Description Penelope is part of the admin team of the n ...

  4. js知识-进阶

    1 DOM 1.1 查找标签 (1)直接查找 document.getElementById(“idname”)          // dom对象 document.getElementsByTag ...

  5. JDK源码学习笔记——HashSet LinkedHashSet TreeSet

    你一定听说过HashSet就是通过HashMap实现的 相信我,翻一翻HashSet的源码,秒懂!! 其实很多东西,只是没有静下心来看,只要去看,说不定一下子就明白了…… HashSet 两个属性: ...

  6. mysql服务常用命令

    一.查出当前mysql正在执行的sql命令mysql> show full processlist; 然后找出要终止的语句的idmysql> kill id号 未登录的情况下>mys ...

  7. 邮件发送过去24小时的自增长事件(MSSQL)

    此脚本需要启用DBMail以支持邮件的发送.可设为每日运行的JOB以追踪自增长事件,以便做出适当的调整. -- Email the Auto-growth events that have occur ...

  8. TWinHttp之二

    TWinHttp之二 function EncodeParams(strings: TStrings): SockString;var i: Integer; S: string;begin for ...

  9. 粗览Activiti Modeler操作和源代码

    Activiti Model Editor组件 我的 了解ActivitiExplorer及其Vaadin实现方式博文里提到ActivitiExplorer使用的是Vaadin架构,但是Activit ...

  10. UIButton中的三个UIEdgeInsets属性

    接着昨天的 UIButton中的三个UIEdgeInsets属性 ,今天我们具体谈谈UIButton的contentEdgeInsets.titleEdgeInsets.imageEdgeInsets ...