solaris之cpu
一、 Solaris的处理器硬件系统架构
Solaris支持多种处理器系统架构:SPARC、x86和x64.x64即AMD64及EMT64处理器.在版本2.5.1的时候,Solaris曾经一度被移植到PowerPC架构, 但是后来又在这一版本正式发布时被删去.与Linux相比,Solaris可以更有效地支持对称多处理器、即SMP架构.Sun同时宣布将在Solaris 10的后续版本中提供Linux运行环境, 允许Linux二进制程序直接在Solaris x86和x64系统上运行. Solaris传统上与基于Sun SPARC处理器的硬件体系结构结合紧密, 在设计上和市场上经常捆绑在一起,整个软硬件系统的可靠性和性能也因此大大增强.然而SPARC系统的成本和价格通常要高于PC类的产品,这成为Solaris进一步普及的障碍.可喜的是,Solaris对x86体系结构的支持正得到大大加强,特别是Solaris 10已经能很好地支持x64(AMD64/EMT64)架构.Sun公司已推出自行设计的基于AMD64的工作站和服务器,并随机附带Solaris 10操作系统.
1.SPARC硬件
SPARC全称为“可扩充处理器架构”(Scalable Processor ARChitecture),是RISC微处理器架构之一.它最早于1985年由Sun所设计,也是SPARC国际公司的注册商标之一.这家公司于1989年成立,其目的是向外界推广SPARC,以及为该架构进行符合性测试.此外该公司为了扩阔SPARC设计的生态系统,SPARC国际也把标准开放,并授权予多间生产商采用,包括德州仪器、Cypress半导体、富士通等.SPARC架构也对外完全开放,因此也出现了完全开放源代码的LEON处理器,这款处理器以VHDL语言写成,并采用LGPL授权.SPARC架构原设计给工作站使用,及后应用在Sun、富士通等制造的大型SMP服务器上.下面的表格中按类别列出了 Solaris 10 发行版支持的各种 Sun 硬件系统的 SPARC 平台名称和平台组.所有 SPARC 平台都是 64 位的,但它们既可以运行 64 位的应用程序,也可以运行 32 位的应用程序.这些平台在使用 Solaris 10 发行版时,没有其他特殊的安装或升级说明.表1- 2 中列出的平台是sun4v 平台组的一部分.
一个典型的Solaris SPARC工作站包含下面的部件:
基本部件,包括主板、SCSI控制器和SBUS卡
显卡
使用SCSI总线或者IDE连接线和基本部件上的SCSI控制器相联的SCSI设备
CD-ROM驱动器,内部或者外部(SCSI或者IDE)
DVD-ROM驱动器,内部或者新的系统
音响和麦克风,外部设备
两个串行接口(A和B)
一个并行接口
内部或者外部磁带驱动器(DAT/DDS/QIC等等)
鼠标(机械的或者光电的)和键盘
下面比较两个典型的SPARC系统
让我们仔细分析两种SPARC系统:工作站(UltraSPARC 5)和服务器(UltraSPARC E-450) . UltraSPARC 5系统是曾经流行的低端桌面模型.尽管它已经被新的、花费更少的Sun Blade 100所取代,但在低端商业和家庭应用中它仍然非常受欢迎,UltraSPARC 5它支持270MHz—400MHz的UltraSPARC-IIi CPU.它内部建有16KB的指令和数据缓存,支持256KB—2MB的外部缓存.在内存和磁盘容量方面系统支持512MB物理内存,CD-ROM 和一个1.44MB的软盘,两个硬盘驱动器系统有三个外围设备(两个串口和—个并口)并具有内置的以太网适配器10Mb/100Mb 速度. UltraSPARC 5在性能和桌面PC 相当.
UltraSPARC E-450是工作组统的服务器,支持对称多处理、更多的磁盘、高速总线、热切换、每个CPU 有更多的缓存RAM.UltraSPARC E-450支持四个UltraSPARC-Iii CPU,速度在250MHz-480MHz.每个CPU 内部有16KB的指令和数据缓存,外部缓存可以达到4MB.系统支持多达16个双内置内存模块(DIMMS),物理内存可以达到4GB.此外也可以在底盘上安装热插拔交换电源,从而可以使用两个不同的电源.系统有三个外围设备(两个串口和—个并口)并具有内置的以太网适配器10Mb/100Mb 速度.一个用于备份的DDS-3 的DAT磁带驱动器.
2.Intel的x86 硬件
如果Solaris只是为运行在SPARC硬件上而设计的,那么Sun可以在SPARC上赚到钱,为什么Sun还要支持Intel版本呢?对于初学者而言,世界上的Intel系统要比SPARC系统多.Sun和Intel还有历史上的关系,Intel在80386和80486中支持SunOS4.x.然而,正是这样,Sun开发了SPARC的CPU,它是现在UltraSPARC系列CPU的先驱.基于Intel的系统也可以在工作站环境中运行,比SPARC系统要便宜得多.Sun的生意主要在服务器硬件上,它为Intel工作站开发可靠的(它自己的高端服务器也支持)操作系统.对于很多潜在的Solaris用户来说,即便是他们想要获得UNIX操作系统的特性,SPARC系统对于他们来说还是太昂贵了.一般来说,各种组织总是要充分利用它们现有的在PC硬件上的投资.
二 、监控处理器命令使用实例
1.使用psrinfo命令查看处理器类型
psrinfo 命令已经过修改,不仅可以提供有关虚拟处理器的信息,还可以提供有关物理处理器的信息.添加此增强功能是为了识别芯片多线程(CMT) 功能.新增的-p 选项可报告系统中物理处理器的总数.使用psrinfo -pv 命令可列出系统中所有的物理处理器,以及与每个物理处理器关联的虚拟处理器.psrinfo 命令的缺省输出仍然可显示系统的虚拟处理器信息.
应用实例:
◆显示系统的物理处理器类型
使用psrinfo -p 命令可以显示系统中物理处理器的总数.
$ psrinfo -p
1
使用psrinfo -pv 命令可以显示有关系统中的每个物理处理器的信息以及与每个物理处
理器关联的虚拟处理器.
在基于x86 的系统中使用psrinfo -pv 命令时,将显示以下输出:
# psrinfo -pv
物理处理器有 1 个虚拟 处理器 (0)
x86 (AuthenticAMD family 6 model 8 step 1 clock 1800 MHz)
AMD Athlon(tm) XP 2200
◆显示系统的逻辑处理器类型
使用psrinfo -v 命令可以显示有关系统的处理器类型的信息.
$ psrinfo -v
SPARC: 显示系统的处理器类型
此示例说明如何显示有关基于SPARC 的系统的处理器类型的信息.
$ psrinfo -v
Status of virtual processor 0 as of: 04/16/2004 10:32:13
on-line since 03/22/2004 19:18:27.
The sparcv9 processor operates at 650 MHz,
and has a sparcv9 floating point processor.
此示例说明如何显示有关基于x86 的系统的处理器类型的信息.
# psrinfo -v
虚拟处理器 0 在下列时间的状态:06/10/2009 19:05:25
自 06/10/2009 18:38:26 开始已在运行.
i386 处理器以 1800 MHz 运行,
有 i387 compatible 浮点数处理器
在基于x86 的系统中,使用isalist 命令可以显示虚拟处理器类型.
# isalist
pentium_pro mmx pentium_pro pentium mmx pentium i486 i386 i86
2.使用show-post-results和banner命令
可在PROM的OK提示符下用banner或show-post-results(这个命令和shell下的prtdiag命令的输出类似,可看CPU内存等信息),每一个SPARC 系统都有一个可编程只读存储器( PROM) 芯片, 里面存储了一个称为monitor 的程序.monitor 程序在内核可用之前控制系统的操作.当你打开了一个系统,monitor 程序运行一个快速的自检测过程来检查诸如系统中的硬件,以及内存等情况.如果monitor 没有发现错误, 系统就开始了自动引导过程.常常用命令show-post-results在当前的屏幕上观看POST的输出报告.
应用实例:
◆使用banner 命令显示系统的PROM 修订号
ok banner
Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz), No Keyboard
OpenBoot 3.15, 128 MB memory installed, Serial #number.
Ethernet address number, Host ID: number.
然后系统将显示硬件配置信息,包括PROM的修订号.
3.使用prtdiag 命令输出你的机器当前硬件配置和工作状态
prtdiag 命令有两个参数,最常使用的是prtdiag -v
prtdiag –l 表示使用日志模式一旦系统出现错误会把日志信息记录到syslog文件中.
图 -1 是一个prtdiag -v 输出你的机器当前硬件配置和工作状态的典型图例.
4.cpustat命令使用CPU 性能计数器监视系统或进程的性能
cpustat命令格式: cpustat [-c 事件] [-p 周期] [-nstD] [间隔 [计数]]
主要参数:
-c 事件 指定要监视的处理器事件
-n 不显示标题
-p 周期 在事件列表中周期性进行的循环
-s 仅运行系统事件的用户 soaker 线程
-t 包括 tsc 寄存器
-D 启用调试模式
-h 打印扩展的用法信息
5.使用mpstat
笔者经常使用的一个命令是 mpstat 命令,该命令属于 bos.acct 文件集.用于显示分区系统上所有逻辑 CUP 的总体性能值.运行 mpstat 命令时数据将以用户指定的时间为间隔显示.
◆运行
我喜欢使用 mpstat 命令,它会采用非常清晰的格式报告所收集的分区上的每个逻辑 CPU 的信息.通过使用 -s 选项,甚至还能够看到同步多线程(Simultaneous MultiThreading,SMT)线程使用率.mpstat 命令的缺点在于需要编写脚本和其他工具来处理数据格式和图形输出.实际上,您需要编写自己的 shell 脚本.尽管大部分管理员喜欢使用脚本,但他们却不愿意做重复工作.
影响性能的另一个因素是系统负载——很明显,这里的系统是指一个运行许多进程和存在始终大于1.0负载的系统,不能依赖该系统在需要的时候提供足够的性能.你可以使用mpstat命令来分析一些系统参数,包括经过大量常规间隔之后的系统负载.许多管理员使用mpsta命令进行多次尝试并且当预期会出现蜂值负载时(例如早上九点)针对当天特定时间计算平均系统负载.这样做可以大大帮助CPU 的容量计划,以便支持扩展操作.幸运的是,SPARC和X86处理器硬件体系结构现在都支持大量的CPU,因此其按比例增加以适合需求不会太难.
处理器是solaris所管理的最重要的资源之一,本文笔者从系统负载了对中央处理器的性能监控方法,下面笔者会系统介绍对I/O 系统的监控方法.