金融其它小型机

IBM小型机十日谈之第二日

2.1CPU特性---------CPU是计算机的核心2.1.1 32/64问题查看CPU型号,可以得到硬件32/64位信息#lsattr -E1 proc0检查程序32/64位#dump -ov filename | grep bit#bootinfo -y#bootinfo -K注意:关于AIX4.3或者5.1以上版本都可以提供对64位程序运行支持,但有如下要求:1、安装bos....显示全部
2.1CPU特性---------CPU是计算机的核心
2.1.1 32/64问题
查看CPU型号,可以得到硬件32/64位信息
#lsattr -E1 proc0
检查程序32/64位
#dump -ov filename | grep bit
#bootinfo -y
#bootinfo -K
注意:关于AIX4.3或者5.1以上版本都可以提供对64位程序运行支持,但有如下要求:
1、安装bos.64bit(通过#lslpp  -l bos.64bit检查)
2、需要64位硬件,参考支持64位的CPU型号
3、开启内核64位支持 #genkex | grep syscalls64
   在AIX5.1以后版本中,从64位内核转换为32位内核:
   #ln -sf /usr/lib/boot/unix_64 /unix
   #ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix
   #lslv -m hd5 注意:如果hd5有镜像,则要在每个镜像磁盘上都进行bosboot操作
   #bosboot -ad /dev/ipldevice 或bosboot -ad /dev/hdisk0,以及另一个镜像盘
   #shutdown -Fr
   #ln -sf /usr/lib/boot/unix_up /unix   注:多CPU的机器使用unix_up
   #ln -sf /usr/lib/boot/unix_up /usr/lib/boot/unix
   #lslv -m hd5 注意:如果hd5有镜像,则要在每个镜像磁盘上都进行bosboot操作
   #bosboot -ad /dev/ipldevice 或bosboot -ad /dev/hdisk0,以及另一个镜像盘
   #shutdown -Fr
2.1.2查看CPU类型和主频
查看关于CPU情况的信息 #uname -M
如果安装了bos.pmapi perfagent.tools,这个程序集可以使用:
#which_fileset pmcycles
$pmcycles    ---->查看CPU主频
在5.1以上版本直接使用 #prtconf
另外一个免费的程序查看CPU类型就是lsc,可以去一下站点下载
ftp://ftp.software.ibm.com/aix/t ... perf53/perf53.tar.Z
2.1.3HMT,SMT,HT技术
SMT并发多线程 HMT硬件多线程 HT并发多线程
SMT可通过操作系统开关控制使用或者关闭
#smtctl  -?
#smtctl -m -off -w -now    ------>关闭SMT
#smtctl                    ------>查看SMT状态
#lsdev -Cc processor       ------>查看物理CPU状态
#bindprocessor -q          ------>查看可用的逻辑CPU
#lsattr -E1 proc0          ------>查看CPU参数状态
#star -P ALL 1 2           ------>SMT关闭或者开启状态
2.2进程、线程
2.2.1控制命令
#/usr/samples/kernel/schedtune   ------->控制CPU线程调度参数
-t                               ------->修改时间片大小
-r -d                            ------->配合使用修改线程优先级衰减控制
-D                                     ->将所有的schedtune参数都恢复为默认值
#vmo       #schedo         #vmstat 1 5  
#bindprocessor -q                      ->查看可用的CPU
#bindprocessor 13039 3                 ->将进程13039绑定到第3号CPU
#bindprocessor -u 13039                ->解除绑定
#nice -5 vmstat 10 3
#nice --5 vmstat 10 3
#renice -5 7569
2.2.2查看系统进程情况
#ps -ef   #ps -aux      #ps -lu guest    #ps -kef
2.2.3zombie(僵尸进程)
#ps as
2.2.4进程定时执行控制
cron守护进程可以用来定时启动进程,该进程的控制文件是crontab文件,存放于/var/spool/cron目录中,
以用户名为文件名,AIX支持AT&T风格crontab文件,每条包含下列格式:
mm hh dd mm ww command
#crontab -e    编辑自己的crontab
2.3SMP和群集
2.3.1SMP对称多处理器
MP技术使用多个CPU能够协同工作,并行处理,每个CPU在执行队列中选取一个线程执行,MP依据资源共享
方式,有多种类型:松耦合的多处理技术,紧耦合的多处理技术,对称多处理技术
2.3.2Cluster群集技术
提高系统的性能有多种方式,首先是提高单一CPU的性能,然后通过SMP,之后是NUMA,再之后是(软件)
群集,除了负载分担,群集的另一个作用是提高系统的冗余度,实现更高的可用性。
2.4DUMP和DUMP分析
2.4.1DUMP概念
IBM的服务器为了增强故障分析能力,增加了对设备故障当前环境保存的功能,就是保存一份设备故障时
的内存、CPU寄存器、IO等设备的数据和状态信息。
2.4.2估计DUMP大小
#smit dump_estimate    #sysdumpdev -e
查看DUMP空间是否足够
#mklv -y dumplv -t sysdump rootvg 15     ---->在rootvg上创建15个pp大小的DUMP设备dumplv
#sysdumpdev -s /dev/dumplv -P            ---->设置主DUMP设备为/dev/dumplv
使用第二个DUMP设备
#mklv -y hd7 -t sysdump rootvg 15
#sysdumpdev -s /dev/hd7 -P
总是允许DUMP开关
#sysdumpdev -KP
允许DUMP压缩存放
#sysdumpdev -CP
2.4.3系统DUMP码分析
简单DUMP分析--------
显示最近一次DUMP状态:
#sysdumpdev -L
解压缩DUMP数据:
#cd /var/adm/ras
#uncompress vmcore.0.Z
启动内核debug程序
#kdb /var/adm/ras/vmcore.0(在同一台机器上分析DUMP)
#kdb -m dump_file -u /usr/lib/boot/unix(在不同机器上分析DUMP)
(0)>stat                       ----->显示DUMP当时系统状态
(0) >t -mk                     ----->堆栈跟踪命令
(0)>cpu                        ----->显示可切换的CPU信息
(0)>cpu 1
   (1)>status                  ----->显示正执行的进程
   (1)>th*
   (1)>p*
   (1)>p * -s ACTIVE
   (1)>f                       ----->显示堆栈跟踪
(0)>q                          ----->退出
2.4.4CORE DUMP
CORE DUMP 只是某个程序故障,相对比较简单,可以直接使用dbx等底层代码调试工具进行分析。

IBM小型机十日谈之第二日

2.5性能优化的概念
性能优化是一个技术含量非常高的话题,对于初次接触AIX的朋友,还难以掌握此技术,但我们可以先了解一下如何发现性能问题,以及性能问题的产生原因。发现性能问题需要对系统了如指掌,最重要的一个概念是拿数据而不是拿感觉说话。复杂系统的性能优化需要经过如下步骤:
1-简要查看系统,确定性能优化方向,制定数据收集方案;
2-通过数据收集全部端到端数据及尽可能多的中间数据。由于很多数据收集过程会对原有系统造成干扰,因此中间数据的收集可能会根据系统优化的进程逐步深入;
3-分析数据,判断瓶颈点,收集重点数据;
4-根据数据资料制订优化方案和实施步骤及回退方案;
5-实施优化方案,注意比较实施前后性能数据差异;
6-反复实施从的过程,直到系统实现满意的性能指标或者已经无法再提高。
对于简单的系统,就没有必要以这么刻板地顺序执行以上步骤了,此时工具、经验是最重要的优化手段。常用的工具包括AIX操作系统提供的:vmstat,iostat,lvmstat,topas.
通常优化的顺序是先看是否繁忙,再看内存,然后是磁盘和网络(I/O).
优化的方法如下:
1-检查是否有故障 不要急于去进行优化,特别是系统性能忽然下降,大部分原因都是由于系统故障,将故障解决掉,性能问题也随之解决了。
比较常见的有磁盘组中出现坏盘,某颗CPU故障被系统自动关闭等。
2-打开限制
这是最容易实现的优化方式,不过除非是没有经过很好地设计和实施的系统,这种好事情很难碰到。最常见的限制在/etc/security/limits文件对于打开文件数、程序使用堆栈段等限制,可以简单地改为-1变成无限(如果是系统进程,需要重新启动才生效)。
3-降低使用需求
遇到性能问题的最简单解决办法是别这么“疯狂”地用系统!为什么要同时处理这么多的数据?能不能把时间分散开?只要系统使用量降下来,性能自然好。有很多应用程序在编写的时候风格不好,不注意对资源释放,或者有大量的死循环,这一类程序会很快消耗掉系统的资源,如果我们并不是非常迫切地要求计算结果,可以适当限制这些程序对的占用,这样可以释放出一些计算资源用于处理其他的事务。这种情况在一台计算机同时运行多种业务的时候比较常见,例如数据库既有(在线交易,需要及时响应),又有(数据挖掘,报表、统计,需要大量计算)两种应用同时工作。此时就需要按照优先级,例如限制报表统计时间,将其调度到夜晚执行。如果是(在线数据分析),业务要求即时计算,可以考虑通过限制并行操作数量、设定优先级别、预先计算等方式规避瞬间业务高峰
4-平衡,分散需求
小型机的性能指标都是按照最佳负载平衡的情况下测算的,如果你发现系统没有达到理论值,并且相差很远,那么下面要做的优化工作就是能够尽量平衡系统对资源的使用,充分发挥设备的处理能力。马车的速度不是由跑得最快的马决定的,而是由最慢的马决定的。
5-转移需求
当仍然无法达到要求的时候,先要看看系统是否还有继续优化的余地,优化是为了挖掘系统的剩余能力,并不能提高系统的设计最大能力,但在另一种情况下,可能需要与平衡策略相悖,反其道而行之,不是让系统使用更为平衡,而是让系统更加极端化,这通常是在应用程序本身就不是均衡使用系统资源(通常应用程序都是如此)的时候采用的办法。例如,如果有大量磁盘可以用剩余的内存设置虚拟磁盘替代物理磁盘,将需求转化为内存需求。
2.6  Simulation,Virtualization,虚拟化技术、分区
2.6.1虚拟化的第一个关键词:资源共享和隔离
从不同的隔离(共享)程度可以分为:
1- 共享基础设施。很多大型设备都是采用这种方式,其中代表系统是传统的电信程控交换机,任何一路电路板故障,只会影响单一线路,而系统中其他设备不会受到影响。这些设备之间共享统一供电系统(通常是双路冗余的供电系统),被装配在同一个物理盒子(机柜)中,除非部件造成火灾,否则可以保证绝对安全,但同时这种共享方式也仅仅实现了分享电源资源,也不能很自由地调整其他系统配置。很少有提供虚拟化功能的大型的计算机设备只共享基础设施,不过从可靠性和安全性角度考虑,这种虚拟化功能似乎又是必需的,这种方式实现了所谓的物理隔离。
2-共享通信系统。例如通过网络互联的一组服务器设备,但是提供这种虚拟化功能的设备在外观上并不是一组服务器,而是一台服务器,另外不仅仅共享真正的网络,还会共享其他一切总线,或者专用的通信总线。通过这种共享方式,可以静态或者动态地调整、内存、配置,其缺点是调整只能按照预先设计好的物理分配方式内进行。大部分的高端服务器都可以实现此类虚拟化。
3-共享操作系统。例如同一个操作系统内执行的一组程序,程序分为内核级和用户级两个层次,内核级为管理程序,进行调度分配;用户级程序并不知道自己在一台真正的物理机器中执行还是在某个虚拟机中执行。
2.6.2虚拟化的第二个关键词:分配方式和颗粒度
分配方式从静态分配到动态分配,从固定配置模式到可以自由使用非常细微的颗粒度(小于进行分配。根据切分方式可以分为按照预定的处理板进行切分(每块板上有固定数量的、内存和槽位,一个处理板是最小分配单元),每个分区可以包含一个或者多个处理理板;按照内核槽位切分,最小分配单位为一个一个槽位;按照<时间片切分,采用类似的方式共享(虚拟控制卡)。由于卡的处理速度越来越快,而服务器很多时候却处于闲置状态,为提高利用率考虑,自然想到了动态内存分配,甚至让多个系统共享几颗物理或者一块卡的高速带宽当然,物理设备越来越高的可靠性、操作系统对多路径数据访问提供自动的负载均衡和冗余,也为共享提供了可能。硬件分区技术以物理板为基础,
技术都是这种类型;软分区(或软件分区,其实这种软件并非操作系统软件,而是一种类似操作系统的软件,例如则更为灵活,能够以任意的粒度、动态调整资源;另外一种分区技术是,逻辑分区,它以硬件分区为基础,但并不受硬件板卡所限,能够以最小资源单位进行分配,还有一种分区技术叫做微分区,它通过在硬件层的微码进行控制,能够以的粒度进行切分,以的粒度动态调整资源,并且通过专用的控制电路和系统)进行分区间通信,将某个分区的物理设备映射成为自己的一个虚拟设备使用。
2.6.3虚拟化的第三个关键词:上下层之间的相关性
顶层的虚拟化技术(不是更高级的技术,而是在应用层完成虚拟化功能)采用代码仿真的方式执行虚拟系统,类似虚拟机就是仿真出一种虚拟的计算机系统,执行代码,最终目标是无论底层是什么硬件设备或者操作系统,都能同样执行程序,得到同样的结果。如果两种不能执行相同的二进制代码,则只能采用这种方式实现虚拟。
下一层采用仿真,并部分解码执行(或仿真)代码,由于可以比虚拟执行,拥有更高的执行效率,而通过部分解码又能仿真完全不同的因此成为经常被业界采用的虚拟化技术,特别是进行设计、单板机开发时,通常采用此技术。
再一层利用CPU的代码优先级特性,用不同的保护级别运行。
最下层的技术不进行任何仿真、虚拟,仅仅用软件监视程序执行时占据的系统资源,通过对系统资源进行限制和调整,达到控制程序的目的。
它试图在多台同系列的物理服务器之间进行服务调配,实现负载调整。由于物理服务器的资源没有办法动态跨物理设备调配,所以只好调整其上运行的程序,让程序在新的平台运行,以实现某个业务占有更大的物理资源或者被调整到一个较小的服务器。收起
参与6

查看其它 5 个回答jazzlan的回答

jazzlanjazzlan专业技术支持人员西安联合信息
了解了,多谢楼主!
IT分销/经销 · 2010-11-02
浏览1171

回答者

jazzlan
专业技术支持人员西安联合信息

jazzlan 最近回答过的问题

回答状态

  • 发布时间:2010-11-02
  • 关注会员:0 人
  • 回答浏览:1171
  • X社区推广