Linux/Unix + OS Capability Analysis tools nmon / GC Analysers / Heap Analyzer
nmon analyser v34a.xls
nmon analyser v33f.excl.xls
nmon analyser v33g.xls
http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser
Description | Link |
---|---|
Download nmon Analyser V3.3 | version 3.3.f (200KB Zip file, 10 Jan 2011) |
Download nmon Analyser V3.2 | (163KB Zip file, 20 Feb 2008) |
Online Forum for questions and FAQ | take the Performance Tools link |
Find nmon for AIX and Linux at | |
nmon Analyser Article at developerWorks | |
Find nmon Consolidator at |
nmonanalyser |
nmon下载地址:
http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmon nmon分析工具下载地址: http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmonanalyser1. Nmon
A IBM tool used to collect tons of system information on AIX/Linux. Download Nmon tool from: Introduction: 2. GC Analysers IBM GA Download GA from: Introduction: 3. IBM Heap Analyzer Heap analysis tool for IBM JVM Download HA tool from: Introduction:
AIX and UNIX 系统管理员系列文章
http://www.ibm.com/developerworks/cn/aix/lp/optimizationnew.html?S_TACT=105AGX52&S_CMP=content
系统管理员系列文章 |
<!-- PAGE_HEAD_END--><!-- CONTENT_BEGIN--><!-- LEFT_GUTTER--> <!-- CENTER_COLUMN_BEGIN--> <!-- RIGHT_GUTTER-->
<!-- TABS BEGIN -->
|
linux nmon的使用
nmon类似AIX的topas工具,可以很好的评估当前系统性能状态。下载地址为 http://www.ibm.com/developerworks/wikis/display/WikiPtype/nmon 下载下来解压缩即可。 [root@dbsvr ora10g]# mv nmon_x86_64_rhel4 nmon [root@dbsvr ora10g]# ln -s /home/ora10g/nmon /usr/bin/nmon 这样在客户端输入nmon即可
在LINUX,AIX等上,监视性能的一个很好的工具,是nmon,nmon是IBM搞的,
后来开源出来了,可以在http://nmon.sourceforge.net/pmwiki.php?n=Site.Download 上下载之。 下载RED HAT的版本后,如下做: 1)chmod 777 nmon_x86_redhat 2)之后就运行了 ./nmon_x86_redhat 3)显示界面后,按小写字母就可以看到相关的结果了 运行后要分析了, ./nmon_x86_redhat -fT -s 10 -c 120 -f是输出文件,-T输出最耗费资源的线程, -s为收集时间的间隔 -c 收集次数,上面的例子是执行20分钟,每10秒监控一次 4)执行后,产生的文件放到WINDOW下,下载IBM的这个nmonanalyser , http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser 5) 打开这个EXCEL,把宏设置为低,则可以读入待分析的文件了。 要注意的是,在XP中,要如下修改,才能正常打开nmonanalyser,否则出 Scripting.FileSystemObject 一、注册组件 运行cmd命令 启用FSO,命令 RegSvr32 %windir%\SYSTEM32\scrrun.dll 二、注册表中添加权限 在 开始-运行中敲入regedit,然后找到HKEY_CLASSES_ROOT\Scripting.FileSystemObject 右击权限,加入everyone,internet来宾帐号(IUSR...)用户确定! 三、scrrun.dll 组件添加权限 在系统目录找到scrrun.dll,winxp的路径为:C:\WINDOWS\SYSTEM32\scrrun.dll 在文件上面点右键,属性-》安全,添加everyone,internet来宾帐号(IUSR...)用户的读取权限。 如果C盘不是NTFS格式,则此处可跳过,如果没有“安全”选项卡,则可以在资源管理器的工具-》文件夹选项-》查看-》使用简单文件共享(推荐),把勾选取掉即可。 四、重启IIS 命令:iisreset
新到IBM DS8800高端阵列之性能测试 / FIO - Flexible IO Tester
http://storage.chinabyte.com/302/12461802.shtml
http://www.bluestop.org/fio/
http://www.bluestop.org/fio/releases/fio-2.0.10-x64.zip
http://dl.iteye.com/topics/download/31fca868-49ef-331b-9894-b5bba290cf7d
C:\Users\Administrator\Desktop\fio-2.0.10-x64\fio-2.0.10-x64>fio.exe
No jobs(s) defined fio-2.0.10 fio.exe [options] [job options] <job file(s)> --debug=options Enable debug logging. May be one/more of: process,file,io,mem,blktrace,verify,random,parse, diskutil,job,mutex,profile,time,net --output Write output to file --runtime Runtime in seconds --latency-log Generate per-job latency logs --bandwidth-log Generate per-job bandwidth logs --minimal Minimal (terse) output --output-format=x Output format (terse,json,normal) --terse-version=x Set terse version output format to 'x' --version Print version info and exit --help Print this page --cmdhelp=cmd Print command help, "all" for all of them --enghelp=engine Print ioengine help, or list available ioengines --enghelp=engine,cmd Print help for an ioengine cmd --showcmd Turn a job file into command line options --eta=when When ETA estimate should be printed May be "always", "never" or "auto" --readonly Turn on safety read-only checks, preventing writes --section=name Only run specified section in job file --alloc-size=kb Set smalloc pool to this size in kb (def 1024) --warnings-fatal Fio parser warnings are fatal --max-jobs=nr Maximum number of threads/processes to support --server=args Start a backend fio server --daemonize=pidfile Background fio server, write pid to file --client=hostname Talk to remote backend fio server at hostname Fio was written by Jens Axboe <jens.axboe@oracle.com> Jens Axboe <jaxboe@fusionio.com>
某客户新到一台DS8800,暂时还没有应用要上线,所以临时拿来做了一番测试。
测试目的: 测试在常见的使用场景中DS8800的性能,以便为未来的生产环境选择一个性能较高的 配置。
DS8800配置: 4-way p6+ dual controller,128G data cache,80块900G 10K disks,2块8口8Gbps host connection adapter。
测试机: P780 lpar,8C/32G,2块4Gbps HBA,AIX 6100-07-04,SDDPCM 2.6.3.2,每个存储盘4条链路。
测试软件: fio 2.0.9,参数如下
———————————-
[global]
bs=8k
rw=randread
ioengine=sync
runtime=300
direct=1
iodepth=1
group_reporting
ramp_time=6
[test]
filename=/dev/rhdisk2
size=360G
numjobs=20
————————————
DS8800的 默认iodepth为20,fio使用iodepth=1参数;使用sync ioengine;每次测试运行6分钟;对裸盘或者裸逻辑卷(LVM STRIPE)测试。
分别测试了顺序读写和不同io大小的随机读写(读/写/读写4:1),每个测试跑3遍,然后取平均值。测试过程中,磁盘压力都是满的,CPU大量IOWAIT。
测试了使用不同 (只 支持RAID6/RAID5/RAID10)配置,来自单个RANK的磁盘、4个来自单RANK的磁盘做LVM STRIPE(16K条带化)后的逻辑卷、来自4个RANK组成的EXTPOOL做rotateexts划分的磁盘,4k~256k不同block size,这几种情形分别组合的场景下的读写性能。各组合场景如下图表所示(图右边blocksize没有列完整,4k~256k):
DS8800配置上,用了4个ArraySite建RAID6 Array,4个 ArraySite 建RAID5 Array ,2个 ArraySite 建RAID10 Array,根据测试需要分别建ExtPool,4条4Gbps Host Connection。
测试结果做成图表如下:
根据图表,有一些“显而易见”的结论 :
1、根据顺序访问的性能图,DS8800的顺序读最大IOPS约为83000,顺序写最大IOPS约为65000,平均延迟不到1ms,应该是写存储cache的值。
Single-RANK和多个Single-RANK+LVM STRIPE这两种情形下的顺序读写IOPS、延迟非常接近;但是多RANK POOL STRIPE的情形下,顺序读和写的IOPS却只有另两种情形的一半,同时平均延迟也降到一半,为什么呢?
不同RAID配置下的顺序读写IOPS和延迟几乎没有差别。
2、 根据随机读的性能图 ,随机读的最大IOPS不到7000,平均延迟最大不到13ms。
Single-RANK和多个Single-RANK+LVM STRIPE这两种情形下的各种block size的IOPS表现比较相似,在16K block size下,随机读最大IOPS都达到5000以上;但是多RANK POOL STRIPE的情形下,大部分block size下的随机读IOPS下降到另两种情形的一半以下,IOPS最高的是RAID6配置下的64K block size的情形,不到2800,仅为相同block size下最高值的53%,同时平均延迟也较低,为什么?
RAID6与RAID5配置下的随机读IOPS差别很小;但是RAID6比RAID5的平均延迟低,最大的相差一倍;RAID10配置下的随机 读IOPS最好,特别是LVM STRIPE或POOL STRIPE的情形下,最大的提高了一倍,16K block size下提高了30%多;同时RAID10配置下的各情形的平均延迟是最低的。
3、根据随机写的性能图,随机写的最大IOPS不到4700,平均延迟最大达到了28ms。
Single-RANK下的随机写IOPS最差,不到另两种情形下的一半,甚至在三分之一以下;多RANK POOL STRIPE配置和多个Single-RANK+LVM STRIPE下的IOPS相差较小,但是在RAID5配置下前者要比后者高20%~30%。
RAID10配置下的IOPS最高,RAID5次之,RAID6最低;RAID10下的平均延迟最低,另两种RAID配置下都有部分block size下的平均延迟过高;其中RAID6和RAID5配置下,Single-RANK下的4k、8k、16k block size下和多个Single-RANK+LVM STRIPE下的32k、64k block size下的平均延迟,均超过了13ms(一般OLTP应用要求最大延迟在20ms以下)。
———————————————-
汇总如下图(3最差)
高端存储全用RAID10我个人觉得是完全值得的。RAID10在各种情形下性能完胜,就是多费点磁盘。除了SDD,现在 盘 和SAS盘都已经是白菜价了吧。不止是性能,相比常用的RAID5,磁盘数据重建时间降低,允许同时损坏的磁盘增加(当然,不能一个镜像对的2块盘同时 坏…)。现在单盘容量不断提高,测试DS8800存储用的就是较大的900G 10K RPM磁盘,坏盘被热备盘替换时数据重建时间只会越来越长,万一在这期间又出现坏盘,将可能会威胁到数据安全。RAID5的数据重建时间更长,所以在单盘 容量较大时,RAID6是很有必要的,虽然这么做损失一部分随机写性能(在本测试中,只有在Mutil-RANK Pool Stripe配置中RAID6比RAID5损失约30%的随机写性能,另2种存储配置下几乎无损失)。
Mutil-RANK Pool Stripe 或许对于大多数的应用场景是最简单的较高性能配置,优势在于随机写,IOPS最高,延迟最低,但是其随机读IOPS却比另2种存储配置低至一半左右;相比 较而言,Multiple Single-RANK & LVM Stripe配置中的随机写IOPS与前者相当,随机读IOPS好很多(虽然其随机读的延迟稍高,但是仍属可接受范围以内)。
所以,在本测试结果的讨论范围内,在随机写要求较高的场景,比如 redolog,同时使用RAID10和Mutil-RANK Pool Stripe配置;而随机读要求较高的场景,比较oracle data file,使用Multiple Single-RANK & LVM Stripe配置。
PS:Multiple Single-RANK & LVM Stripe配置的系统管理工作量会稍大一些。
end