优化 AIX 61 的性能.docx
《优化 AIX 61 的性能.docx》由会员分享,可在线阅读,更多相关《优化 AIX 61 的性能.docx(15页珍藏版)》请在冰豆网上搜索。
![优化 AIX 61 的性能.docx](https://file1.bdocx.com/fileroot1/2023-1/10/9e61b92c-505f-405a-80bb-f0ffecd11a1b/9e61b92c-505f-405a-80bb-f0ffecd11a1b1.gif)
优化AIX61的性能
优化AIX6.1的性能
当您刚刚认为自己掌握了有关AIX®Version5.3性能优化方面的内容时,很快就发布了AIX6.1,这无疑又给您出了一道难题。
在本文中,将介绍关于AIX6.1中CPU、虚拟内存和I/O(磁盘和网络)等方面的性能监视和优化的最新更改。
实际上,其中的许多更改并没有对内核进行多少创新,而是更关注于一些辅助的内容,比如对缺省参数进行改进,以便更精确地反映实际的数据处理。
还有一些其他的增强,包括唯一的可调参数的文档说明、受限制的可调参数,以及对某些子系统所做的各种其他改进。
您将了解更多有关性能优化方法的信息,而这些内容是任何优化策略所必需的部分。
引言
AIX®6.1提供了许多重要的创新和改进,具体包括下面的内容:
虚拟化——诸如工作负载分区(WPAR)和动态应用程序迁移(LiveApplicationMobility)等特性
安全性——诸如加密文件系统和受信任的AIX,以及基于角色的访问控制(RBAC)等特性
可用性——诸如AIX并发更新和动态跟踪等特性
可管理性——诸如新的SystemsDirectorConsoleforAIX和工作负载分区管理器等特性
它还支持POWER6的性能创新,如高级同步多线程(SMT)、共享的专用处理器和可变的页面大小。
需要充分地理解哪些创新和增强来源于POWER6、AIX6.1,或者来源于它们的组合。
例如,纯粹从操作系统的角度来看,AIX改进了以前缺省的一些可调参数,具体包括:
vmo
ioo
aio
no
nfso
schedo
尽管在AIX6.1中的确存在一些性能增强,比如在I/O处理速率和AIX的AIO服务器实现方面所做的改进,但是并没有很大的变化。
事实上,与从AIX5.3升级到AIX6.1相比,从AIX5.1升级到AIX5.2以及从5.2升级到5.3(包括新的监视工具、优化工具、更改了虚拟内存管理器(VMM)设置方式的新的可调参数,以及并发I/O的改进)所做的性能改进要更多一些。
在AIX6.1中,除了已经删除的一些命令(I.E.和aioo)之外,所有的优化命令都保持不变,并且也没有提供任何新的监视工具。
对一些实用工具所做的其他更改反映了对其他的工作负载分区创新的支持,具体包括:
curt
filemon
iostat
netpmon
pprof
procmon
proctree
svmon
topas
tprof
vmstat
工作负载分区(WPAR)允许在一个AIX映像中使用多个独立的虚拟分区。
这更多地是对逻辑分区(LPAR)的一种补充,而不是对它们的替代。
实际上,WPAR运行于LPAR之中,并且从概念上看,与Solaris的containers非常类似。
我在15分钟之内就完成了WPAR的构建;事实上,您将在WPAR中完成相关的分析工作,以便可以实际地观察经过更新的、支持WPAR的一些工具。
请注意,只有在AIX6.1中才能使用WPAR,而POWER6对于WPAR则不是必需的。
在WPAR中,某些命令的运行方式有所不同、或者根本不能运行,将在适当的时候对其中的部分命令进行介绍。
还有一些其他的AIX6.1性能改进,包括唯一的可调参数的文档说明,以及受限制的可调参数。
优化方法
这个部分将对一种优化方法进行概述,您可以使用这种方法来优化您的系统。
虽然您可以不使用这种方法,因为还存在许多其他的方法可供使用,但是您应该使用某种优化方法或者结构化的程序。
这种方法由下面五个步骤组成:
建立基准
压力测试和监视
确定瓶颈
优化瓶颈
重复(从第二个步骤开始)
让我们更深入地了解这些步骤:
建立基准——在您进行优化或者开始进行监视之前,必须建立一个基准。
这个基准是系统正常运行时的一个快照。
这个基准不仅应该捕获性能类型的统计信息,还应该记录系统的实际配置(内存总量、CPU和磁盘)。
这一点是很重要的,因为在对用户反映的性能问题进行故障诊断之前,您需要了解系统正常运行时的情形。
这样做可以帮助您将数据转化为服务水平协议(SLA),从而解决客户所面临的问题。
压力测试和监视——使用峰值工作负载,对系统进行监视和压力测试。
这时,您应该使用一些监视工具以帮助证实您的发现。
监视部分是非常关键的,因为如果没有系统运行情况(特别是在压力测试期间)的精确历史记录,您将无法有效地进行优化。
识别瓶颈——压力测试和监视系统的目的是为了确定瓶颈。
在没有正确诊断信息的情况下,您不可能提出正确的对策。
如果系统碰到了CPU限制,那么您可以运行一些附加的工具,如trace、curt、splat、tprof和ps,以便进一步确定导致瓶颈的实际进程。
优化瓶颈——在您最终确定了瓶颈之后,接着应该对其进行优化。
具体的瓶颈将决定您需要进行的优化工作,例如,CPU、虚拟内存或者I/O。
某些子系统更适合于进行主动优化,如虚拟内存和使用vmo,而要解决CPU类型的瓶颈,通常需要更有效地管理工作负载、或者为系统分配更多资源(使用动态逻辑分区(DLPAR)、无上限的分区、或者分区负载管理器)。
重复——从这个过程的第二个步骤开始,再次执行这个过程。
只有通过重复进行测试,并且以一致地方式对您的系统进行监视,才能够确定优化工作是否真正地产生了效果。
AIX6.1——内存
这个部分将介绍虚拟内存子系统中的一些更改。
多年以来,许多用户都抱怨AIX的一些缺省参数。
这些抱怨不仅反映了大多数运行AIX的用户所碰到的真实情况,例如,像Oracle这样的关键任务型数据库应用程序。
正因为这一点,系统管理员不得不更改许多子系统中的设置,特别是虚拟内存子系统(换句话说,即minperm和maxperm)。
出于对这种现实情况的考虑,IBM®听取了用户的意见,并且对这些参数进行了更改。
还应该说明的一点是,您不应该仅仅依赖于这些设置,而应该始终咨询您的独立软件供应商(ISV)以验证他们所推荐的设置是针对AIX6.1的、并进行了相应更改。
接下来,让我们来看一下表1中给出的AIX5.3和AIX6.1的vmo参数的对比。
您可以看到,现在一些参数采用的是受限制的模式。
最重要的更改是处理分页问题,即使系统拥有足够的空闲内存,数据库服务器频繁地交换出计算性页面也可能导致这个问题。
在先前关于优化的文章(请参见参考资料)中,曾建议将这些参数更改为与表格中所示内容非常接近的缺省值。
在AIX5.3优化建议专栏中说明了这些改进。
现在,以不同的方式将许多可调参数分类为受限制的参数,以便尽量阻止对某些参数进行更改。
现在只有29种vmo可调参数是可以进行更改的(不会出现严格的警告);有30种参数被认为是受限制的可调参数,对于这些参数,IBM正式声明,除非在“IBM支持专业人员”的指导下进行,否则不应该对其进行修改。
IBM之所以进行了这项更改,是希望阻止初级管理员更改某些参数,而这些参数非常关键,需要将其分类为受限制的参数。
表1.vmo参数和优化建议的列表
类型
AIX5.3
AIX5.3优化
更改建议
AIX6.1
受限制
cpu_scale_memp=8
8
8
是
data_stagger_interval=161
161
161
是
defps=1
1
force_relalias_lite=0
0
0
framesets=2
2
2
不再可用
是
htabscale=n/a
n/a
n/a
是
kernel_heap_psize=4096
4096
4096
kernel_psize=4096
4096
65536
是
large_page_heap_size=0
0
0
是
lgpg_regions=0
0
0
lgpg_size=0
0
0
low_ps_handling=1
1
0
lru_file_repage=1
1
0
0
是
lru_poll_interval=10
10
10
是
lrubucket=131072
131072
131072
是
maxclIEnt%=80
80
90
90
是
maxfree=1088
1088
1088
maxperm=598781
598781
442683
maxperm%=80
80
90
90
是
maxpin=635249
635249
423471
maxpin%=80
80
80
mbuf_heap_psize=65536
65536
64436
是
memory_affinity=1
1
1
是
memory_frames=786432
786432
524288
memplace_data=2
2
2
memplace_mapped_file=2
2
2
memplace_shm_anonymous=2
2
2
memplace_shm_named=2
2
2
memplace_stack=2
2
2
memplace_text=2
2
2
memplace_unmapped_file=2
2
2
mempools=5
5
minfree=960
960
960
minperm=149694
149694
14756
minperm%=20
20
5
3
nokilluid=0
0
0
npskill=3072
3072
3072
npsrpgmax=24576
24576
8192
是
npsrpgmin=18432
18432
6144
是
npsscrubmax=24576
24576
8192
是
npsscrubmin=18432
18432
6144
是
npswarn=12288
12288
12288
num_spec_dataseg=0
0
0
是
numpsblks=393216
393216
393216
page_steal_method=0
0
1
是
pagecoloring=n/a
n/a
pinnable_frames=675516
675516
349814
pta_balance_threshold=n/a
n/a
relalias_percentage=0
0
0
rpgclean=0
0
0
是
rpgcontrol=2
2
2
是
scrub=0
0
0
scrubclean=0
0
0
是
soft_min_lgpgs_vmpool=0
0
spec_dataseg_int=512
512
512
是
strict_maxclient=1
1
1
是
strict_maxperm=0
0
0
是
v_pinshm=0
0
0
vm_modlist_threshold=-1
-1
-1
是
vmm_fork_policy=1
1
1
是
vmm_mpsize_support=1
1
2
是
vmm_default_pspa
-1
新的vmo标志-F,提供了所有的参数,包括受限制的参数。
这里忽略了大多数内容,只提供了很少的一部分,其中包括受限制的部分(请参见清单1)。
清单1.使用带-F标志的vmo查看所有的可调值
lpar9ml162f_pub[/]>vmo-F-a
force_relalias_lite=0
vmm_default_pspa=-1
##Restrictedtunables
maxperm%=90
甚至可以更改受限制的可调参数。
当您在进行一项更改时,将会收到一个严正警告(请参见清单2)。
清单2.调整可调参数时的警告
lpar9ml162f_pub[/]>vmo-omaxperm%=99
Settingmaxperm%to99
Warning:
arestrictedtunablehasbeenmodified
当在重新启动后更改某个参数时,您将得到进一步的警示,并且将请求您确认是否希望进行这项操作。
您必须手动键入“yes”(请参见清单3)。
清单3.受限制的可调参数——回答yes以进行更改
lpar9ml162f_pub[/]>vmo-p-o maxperm%=99
Modificationtorestrictedtunablemaxperm%,confirmationrequiredyes/noyes
Settingmaxperm%to99innextbootfile
Settingmaxperm%to99
Warning:
arestrictedtunablehasbeenmodified
lpar9ml162f_pub[/]>
最重要的即时可用的性能值,包括新值:
minperm
maxperm
maxclient
strict_maxclient
这是建立在AIX5.3中首次出现的更改的基础之上的,在AIX5.3中,您不再需要关闭strict_maxclient,增大minfrree和maxfree或者减少minperm、maxperm和maxclient。
新的建议(在AIX6.1中,现在已经整合为缺省值)是,关闭重新分页比率检查lru_file_repage,这将确保不对工作存储进行分页,并且只考虑文件分页。
在AIX6.1中,VMM替换缺省值已经更改为利用高达90%的实际内存进行文件缓存,这样更有利于计算性页面,而不是文件页面。
除非活动虚拟内存的总量超过实际内存大小的97%,才会将minperm减少到3%(请参见清单4),以确保不会偷取计算性页面。
清单4.minperm减少到3%
#vmo-ominperm%=97
Valueofthetunableminperm%cannotbechangedinaWPAR
在WPAR中,有些更改将不起作用。
虽然WPAR是LPAR的子集,但它们仍然是单独的操作系统映像的一部分。
另一项重要的更改包括VMM动态可变页面大小支持(VPSS)。
页面定义为固定长度的数据块,并且保存在虚拟内存中。
在AIX6.1中(仅在POWER6处理器中),VMM现在可以根据应用程序的内存使用情况,动态地使用较大的页面大小,而这将显著地提高性能。
这个特性对于应用程序来说是完全透明的。
如果不会导致进程内存使用量的增加,那么AIX将仅使用较大的页面大小。
使用较大的页面将提高性能,因为需要进行的硬件地址转换工作将更少。
仅支持在工作存储内存中(不支持在持久的存储中)进行这项工作。
新的参数是vmm_default_pspa(它还可以与vmm_mpsize_support可调参数一同使用)。
清单5.lsattr输出说明了处理器的体系结构
lpar9ml162f_pub[/usr/samples/tcpip]>lsattr-Elproc0
Frequency 1654344000 ProcessorSpeed False
smt_enabledtrue ProcessorSMTenabledFalse
smt_threads2 ProcessorSMTthreadsFalse
state enable Processorstate False
type PowerPC_POWER5Processortype False
lpar9ml162f_pub[/usr/samples/tcpip]>
让我们查看以下VPSS可调参数的设置。
清单6.在POWER5系统中自动禁用VPSS
lpar9ml162f_pub[/usr/samples/tcpip]>vmo-a|greppspa
vmm_default_pspa=-1
AIX6.1——CPU
这个部分将着重介绍CPU子系统中的更改。
尽管schedo也可以用于优化某些内存机制,如分页负载控制,但是它主要用于CPU调度程序的优化。
在AIX6.1中,42种可调参数中只有27种是受限制的,可以对剩下的15种可调参数进行更改,并且不会出现警告。
尽管更改了一些缺省值,但没有针对AIX6.1中的CPU监视和优化进行实质性更改(请参见清单7)。
清单7.受限制的可调参数
lpar9ml162f_pub[/]>schedo -F-a
##Restrictedtunables
%usDelta=100
allowMCMmigrate=0
fast_locks=n/a
hotlocks_enable=0
idle_migration_barrier=4
krlock_confer2self=1
krlock_conferb4alloc=1
krlock_enable=1
krlock_spinb4alloc=1
krlock_spinb4confer=1024
n_idle_loop_vlopri=100
search_globalrq_mload=256
search_smtrunq_mload=256
setnewrq_sidle_mload=384
shed_primrunq_mload=64
sidle_S1runq_mload=64
sidle_S2runq_mload=134
sidle_S3runq_mload=134
sidle_S4runq_mload=4294967040
slock_spinb4confer=1024
smt_snooze_delay=0
smtrunq_load_diff=2
v_exempt_secs=2
v_min_process=2
v_repage_hi=0
v_repage_proc=4
v_sec_wait=1
lpar9ml162f_pub[/]>
AIX6.1——磁盘I/O
这个部分将概述磁盘I/O子系统中的更改。
在AIX6.1中,您可以使用ioo来控制48种可调参数,其中27种参数现在都是受限制的,可以对剩下的21种可调参数进行更改,并且不会出现警告。
最重要的更改将影响I/O处理速率和AIO动态可调参数(请参见清单8)。
清单8.受限制的ioo可调参数
#ioo -F-a
##Restrictedtunables
aio_fastpath=1
aio_fsfastpath=1
aio_kprocprio=39
aio_multitidsusp=1
aio_sample_rate=5
aio_samples_per_cycle=6
j2_maxUsableMaxTransfer=512
j2_nBufferPerPagerDevice=512
j2_nonFatalCrashesSystem=0
j2_syncModifiedMapped=1
j2_syncdLogSyncInterval=1
jfs_clread_enabled=0
jfs_use_read_lock=1
maxpgahead=8
maxrandwrt=0
memory_frames=524288
minpgahead=2
numclust=1
numfsbufs=196
pgahd_scale_thresh=0
posix_aio_fastpath=1
posix_aio_fsfastpath=1
posix_aio_kprocprio=39
posix_aio_sample_rate=5
posix_aio_samples_per_cycle=6
pv_min_pbuf=512
sync_release_ilock=0
JFS2
现在,对增强的日记记录文件系统(JFS2)进行了相应的更改,这些更改允许您在不进行日志记录的情况下挂载JFS2文件系统。
虽然这可以显著地提高性能,但我们并不建议进行这项操作。
如果您需要恢复您的数据,那么您必须使用讨厌的fsck,在日记记录文件系统出现以后,几乎已经很少使用这个工具了。
一些有用的情况可以帮助您从备份中恢复数据,并且在某些活动(您可能具有很小的窗口,并且不需要考虑可用性)期间节约时间。
iSCSI
现在可以在千兆以太网适配器上使用target软件驱动程序,这可以提高该类环境中的性能。
target驱动程序将本地磁盘或者逻辑卷导出到使用iSCSI协议连接到AIX的iSCSIinitiators方。
广泛地使用iSCSI是基于光纤存储的可行备选方法,从而使其成为一项重要的增强。
I/O处理速率
磁盘I/O处理速率是允