由于云主机项目提供的是整套虚拟化服务,上层服务并没有直接用到物理节点上的CPU,而是通过创建云主机的时候,指定规格来申请vcpu资源来使用,虚拟化出vcpu,需要得到硬件的支持,通常来说就是Intel VT和AMD-V,在此基础上一个云主机实际上是通过一个QEMU用户进程而在节点机上运行的,而vcpu实际上就是以QEMU进程的线程而存在

来看云主机vcpu和节点cpu之间的关系

~$[......]

Read more

最近又了解了一下BurnlnTest,主要用来对虚拟机进行加压,可以进行压测CPU,内存,IO等,我主要是测试了Linux主机,版本稍微有点老

下载链接:

wget http://www.passmark.com/ftp/burnintest_2.1.tar.gz

下载完解压后,先看下目录下各个玩意,README和帮助文档就不管了,这里有个shell脚本

#!/bin/bash

#Chec[......]

Read more

创建一个多VCPU的虚拟机,flavor如下

+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Pub[......]

Read more

一直没有弄明白宿主机CPU和虚拟机VCPU的对应关系是如何调度,或者说如何辨别,刚刚突然发现virsh可以直接查到这项信息

首先在一个安装有devstack的物理机上操作,当然假如有分布式openstack的节点机环境操作也行

# virsh
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for[......]

Read more

debian系列与rhel系列有些地方差别还是挺大的,rhel里直接top,f,j,回车,即可看到所有进程所在的cpu id,ubuntu里找了找,也是可以做到的

 

当然如果不想用top来看,通过ps命令也是可以找的

lihui@2015-vm1:~$ pgrep mysql
2209


lihui@2015-vm1:~$ ps -eo pid,psr | grep 2209
  2[......]

Read more

今天在处理程序在不同CPU架构,不同的指令集上编译的运行问题,其实没跨平台,算不上交叉编译,但需要将gcc按照不同cpu指令集在编译过程中提供给gcc选项,基本内容可以从gcc的man page里查找,下面是man里根据SSE4.2为标准的部分内容

core2
       Intel Core 2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 a[......]

Read more

VMware上一块物理网卡能虚拟出几块一样的虚拟网卡,那一个物理CPU是否能虚拟出多个呢,如果可以的话,岂不是能够单CPU模拟多处理并行

由于公司系统的运行环境对于多核的CPU Affinity绑定要求十分高,这样问题来了,假如安装在虚拟机里,分配了两个不同的CPU,如何能保证不会跨CPU呢,感觉想不通,试试再说

通过VMware ESXi来进行测试,宿主服务器2个物理CPU,12核

首先虚拟机属[……]

Read more

为了个破性能,调试了一下午,莫名其妙性能低得可怜,cpu affinity,memory,swap都在关注的范围内

为此,细心地看了下网卡卡槽位置,因为不同的体系结构,不同的CPU由于位置差异,表现出来的工作能力是有区别的,Sandy Bridge架构(26XX)非对称,咱们的系统主要进程在CPU1上才能更好的发挥性能优势,为此必须首先查看服务器是否安装正确,其次可以通过下面命令查看你所关心的网卡[……]

Read more

多核程序,需要查看进程绑定的CPU Affinity是否正确无误,否则性能可能大受影响,通常想知道进程所在cpu可通过下面命令查询:

pgrep 进程名得到进程pid: process_id

ps –eo pid,psr | grep process_id 就可以得到绑定的cpu id

假如多进程进程名都一致,那么一个一个查询显得不那么直观,也可以直接通过top显示出cpu affinity情况

[……]

Read more