network 发表于 2010-2-18 16:45:54

AIX 6.1、Solaris 10 和 HP-UX 与 System p


AIX 6.1、Solaris 10 和 HP-UX 与 System p比较三种主要的商业 UNIX 操作系统http://www.ibm.com/i/c.gifhttp://www.ibm.com/developerworks/i/dw.gif

http://www.ibm.com/i/c.gif
http://www.ibm.com/i/c.gif
文档选项


http://www.ibm.com/i/c.gifhttp://www.ibm.com/i/v14/icons/printer.gif
打印本页
http://www.ibm.com/i/c.gifhttp://www.ibm.com/i/v14/icons/em.gif
将此页作为电子邮件发送
http://www.ibm.com/i/c.gifhttp://www.ibm.com/i/v14/icons/fw_bold.gif
英文原文




级别: 中级
Ken Milberg, 作家/网站专家, Future Tech

2009 年 7 月 09 日近几年,HP、Sun 和 IBM® 都发布了他们的商业 UNIX® 操作系统的新版本。本文对比这些版本中的一些创新。讨论执行某些任务的方法的差异,比如连网和性能调优。另外,讨论这三种操作系统在虚拟化方面的差异。
http://www.ibm.com/i/c.gif
您可以访问“AIX 6 资源中心”了解更多和 AIX 6 相关的资源: [*]AIX 6 资源中心



首先讨论这三种主要商业 UNIX 操作系统的最新版本中的新特性和创新。
HP-UX 创新
HP-UX 是 HP 提供的 UNIX 操作系统,最新版本是 11iV3。HP-UX 基于 System V,在 HP9000 RISC 服务器和 HP Integrity Itanium 系统上运行。它与 Solaris 相似,可以在 SPARC RISC 体系结构和 x86 机器上运行。AIX 只能在 POWER® 体系结构上运行;但是,由于 UNIX 是高端操作系统,所以 AIX 和 POWER 体系结构的紧密集成是有积极意义的。
HP-UX 11Iv3 支持最多 128 个处理器核、2TB 内存、2TB 的文件系统、16TB 的文件系统大小和 1 亿 ZB 的存储。最近的创新和改进包括:[*]通过动态节能功能,减少了 10% 的能源使用量[*]通过根据位置优化资源分布,把应用程序性能最多提高 20%[*]通过 tune-N-Tools 调优改进对性能敏感的工作负载
大约一年前,HP 提供了几套操作系统环境,这为客户提供了新的选择。它们包括数据中心、高可用性环境、虚拟服务器和基本环境。 [*]提高了虚拟 I/O 的速度,在使用 HP Integrity 虚拟机器时这可以提高带宽并提高 CPU 效率 60%。这个改进通过 gatekeeper 功能帮助优先处理重要的数据流。[*]Online JFS 通过 VxFS 实现一种编制文件索引的新方法,并改进了目录的性能。[*]HP Logical Volume Manager 改进:[*]支持在线磁盘替换[*]动态线支持[*]支持多路径 I/O[*]性能改进[*]提高了逻辑卷的最大大小: 2 - 16TB[*]通过 Dynamic nPartitions 改进了虚拟化。这允许把基于单元的 HP Integrity 和 HP9000 服务器配置成大小不同的分区,可以根据应用程序工作负载调整大小,在调整过程中应用程序仍然是可用的。[*]连网改进:[*]通过避免不必要的 TCP 通信,提高移动客户机的吞吐量。[*]改进 TCP 堆栈,提高性能。[*]改变了可调优的 tcphasize。这现在是自动调优的;系统可以在引导时确定最优值。
LVM 中的改进确实不错,但是 AIX 已经实现了这些改进中的大部分。

http://www.ibm.com/i/v14/rules/blue_rule.gif
http://www.ibm.com/i/c.gif

http://www.ibm.com/i/c.gif

http://www.ibm.com/i/v14/icons/u_bold.gif
回页首




Solaris 创新
Solaris 10 最初是于 2005 年发布的。Solaris 的最新版本是 10 10/08。这个版本中的改进包括:[*]支持从 ZFS 引导并使用 ZFS 作为根文件系统。还对 Solaris ZFS 做了许多其他改进,包括:能够回滚文件集而不需要卸载,改进了 ZFS 发送命令,支持 ZFS 配额和保留(只适用于文件系统数据),zpool 历史等命令行改进,允许通过升级命令用新的文件系统改进升级现有的文件系统,允许非根用户执行细粒度的 ZFS 管理任务。[*]在从一个系统转移到另一个系统时,允许 Solaris 容器自动地更新它的环境。[*]LDOM 支持,可以动态地重新配置磁盘和网络 I/O。[*]在 x86 系统上支持最多 256 个处理器 —— 原来是 64 个。[*]对 Solaris 区的改进,包括:允许在 Shared IP Zones 中设置默认路由器,允许 ZFS 上的区路径。[*]安全改进,包括:通过 Solaris Management Console 改进了数据隔离,改进了加密算法。[*]连网改进:提供 SIP 全程通信流度量和日志记录,提供新的通信协议解析器实用程序。
对 ZFS 的这些改进非常重要。当 ZFS 最初出现时,它看起来令人难以置信,但它的根本问题是特性功能很不够。增加了新功能之后,ZFS 在许多方面能够与 AIX 的 JFS2 和 HP 的 VxFs 匹敌了。

http://www.ibm.com/i/v14/rules/blue_rule.gif
http://www.ibm.com/i/c.gif

http://www.ibm.com/i/c.gif

http://www.ibm.com/i/v14/icons/u_bold.gif
回页首




AIX 创新
AIX 6.1 最初是在大约两年前发布的,现在有两个版本:标准版(只包含基本 AIX)和企业版(包含工作负载分区管理程序和几个 Tivoli® 产品)。在这个方面,它与 HP 相似,HP 也有多个版本。最近的改进包括:[*]工作负载分区:WPAR 是与 Solaris 容器相似的操作系统虚拟化特性,它允许在一个 AIX 6.1 实例中创建多个 AIX 6.1 环境。只需几秒即可创建应用程序 WPAR,它可以在全局实例中运行,这样就可以快速测试新应用程序。[*]动态应用迁移:这允许分区从一个系统转移到另一个系统,而不需要重新启动应用程序,也不会中断最终用户对系统的访问。除了支持计划内停机之外,这个特性还有助于管理工作负载,允许在非高峰时间段把服务器从系统中转移出去,从而节省能源和成本,提高效率。[*]支持并发 AIX 内核更新:不需要重新引导系统,系统更新即可生效。[*]支持存储键:可以减少与 AIX 内核中的内存覆盖相关的许多停机。[*]支持动态跟踪:可以简化系统或应用程序代码的调试。[*]改进了功能性恢复例程:可以从通常会导致系统崩溃的错误中恢复。[*]改进了 AIX 6.1 的默认调优参数,可以实现更好的性能。[*]提供新的名称解析器缓存守护进程,可以更高效地处理主机名解析请求。[*]改进了 NFS version 4 的 NIM 支持。[*]改进了可管理性特性,比如 IBM Systems Director Console for AIX。
最近的安全改进包括:[*]基于角色的访问控制 (RBAC),允许管理员把管理责任委托给非根用户,从而提高安全性和可管理性。[*]Trusted AIX 让 AIX 6.1 能够满足法律和行业标准对私密性的大多数需求。[*]Encrypted Filesystems 能够加密文件系统中的数据,为 JFS 提供更强的安全性。[*]对 AIX 安全专家的改进包括支持在 LDAP 中存储安全模板。[*]Secure-by-Default 安装只启用最少量的服务和包,从而在安装时保持比较高的安全水平。[*]支持长密码。
在所有平台上都支持这些 AIX 6.1 创新,但是以下创新只在 POWER 6™ 体系结构上得到支持:应用程序存储键、内核存储键、自动调整的页面大小、固件辅助转储和硬件十进制浮点。大多数 IBM POWER 管理员很喜欢 AIX 6.1,已经开始把它投入生产环境了。下面讨论 AIX 6.1 的哪些特性让它如此受欢迎,并与 Solaris 和 HP-UX 的最新版本做比较。
首先是工作负载分区和动态应用迁移。Solaris 有区和容器,它们在某些方面与工作负载分区相似,但是没有实现 WPAR 的某些功能。可以在不停止分区运行的情况下把工作负载分区上的工作负载从一个系统转移到另一个系统,其他 UNIX 版本都无法这样做。这为什么很重要?因为这可以在计划内停机期间保持系统正常运行,从而提高可用性。系统管理员甚至操作员(通过 WPAR 管理员)可以把这些虚拟操作系统分区转移到其他系统,而不需要停机。这还有助于实现绿色计算,在非高峰时间段操作员可以把分区从利用率不高的机器转移到其他机器,然后关闭空闲的机器。这个特性可以帮助公司节省大量成本,同时对环境有好处。在这里讨论的所有创新中,AIX WPAR 和动态应用程序可移动性显然是最重要的。

http://www.ibm.com/i/v14/rules/blue_rule.gif
http://www.ibm.com/i/c.gif

http://www.ibm.com/i/c.gif

http://www.ibm.com/i/v14/icons/u_bold.gif
回页首




虚拟化功能
现在,我们比较一下这三种操作系统提供的虚拟化功能。
HP-UX[*]nPartitions:这些是硬分区,在某些方面与 SUN DSD 相似。与 SUN DSD 不同的是,它可以在其他分区在线的情况下为一个分区提供服务。它们还支持多个操作系统,比如 HP-UX、VMS、Linux® 和 Windows®,但是这只适用于 Itanium 处理器,不适用于 PA-RISC。与 Solaris 相似,它们只能用于高端系统,而且不支持在不重新引导的情况下转移资源。[*]vPars:这些是单独的操作系统实例,它们可以驻留在 nPartition 或物理机器中。它们允许根据需求的变化在分区之间动态地转移 CPU 和 RAM 资源。一定要注意,不能在分区之间共享或转移存储资源。[*]Integrity Virtual Machines:它们允许在一个分区上有多个单独的访客(guest)实例,访客实例是完全隔离的环境。它们允许分区有自己的操作系统拷贝。在 HP 或 Sun 提供的所有虚拟化特性中,这个特性最接近 IBM 的 PowerVM™。它的粒度实际上比 PowerVM 提供的粒度更细,可以把机器划分成 1/20 的微分区。主要缺点是可伸缩性不太好,只支持最多 4 个 CPU 和 64GB 内存。其他限制包括在系统运行时不能转移存储适配器,也不能让进程只使用单一分区。[*]Resource Partitions:这相当于 Solaris 容器和 AIX WPAR。
在这三家硬件厂商中,只有 IBM 具有单一的整合的技术和愿景。另外两家采用多种战略,即使是最有经验的系统用户,往往也会被搞糊涂。IBM 只提供 PowerVM。与 HP 和 Sun 提供的任何特性相比,它的可伸缩性更好、更新颖,可以转移正在运行的分区。IBM 有 40 年的虚拟化经验(包括大型机),这确保 PowerVM 具有很好的稳定性。最后,它的特性和功能能够扩展到整个 POWER 产品系列。这是 HP 和 Sun 的严重缺点,HP 和 Sun 的产品只适用于低端机型、高端机型和/或特定的体系结构。
Solaris
Sun 采用多种方法在 Solaris 上实现虚拟化:[*]容器或区:这个特性允许在一个 Solaris 内核实例中运行多个虚拟操作系统。这是操作系统虚拟化的一种形式,与 AIX 6.1 的 WPAR 相似。[*]xVM 服务器:这个在 2008 年 2 月引入的创新是一个基于 Xen 和系统管理程序的解决方案,可以在 x86 机器上的 Solaris 中运行。在 Sparc 上,它仍然基于逻辑域。[*]逻辑域 (LDOM):这允许同时运行多个操作系统。实际上,它有许多问题,包括可伸缩性差、微分区功能有限制而且不支持在系统之间进行动态分配。另外,它只能在低端 SPARC 服务器上运行。[*]硬件分区 (DSD):这在某些方面与 IBM 的逻辑分区(不属于 PowerVM)相似。硬件分区不具备真正的虚拟化功能,因为不能在分区之间共享资源。
AIX
PowerVM 的虚拟化基于 IBM 的虚拟化系统管理程序战略。它包括以下特性:[*]微分区:这个特性允许把一个 POWER CPU 划分为最多 10 个逻辑分区,每个分区使用一个 CPU 的 1/10。通过使用不封顶分区 (uncapped partition),它还允许系统的计算能力超过已经分配给分区的标称计算能力。[*]共享处理器池:这个特性允许虚拟分区连接到共享池,可以随着需求的增长获取更多资源。在需求低时,分区把资源返回给共享处理器池。[*]虚拟 I/O 服务器。这定义一种特殊的分区,允许以 Shared Ethernet 和 Virtual SCSI 的形式共享 I/O。[*]动态应用迁移。这个创新允许把正在运行的分区从一台机器转移到另一台机器。这让系统能够在计划内停机期间正常运行,从而提高系统的可用性。这个特性只能在 POWER 6 上使用。[*]共享专用计算能力。这个特性让分区可以把专用的处理器提供给共享处理器池。

http://www.ibm.com/i/v14/rules/blue_rule.gif
http://www.ibm.com/i/c.gif

http://www.ibm.com/i/c.gif

http://www.ibm.com/i/v14/icons/u_bold.gif
回页首




连网
本节比较 HP-UX、Solaris 和 AIX 上的连网配置并在这三种系统上配置默认路由器。
HP-UX
在安装之后第一次引导 HP-UX 系统时,运行 /sbin/set_parms 程序。以后还可以通过 set_parms initial 命令运行它。这个程序用来配置系统主机名、IP 地址和其他网络参数。我们来运行它:# set_parms initial(清单 1)。
清单 1. 运行 set_parms 程序

_______________________________________________________________________________                     Welcome to HP-UX!Before using your system, you will need to answer a few questions.The first question is whether you plan to use this system on a network.Answer "yes" if you have connected the system to a network and are readyto link with a network.Answer "no" if you:   * Plan to set up this system as a standalone (no networking).   * Want to use the system now as a standalone and connect to a       network later._______________________________________________________________________________Are you ready to link this system to a network?Press for yes or for no, then press Do you wish to use DHCP to obtain networking information?Press for yes or for no, then press


然后,还要输入 IP 地址并添加其他网络参数。
我们来配置一个以太网卡。在安装 LAN 卡之后,运行 ioscan(见清单 2)。
清单 2. 运行 ioscan

# ioscan -fnC lanClass   IH/W PathDriver S/W State   H/W Type   Description===================================================================lan       00/0/1/0   iether   CLAIMED   INTERFACE    HPPCI/PCI-X 1000Base-T#


现在看看 IP 地址,这使用 netstat 配置(见清单 3)。
清单 3. 使用 netstat 配置 IP 地址

# netstat -inName      MtuNetwork         Address         Ipkts      Ierrs Opkts      Oerrs Colllan0      1500 15.170.178.0    15.170.178.24   32657      0   24500      0   0lo0      32808 127.0.0.0       127.0.0.1       131689   0   131689       0   0


然后,我们就可以清楚地看到 lan0 与 15.170.178.2 相关联(见清单 4)。
清单 4. 检查 lan0 关联

# ifconfig lan0lan0: flags=1843<UP,BROADCAST,RUNNING,MULTICAST,CKO>      inet 15.170.178.24 netmask ffffff80 broadcast 15.170.178.127


接下来,要配置默认路由器。首先需要修改这个文件:/etc/rc.config.d/netconf。这个 netconf 文件存储配置值(见清单 5)。
清单 5. 检查 netconf 文件中的配置值

# more /etc/rc.config.d/netconf# netconf:configuration values for core networking subsystems## @(#) netconf $Date: 2007/10/05 20:09:28 $Revision: r11.31/1 PATCH_11.31 (PHNE_36281)## HOSTNAME:         Name of your system for uname -S and hostname## OPERATING_SYSTEM:   Name of operating system returned by uname -s#                     ---- DO NOT CHANGE THIS VALUE ----## LOOPBACK_ADDRESS:   Loopback address#                     ---- DO NOT CHANGE THIS VALUE ----#HOSTNAME="vital24.testdrive.hp.com"OPERATING_SYSTEM=HP-UXLOOPBACK_ADDRESS=127.0.0.1DEFAULT_INTERFACE_MODULES=""INTERFACE_NAME=lan0IP_ADDRESS=15.170.178.24DHCP_ENABLE=1SUBNET_MASK=255.255.255.128ROUTE_MASK=0.0.0.0ROUTE_GATEWAY=15.170.178.126BROADCAST_ADDRESS=""ROUTE_COUNT=1ROUTE_DESTINATION=default


然后,使用 route 命令添加新的路由:# route add default 15.170.178.126 1。
为了启用新的路由,需要启动服务并启用路由(见清单 6)。
清单 6. 启动服务并启用路由

/sbin/init.d inetd start/sbin/init.d net start


现在检查 SAM,它与 IBM 的 SMIT 相似。尽管它不如 SMIT 那么强大,但是 HP 至少提供了基于文本的菜单系统。
清单 7. HP 的 SAM

# sam                   HP-UX System Management Homepage (Text User Interface)                                        SMH--------------------------------------------------------------------------------- a - Auditing and Security c - Auditing and Security Attributes Configuration(new) d - Peripheral Devices e - ResourceManagement f - Disks and File Systems g - Display k - Kernel Configuration l - Printers and Plotters(new) m - Event Monitoring Service n - Networking and Communications p - Printers and Plotters s - Software Management u - Accounts for Users and Groups


接下来,导航到 Networking and Communications >Network Interfaces Configuration>Network Interface Cards。下面是输出(见清单 8)。
清单 8. 网络接口卡的输出

InterfaceSubsystemHardware   InterfaceInterface    IPv4 Address   IPv6 AddressName                  Path       State      Type----------------------------------------------------------------------------------------lan0       iether   0/0/1/0    up         1000Base-T   15.170.178.24Not Configured


在 HP-UX 上配置连网的方法相当明了,但是有时候有点儿麻烦。
Solaris
在 Solaris 上,需要使用文本文件配置连网;没有与 SAM 或 SMIT 相似的界面。首先在 /etc/nodename 中检查机器的主机名(见清单 9)。
清单 9. 检查机器的主机名

# more /etc/nodenameezqspc03z1


还应该使用 ifconfig 收集信息(见清单 10)。
清单 10. 使用 ifconfig 收集信息

# ifconfig -alo0:9: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL>   mtu 8232 index 1      inet 127.0.0.1 netmask ff000000bge0:9: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>   mtu 1500 index 2      inet 10.24.116.121 netmask ffffff00 broadcast 10.24.116.255


使用 plumb 参数启用卡。
例如,用 # ifconfig bge0 plumb 启用 bge0。
用 # ifconfig bge0 up 启动接口。
要想让修改持久有效,需要编辑以下文件:[*]/etc/hosts[*]/etchostname/bge0(针对 bge0 接口)[*]/etc/netmasks[*]/etc/defaultrouter
现在修改默认路由。在 Solaris 中修改默认路由需要执行以下步骤:[*]首先需要编辑 /etc/defaultrouter 文件。[*]删除默认路由器的 IP 地址:# route delete theipadress。[*]分配新的地址:# route add default newipadress。
尽管我有时候喜欢编辑文本文件,但是大多数管理员更喜欢通过菜单驱动的系统配置连网,这样更灵活、更方便。另外,在使用 Solaris 时,需要探测接口 —— 其他 UNIX 操作系统不需要这么做。IBM 和 HP 都有系统管理菜单系统,但是 IBM 的 SMIT 更强大。
AIX
在 AIX 上,在配置连网时通常使用 SMIT。列出以太网适配器的方法如下:# smit devices >communication >Ethernet adapter>adapter>list all Ethernet adapters(见清单 11)。
清单 11. 列出以太网适配器

                              COMMAND STATUSCommand: OK            stdout: yes         stderr: noBefore command completion, additional instructions may appear below.ent0 AvailableVirtual I/O Ethernet Adapter (l-lan)ent1 AvailableVirtual I/O Ethernet Adapter (l-lan)F1=Help             F2=Refresh          F3=Cancel         F6=CommandF8=Image            F9=Shell            F10=Exit            /=Findn=Find Next


要想进行修改,需要找到 Change/Show characteristics of an Ethernet adapter(见清单 12)。
清单 12. Change/Show characteristics of an Ethernet adapter

            Change / Show Characteristics of an Ethernet AdapterType or select values in entry fields.Press Enter AFTER making all desired changes.                                                   Ethernet Adapter                                    ent0Description                                       Virtual I/O Ethernet >Status                                              AvailableLocationEnable ALTERNATE ETHERNET address                   no                     +ALTERNATE ETHERNET address                               +Minimum Tiny Buffers                                                  +#Maximum Tiny Buffers                                                 +#Minimum Small Buffers                                                 +#Maximum Small Buffers                                                +#Maximum Medium Buffers                                              +#Maximum Medium Buffers                                              +#Minimum Large Buffers                                                +#


在 AIX 上,也可以使用 ifconfig。但是,用 ifconfig 所做的修改并不保存在 Object Data Manager (ODM) 中,在重新引导时会丢失。因此,ifconfig 不是首选方法;在 AIX 上处理网络时应该坚持使用 SMIT。
要想在 AIX 上添加默认路由,只需访问 SMIT>TCP/IP Minimum Configuration&Startup 并单击您的接口,就会出现清单 13 所示的屏幕。
清单 13. 在 AIX 上添加默认路由

                        Minimum Configuration & StartupTo Delete existing configuration data, please use Further Configuration menusType or select values in entry fields.Press Enter AFTER making all desired changes.                                                   * HOSTNAME                                           * Internet ADDRESS (dotted decimal)                  Network MASK (dotted decimal)                      * Network INTERFACE                                 en0NAMESERVER         Internet ADDRESS (dotted decimal)                  DOMAIN Name                               Default Gateway       Address (dotted decimal or symbolic name)          Cost                                                                #       Do Active Dead Gateway Detection?            no                     +F1=Help             F2=Refresh          F3=Cancel         F4=ListF5=Reset            F6=Command          F7=Edit             F8=Image


然后,修改默认网关并按回车键两次(见清单 14)。
清单 14. 修改默认网关

                                 COMMAND STATUSCommand: OK            stdout: yes         stderr: noBefore command completion, additional instructions may appear belowen0lpar21ml162f_pubinet0 changeden0 changedinet0 changed


AIX 提供的连网配置方法非常简单。

http://www.ibm.com/i/v14/rules/blue_rule.gif
http://www.ibm.com/i/c.gif

http://www.ibm.com/i/c.gif

http://www.ibm.com/i/v14/icons/u_bold.gif
回页首




性能调优
本节对比 HP-UX、Solaris 和 AIX 上的系统调优方法。
HP-UX
要记住,HP-UX 在 Itanium 和 PA-RISC 上运行。因此,与运行在 PA-RISC 上编译的程序相比,Integrity 服务器在运行针对 Itanium 编译的程序时性能更好。它可以以模拟(emulation)模式运行,但是运行速度没那么快。HP-UX 11.31 具有每线程锁,因此 HP-UX 的最新版本的性能显著提高了 —— 与 11iV2 相比,最多能够提高 30%。在磁盘 I/O 方面,建议使用块大小为 8 kb 的 VxFS。还可以通过 HP Online JFS 获得更好的性能。
在 SAM 中查看要调整的 kctune 和 kcweb 参数。
下面是 kctune 的参数列表(见清单 15)。
清单 15. kctune 的参数列表

# kctuneTunable                           ValueExpressionChangesNSTREVENT                            50DefaultNSTRPUSH                           16DefaultNSTRSCHED                           0DefaultSTRCTLSZ                           1024DefaultSTRMSGSZ                              0Defaultacctresume                            4Defaultacctsuspend                           2Defaultaio_iosize_max                        0Default   Immedaio_listio_max                      256Default   Immedaio_max_ops                        2048Default   Immedaio_monitor_run_sec                  30Default   Immedaio_physmem_pct                      10Default   Immedaio_prio_delta_max                   20Default   Immedaio_proc_max                        0Default   Immedaio_proc_thread_pct                  70Default   Immedaio_proc_threads                   1024Default   Immedaio_req_per_thread                  1Default   Immedallocate_fs_swapmap                   0Defaultalwaysdump                            0Default   Immedaudit_memory_usage                  5Default   Immedaudit_track_paths                     0Default   Autobase_pagesize                         4Defaultcopy_on_write                         1Default   Immedcore_addshmem_read                  0Default   Immedcore_addshmem_write                   0Default   Immedcreate_fastlinks                      0Defaultdefault_disk_ir                     0Defaultdiskaudit_flush_interval            5Default   Immeddlpi_max_ub_promisc                   1Default   Immeddma32_pool_size               41943044194304dmp_rootdev_is_vol                  0Defaultdmp_swapdev_is_vol                  0Defaultdnlc_hash_locks                     512Defaultdontdump                              0Default   Immeddst                                 1Defaultdump_compress_on                      1Default   Immeddump_concurrent_on                  1Default   Immedexecutable_stack                      0Default   Immedexpanded_node_host_names            0Default   Immedfcache_fb_policy                      0Default   Immedfcache_seqlimit_file                100Default   Immedfcache_seqlimit_system            100Default   Immedfcd_disable_mgmt_lun                  0Default   Immedfclp_ifc_disable_mgmt_lun             0Default   Immedfilecache_max                1018863616Default   Autofilecache_min               101883904Default   Autofr_statemax                      800000Defaultfr_tcpidletimeout               86400Defaultfs_async                              0Defaultfs_symlinks                        20Default   Immedftable_hash_locks                  64Defaultgvid_no_claim_dev                     0Defaulthires_timeout_enable                  0Default   Immedhp_hfs_mtra_enabled                   1Defaultintr_strobe_ics_pct                  80Default   Immedio_ports_hash_locks                  64Defaultipf_icmp6_passthru                  0Defaultipl_buffer_sz                      8192Defaultipl_logall                            0Defaultipl_suppress                        1Defaultipmi_watchdog_action                  0Default   Immedksi_alloc_max                     33600Default   Immedksi_send_max                         32Defaultlcpu_attr                           0Default   Automax_acct_file_size            2560000Default   Immedmax_async_ports                  4096Default   Immedmax_mem_window                        0Default   Immedmax_thread_proc                  11001100      Immedmaxdsiz                      1073741824Default   Immedmaxdsiz_64bit                4294967296Default   Immedmaxfiles                           2048Defaultmaxfiles_lim                     4096Default   Immedmaxrsessiz                      8388608Defaultmaxrsessiz_64bit                8388608Defaultmaxssiz                         8388608Default   Immedmaxssiz_64bit               268435456Default   Immedmaxtsiz                     100663296Default   Immedmaxtsiz_64bit                1073741824Default   Immedmaxuprc                           256Default   Immedmca_recovery_on                     0Default   Automsgmbs                              8Default   Immedmsgmnb                            16384Default   Immedmsgmni                              512Default   Immedmsgtql                           1024Default   Immedncdnode                           150Defaultnclist                           8292Defaultncsize                           8976Defaultnflocks                            4096Default   Autonfs2_max_threads                      8Default   Immednfs2_nra                              4Default   Immednfs3_bsize                        32768Default   Immednfs3_do_readdirplus                   1Default   Immednfs3_jukebox_delay               1000Default   Immednfs3_max_threads                      8Default   Immednfs3_max_transfer_size          1048576Default   Immednfs3_max_transfer_size_cots   1048576Default   Immednfs3_nra                              4Default   Immednfs4_bsize                        32768Default   Immednfs4_max_threads                      8Default   Immednfs4_max_transfer_size          1048576Default   Immednfs4_max_transfer_size_cots   1048576Default   Immednfs4_nra                              4Default   Immednfs_portmon                           0Default   Immedngroups_max                        20Default   Immedninode                           8192Defaultnkthread                           8416Default   Immednproc                              4200Default   Immednpty                                 60Defaultnstrpty                              60Defaultnstrtel                              60Defaultnswapdev                           32Defaultnswapfs                              32Defaultnuma_policy                           0Default   Immedpa_maxssiz_32bit               83648512Defaultpa_maxssiz_64bit            536870912Defaultpagezero_daemon_enabled               1Default   Immedpatch_active_text                     1Default   Immedpci_eh_enable                         1Defaultpci_error_tolerance_time         1440Default   Immedprocess_id_max                  30000Default   Autoprocess_id_min                        0Default   Autopwr_idle_ctl                        0Default   Autoremote_nfs_swap                     0Defaultrng_bitvals                  9876543210Defaultrng_sleeptime                         2Defaultrtsched_numpri                     32Defaultsched_thread_affinity               6Default   Immedscroll_lines                        100Defaultsecure_sid_scripts                  1Default   Immedsemaem                            16384Defaultsemmni                           2048Defaultsemmns                           4096Defaultsemmnu                              256Defaultsemmsl                           2048Default   Immedsemume                              100Defaultsemvmx                            32767Defaultshmmax                     1073741824Default   Immedshmmni                              400Default   Immedshmseg                              300Default   Immedstreampipes                           0Defaultswchunk                            2048Defaultsysv_hash_locks                     128Defaulttcphashsz                           0Defaulttimeslice                            10Defaulttimezone                            420Defaultuname_eoverflow                     1Default   Immedvnode_cd_hash_locks               128Defaultvnode_hash_locks                  128Defaultvol_checkpt_default               10240Defaultvol_dcm_replay_size            262144Defaultvol_default_iodelay                  50Defaultvol_fmr_logsz                         4Defaultvol_max_bchain                     32Defaultvol_max_nconfigs                     20Defaultvol_max_nlogs                        20Defaultvol_max_nmpool_sz               4194304Default   Immedvol_max_prm_dgs                  1024Defaultvol_max_rdback_sz               4194304Default   Immedvol_max_vol                     8388608Defaultvol_max_wrspool_sz            4194304Default   Immedvol_maxio                           256Defaultvol_maxioctl                      32768Defaultvol_maxkiocount                  2048Defaultvol_maxparallelio                   256Defaultvol_maxspecialio                  256Defaultvol_maxstablebufsize                256Defaultvol_min_lowmem_sz                532480Default   Immedvol_mvr_maxround                  256Defaultvol_nm_hb_timeout                  10Defaultvol_rootdev_is_vol                  0Defaultvol_rvio_maxpool_sz             4194304Default   Immedvol_subdisk_num                  4096Defaultvol_swapdev_is_vol                  0Defaultvol_vvr_transport                     1Defaultvol_vvr_use_nat                     0Defaultvolcvm_cluster_size                  16Defaultvolcvm_smartsync                      1Defaultvoldrl_max_drtregs               2048Defaultvoldrl_min_regionsz               512Defaultvoliomem_chunk_size               65536Defaultvoliomem_maxpool_sz             4194304Defaultvoliot_errbuf_dflt                16384Defaultvoliot_iobuf_default               8192Defaultvoliot_iobuf_limit               131072Defaultvoliot_iobuf_max                  65536Defaultvoliot_max_open                      32Defaultvolpagemod_max_memsz               6144Default   Immedvolraid_rsrtransmax                   1Defaultvps_ceiling                        16Default   Immedvps_chatr_ceiling               1048576Default   Immedvps_pagesize                         16Default   Immedvx_maxlink                        32767Defaultvx_ninode                           0Default   Immedvxfs_bc_bufhwm                        0Default   Immedvxfs_ifree_timelag                  0Default   Immedvxtask_max_monitors                  32Default


可以看到有两种内核参数。一种立即生效 (immed),另一种在重新引导时生效 (Default)。
可以使用 kctune 命令查看一个参数。只需输入清单 16 这样的 kctune 命令。
清单 16. 使用 kctune

# kctune vx_ninodeTunable    ValueExpressionChangesvx_ninode      0Default   Immed#


我喜欢使用 -B 选项,这会在做修改时备份原来的值。我们来修改一个参数(见清单 17)。
清单 17. 使用 -B 选项

# kctune -B vps_ceiling=32       * The automatic 'backup' configuration has been updated.       * Future operations will update the backup without prompting.       * The requested changes have been applied to the currently         running configuration.Tunable                ValueExpressionChangesvps_ceiling(before)   16Default   Immed             (now)      3232


现在看看 SAM。在清单 18 所示的内核配置部分中,可以看到内核可调项。
清单 18. 内核配置部分

SMH->Kernel Configuration---------------------------------------------------------------------------------    t - Tunables                        View or modify kernel tunables    m - Modules                         View or modify kernel modules and drivers    a - Alarms                        View or modify alarms for kernel tunables    l - Log Viewer                      View the changes made to kernel tunables                                       or modules    u - Usage                           View usage of kernel tunables    c - Manage Configuration            View theoptions available to manage                                       configurations    b - Restore Previous Boot Values    Restores Previous Boot Values for Tunables                                       And Modules                            SMH->Kernel Configuration->Usage                                  Usage Monitoring is On--------------------------------------------------------------------------Tunable                  Current Usage             Current Setting==========================================================================filecache_max            76054528                  1018863616maxdsiz                  11403264                  1073741824maxdsiz_64bit            42663936                  4294967296maxfiles_lim               38                        4096maxssiz                  786432                  8388608maxssiz_64bit            98304                     268435456maxtsiz                  35823616                  100663296maxtsiz_64bit            1409024                   1073741824maxuprc                  3                         256max_thread_proc            21                        1100msgmni                     2                         512msgtql                     0                         1024nflocks                  27                        4096ninode                     727                     8192nkthread                   330                     8416nproc                      151                     4200npty                     0                         60nstrpty                  1                         60nstrtel                  0                         60nswapdev                   1                         32nswapfs                  0                         32semmni                     28                        2048semmns                     146                     4096shmmax                     17868904                  1073741824shmmni                     7                         400shmseg                     3                         300


除了菜单驱动的系统 SAM 之外,HP-UX 还允许通过命令行执行调优任务。总的来说,我喜欢 HP-UX 使用的性能调优方法,但是我认为 kctune 中的东西太多了。AIX 是按领域组织调优参数的。
Solaris
与 HP-UX 和 AIX 不同,在 Solaris 上要使用文本文件完成大多数工作。主要文件是 /etc/system。在转移到新版本时,建议先使用一个空文件,只添加第三方应用程序需要的可调项。对 /etc/system 所做的所有修改在重新引导后生效。
我们在 /etc/system 中做一个修改:set nfs:nfs_nra=4。
这个修改为使用 NFS version 2 软件挂载的文件系统设置预读取块的数量。Solaris 10 中的一个重要变化是,许多 Solaris 内核参数现在已经被资源控制取代。修改资源控制的命令是 prctl 命令。例如,现在通过资源控制处理所有共享内存和信号量。这意味着不再需要在 /etc/system 中设置与共享内存和信号量(即 sem)相关的任何条目。以 Oracle 调优为例。在以前的版本中,在 /etc/system 中配置 SHMMAX,然后重新引导。现在使用 prctl。这一变化的优点是修改可以立即生效,不需要重新引导。缺点是在重新引导时信息会丢失,所以需要在用户配置文件中输入信息。把 max-shm-memory 的值改为 6 GB 的命令是:# prctl -n project.max-shm-memory -v 6gb -r -i project user.root。
其他调优方法包括:[*]使用 kmdb,内核调试器[*]使用 mdb,模块化调试器[*]使用 ndd 配置 TCP/IP 参数[*]使用 /etc/default 调整 NCA 参数[*]使用 prtctl 修改资源控制
通过 ndd 进行调优的示例如下:# ndd -get /dev/tcp tcp_time_wait_interval。
怎么调整 NFS 呢?这些参数也在 /etc/system 中,包括 nfs_cots_timeo、nfs_allow_preepoch_time 和 nfs4_pathconf_disable_cache。
我知道一些管理员喜欢编辑文本文件,但是一般来说,大多数管理员更喜欢 HP 或 IBM 提供的简便的调优系统。尽管 prtctl 在某些方面有帮助,但是也会带来混乱,因为在一些方面要使用 prtctl,对于其他方面仍然使用 /etc/system。
AIX
在 AIX 上,有几个调优命令,分别用于 I/O(对于网络和磁盘使用不同的实用程序)、内存和 CPU 的调优:ioo、no、vmo 或 schedo。使用 nfso 调整 nfs 子系统。AIX 6.1 还有一些性能改进。比较重要的改进包括默认参数更符合日常工作的情况,并且加入受限制的可调参数,这有助于防止管理员把东西弄乱。最近的改进包括:[*]改进了以下领域的默认可调项:vmo、ioo、aio、no、nfso 和 schedo。[*]在文件系统方面,修改了 Enhanced Journaling File System,允许挂载 JFS2 f/s 而不启用日志记录。这确实可以提高性能,但是我建议不要使用它,因为这会导致可用性问题。[*]I/O pacing 可以限制针对一个文件的未完成 I/O 请求数量,这可以有效地防止磁盘 I/O 密集型进程。AIX 6.1 在默认情况下启用 I/O pacing。在 AIX 5.3 中,需要显式地启用这个特性。[*]AIO 是一个 AIX 软件子系统,它允许进程发出 I/O 请求而不必等待 I/O 完成。在 AIX 6.1 中,在默认情况下装载 AIO 子系统,但是不启动。当应用程序发出 AIO I/O 请求时,会自动地启动它。另外,原来用来配置 AIO 服务器的 aioo 命令已经取消了。[*]引入了一个新的网络缓存守护进程,它可以提高使用 DNS 解析名称时的性能。使用 AIX 的 System Resource Controller (SRC) 启动它,使用 netcdctrol 实用程序进行管理。
我们来做一些修改。
下面的命令把页面设置为 16777216 字节的大页面,这在 Oracle 环境中尤其有用:# vmo -r -o lgpg_size=16777216 lgpg_regions=256。
我们来看看虚拟内存。AIX 虚拟内存管理器控制机器上的所有内存,而不只是虚拟内存。在 UNIX 系统上,减少分页数量总是很重要的。如何让 AIX 虚拟内存管理器减少分页数量呢?进程在处理计算信息时使用计算内存,它们是临时的内存段。它们没有持久的磁盘存储位置。另一方面,文件内存使用持久存储,而不是内存段。您可能更希望将文件内存页存储到磁盘,而不是计算内存。可以使用虚拟内存设置中的几个参数实现这个目的。我们需要调整 minperm、maxperm 和 maxclient。为了避免 AIX 对工作存储进行分页并利用数据库缓存,需要把 maxperm 设置为比较高的值(大于 90)并确保 lru_file_repage=0。这个参数表示是否应该考虑 VMM re-page 计数和它应该使用什么类型的内存。默认设置是 1,需要把它改为 0。这要使用 vmo 命令来完成。把这个参数设置为 0,就是告诉 VMM 希望它只置换文件页面,而不置换计算页面。在 AIX 6.1 中,minperm、maxperm 和 maxclient 已经设置为适当的值。在 AIX 5.3 中,需要执行清单 19 所示的命令。
清单 19. 在 AIX 5.3 中设置 minperm、maxperm 和 maxclient 值

# vmo -p -o minperm%=3# vmo -p -o maxperm%=97# vmo -p -o maxclient%=97


IBM 在性能调优方面占据优势,到目前为止它的性能调优方法是最直观的。在向自调优系统发展方面,HP-UX 在近几年进步很大,但是还不够。Solaris 通过 prtctl 引入了一些积极的改进,但是要配置的东西还是太多。对于 AIX,就简单多了。用 vmo 调整内存,用 ioo 调整磁盘/IO,用 schedo 调整 CPU,用 no 调整网络,用 nfso 调整 nfs。没法再简单了!另外,AIX 6.1 中对调优参数的改进进一步扩大了 AIX 的优势。

http://www.ibm.com/i/v14/rules/blue_rule.gif
http://www.ibm.com/i/c.gif

http://www.ibm.com/i/c.gif

http://www.ibm.com/i/v14/icons/u_bold.gif
回页首




结束语
本文比较了 AIX 6.1、HP-UX (11Iv3) 和 Solaris (10/08) 的最新版本中的创新和特性/功能改进。还讨论了执行某些任务的命令和方法的差异,比如配置连网和性能调优。此外,还总结了这三种 UNIX 系统的虚拟化特性及其基本差异。您自己决定最喜欢哪一种,但是根据我的比较,AIX 在所有方面都很出色。HP-UX 与 AIX 最为相似,而 Solaris 主要通过文本文件方式进行系统管理。


参考资料 学习
[*]AIX 6 工作负载分区和动态应用程序迁移:这份白皮书介绍 WPAR 概念,提供实际的使用信息,讲解正确地设置动态应用程序可移动性功能的步骤。[*]developerWorks AIX 6 资源中心:你可以从这里找到更多和 AIX 6 相关的资源。[*]AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。[*]AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。[*]AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。[*]阅读 IBM 白皮书 Improving Database Performance with AIX concurrent I/O。[*]了解 IBM System p and AIX InfoCenter 提供的 AIX memory affinity support。[*]Redbook Database Performance Tuning on AIX 帮助系统设计师、系统管理员和数据库管理员设计、规划、实现、维护、监视和调整 AIX 上的关系数据库管理系统,实现最佳性能。[*]developerWorks 技术活动和网络广播:随时关注 developerWorks 技术活动和网络广播。[*]Podcasts:收听 Podcast 并了解 IBM 技术专家的最新想法。
讨论
[*]参与 AIX 和 UNIX 论坛:[*]AIX 论坛[*]针对开发人员的 AIX 论坛[*]AIX Networking[*]Cluster Systems Management[*]IBM Support Assistant 论坛[*]性能工具论坛[*]虚拟化论坛[*]更多 AIX 和 UNIX 论坛



关于作者
http://www.ibm.com/i/c.gif

http://www.ibm.com/i/c.gif
Ken Milberg 是 PMP,同时也是 techtarget.com 的撰稿人/站点专家,他还为 searchopensource.com 提供 Linux 技术信息和支持。Ken 是 IBM Systems Magazine,Open Edition 的撰稿人和技术编辑。Ken 拥有 University of Maryland University College 的计算机与信息科学学士学位和技术管理科学硕士学位。他是 Long Island POWER-AIX 用户组的创始人和负责人。这些年以来,他在各种规模的企业工作过,并且担任过各种职位,包括 CIO 和高级 AIX 工程师。他现在在 Future Tech 工作,这是一家总部设在长岛的 IBM 业务合作伙伴。Ken 不仅是已通过 PMI 认证的项目管理专业人员(PMP),还是通过 IBM 认证的高级技术专家(CATE,IBM System p5 2006)。

页: [1]
查看完整版本: AIX 6.1、Solaris 10 和 HP-UX 与 System p