AIX操作系统下应用系统的维护与性能优化

简介: AIX操作系统下应用系统的维护与性能优化

应用维护是一项细致的工作,在工作中除了要求技术人员工作严谨、认真负责外,还要求技术人员必须具备在各种突发事件中较高的处理能力和工作经验。随着工商银行两大数据中心的建立,工行核心业务数据集中到数据中心,各一级分行的工作重点转移到柜面业务系统、综合前置系统和历史数据查询系统等外围系统的维护工作方面,其中AIX操作系统在工行的使用比较广泛。在应用维护方面,工行使用AIX操作系统的应用主要有:综合前置系统、跨行支付系统、客户对账系统、历史数据查询系统、国际业务结算系统5个应用系统。通过几年来的工作实践,我们积累了一些AIX操作系统环境下应用系统的维护及性能优化的经验,归纳为5个方面,供同行借鉴。

  一、AIX系统数据安全措施   在IBM小型机硬件配置期间,就应该考虑数据的安全性,系统资源的配置要满足容错处理的要求。主要应考虑以下几点:

  ①生产主机发生硬件故障后,备机可以马上自动接管应用系统;

  ②提高操作系统的硬件冗余,尽量减少单点故障对系统的影响;

  ③加强系统备份,减少系统版本升级造成的影响。

   针对以上要求,可以采取一些安全措施,主要是硬件资源的冗余备份、系统软件和应用软件的合理分布以及高可靠性集群软件的使用。我们的经验是:把AIX操作系统和HACMP(High Availability Cluster Multi-Processing)软件安装在rootvg上,因为rootvg损坏,系统将无法运行,即使通过备份磁带恢复,也会造成系统停机。因此在磁盘空间充裕的情况下,可考虑对rootvg作镜像。具体做法是将主机的两块内置硬盘做rootvg镜像,这样可提高系统的安全性,防止单块硬盘损坏对系统的影响,即使内置硬盘坏了一块,系统仍可正常运行。在建立rootvg镜像时,应尽量使用连接在不同SCSI上的硬盘,以做到负载均衡。另外,为提高系统的容错能力,可对磁盘阵列上的硬盘进行镜像配置(RAID0)或RAID5冗余配置,配置为datavg,在上面安装数据库和应用程序。为提高节点可靠性,可搭建HACMP集群环境,做到双机热备,即在2台互为备份的主机上配置HACMP参数,满足系统热备要求。在日常操作方面,要做好系统备份工作,定期对生产机做两个或两个以上的介质备份。

  1.rootvg的配置

   将hdisk0和hdisk1做成mirror,配置为rootvg。

  ①把hdisk0、hdisk1加到rootvg:smitty extentvg hdisk1、hdisk0 →rootvg。

  ②做mirror:mirrorvg -c 2 rootvg。

  ③在hdisk0、hdisk1上创建boot IMAGE:bosboot -ad hdisk0,bosboot -ad hdisk1。

  ④改变启动设备的顺序:bootlist -m normal hdisk0,hdisk1 cd0

  2.HACMP工作原理

   HACMP主要是对群集(cluster)资源的管理,根据应用复杂程度和配置的不同,其群集资源的接管时间在30秒到300秒不等,完全不需要人工干预。一个群集中的资源通常包括:应用程序、硬盘、卷组(VG)、文件系统、NFS文件系统、IP地址等。资源分属三类资源组(Resource Group):层递式(Cascading)、替换式(Rotating)、同时存取式(Concurrent)。不同类型的资源组对应不同的接管方式。一个群集中可以有几个资源组,它们可以分别是不同类型,因此,资源接管的方式可以多种多样,配置十分灵活。

   我们一般采用的是层递式方式,即热备份工作方式,其工作原理是:NodeA和NodeB都是资源组a的成员,该资源组a被设置成层递式方式,NodeA对其拥有最高优先级。因此NodeA在群集中处于active状态时,它会控制资源组a中的所有资源,此时NodeB处于闲置(idle)状态,仅当NodeA down掉时,NodeB才会接管资源组a,一旦NodeA重新加入群集,NodeB将释放资源组a?NodeA重新取得控制权。NodeB发生任何故障,不会造成任何影响。

  二、AIX系统维护经验  

  1.故障信息的收集

   收集故障信息对于判断、诊断故障原因,修复系统非常重要。我们通过检查系统错误报告?errorlog?、发给root用户的错误报告?mail?和检查hacmp.out?smit.log?boot.log等内容来判断系统是否发生故障,根据故障信息进行相应的处理。

   (1)系统故障记录

   errdemon 进程在系统启动时自动运行,记录包括硬件、软件及其他操作信息,故障记录文件为/var/adm/ras/errlog,可备份下来或拷贝到别的机器上分析,使用errpt 命令(普通用户权限也可使用)。

   #errpt |more 列出简短出错信息

   #errpt -d H 列出所有硬件出错信息

   #errpt -d S 列出所有软件出错信息

   #errpt -aj ERROR_ID 列出详细出错信息

   (2)控制面板上的LED 代码

   (3)SMS(System Management Service)故障记录

   当主控台出现键盘图标后(LED显示“E1F1时”)按1键。选择“Utilities”,选择“Error Log”,抄下8位故障代码。

   (4) Mail检查

   系统出现故障后会向root用户发mail,报告出错信息。通常系统出现故障后没有进行检查修复,系统还会定时以mail方式提醒root用户。

   (5)运行故障诊断程序

   对系统硬件进行检查和诊断,当发现有硬件故障时应立即使用diag。

   #diag

   > 选高级诊断(Advanced Diagnostic)

   > 选问题诊断(Problem Determination)或选系统检查(System Verification)

   diag运行后会给出SRN代码、故障设备名称及百分比数、地址代码等。

   (6)其他用于收集系统信息的命令

   lsdev -C 系统设备信息

   lspv 查看物理卷信息

   lsvg 查看卷组信息

   lslpp 查看文件组信息

   lsattr 查看设备参数设置

   lscfg 查看VPD(Virtual Product Data)信息

  2.系统硬件故障定位

      IBM 小型机硬件故障定位方法包括小型机机柜上的显示面板上的Checkpoints信息,Error Code和SRNs。Checkpoints检查点是系统加电CMOS初始化程序   (IPL,Initial Program Load)运行后显示在机柜的显示面板上一系列信息。

      IPL流程如下:当系统加电后,自动进入IPL流程,IPL流程包括4个步骤,

  ①Service Processor的初始化,始于系统加电,直到OK显示在机柜上的显示面板上为止。这个步骤会显示8xxx或9xxx checkpoints代码。

  ②由Service Processor引导的硬件初始化,始于按下机柜上的白色电源开关。这个步骤会显示9xxx checkpoints。“91FF”是最后的代码,标志着第3步的开始。

  ③系统固件的初始化,一个系统处理器接管控制并继续初始化系统资源,这个步骤会显示Exxx。“E105”是最后的代码,标志着第4步骤AIX启动的开始。在这个过程中还会显示各种位置码(位置码代表着系统的每一个部分)。

  ④AIX启动,当AIX开始启动时,显示面板上的代码为0xxx,同时位置码会出现在第二行。当AIX的登录窗口出现在控制台上时,第4步骤结束,同时显示面板上再无任何信息显示。

      当系统运行发现错误时,SRNs码(Service request numbers,服务请求码)会以xxx-xxx的形式显示在显示面板上,同时在AIX的errorlog中也会进行登记;当SSA磁盘柜出现故障时,在磁盘柜前面板的液晶显示屏上会显示相应的SRNs,同时黄色的显示灯会闪动,在AIX的errorlog中会登记相应错误信息,在出现问题后记录下代码,并告之IBM公司解决。

  3.软件问题处理

   软件故障情况错综复杂,下面列举几个常见的故障处理方法。

   (1)文件系统空间不够

   查看有没有“满”的文件系统。特别是/、/var、/tmp,不要超过90%。文件系统满可导致系统不能正常工作,尤其是AIX的基本文件系统。如/ ?根文件系统?满则会导致用户不能登录。用df-k查看。

   # df -k 查看AIX的基本文件系统

   除/usr文件系统,其他文件系统都不应太满,一般不超过80%。

   处理方法1:删除垃圾文件

   # du -sk ? |sort -rn |head

   查找出当前目录下占空间最大的子目录,逐层往下直到找出占空间最大的文件(要区分哪些目录是文件系统的 mount point,哪些是文件系统的子目录)。删除文件,释放空间。有时删除文件后空间并不马上释放,这是由于删除的文件正被某个程序打开。只有当这个程序停止后,空间才释放,有时甚至需要重启系统。

   处理方法2:增加文件系统大小

   # smitty chjfs

   只要卷组?VG?中有剩余空间,文件系统可以在任何时候加大。

   (2)检查文件系统的完整性

   # umount filesystem_name

   # fsck -y filesystem_name

   注意:文件系统必须先umount,再做检查和修复,否则将导致未知的后果。

   (3)查看卷组信息

   查看是否有“stale”状态的逻辑卷。若有,用syncvg命令修复。

   (4)检查内存交换区使用率

   检查使用率是否超过70%,若超过则用chps-sX pgname增加X个PP或用 mkps -a -n -sX myvg在myvg上增加一个PP数为X的内存交换区。

   (5)小型机内存泄漏问题

   小型机出现内存泄漏,即系统或应用进程无法将使用过的内存释放,使可用内存的容量逐渐减少。如果可用内存降到某最小值将造成系统或应用程序无法FORK子进程,就会造成系统瘫痪。通常我们可以用ps和sar命令来查看小型机内存和CPU占用率的大概情况以及各进程的内存和CPU占用率的发展趋势。使用ps命令,可查看内存和CPU占用率的基本情况。找出其中占用内存数不断变大的进程,这个进程可能就已经发生了内存泄漏。

  4.IBM HACMP 双机热备系统的管理和维护

   (1)HACMP 双机系统的启动

   以root用户身份分别进入系统各节点,执行# smit clstart命令。

   (2)HACMP 双机系统的关闭

   以root用户身份分别进入系统各节点,执行# smit clstop命令。

   (3)查询HACMP 双机系统的状态

   在双机系统的运行中,操作员只有知道双机系统的当前状态,才有可能对双机系统出现的异常情况进行恢复处理,保证双机系统的高可用性和高容错性。查询HACMP双机系统的状态,以root用户身份进入需要查询的节点,用# lssrc -g cluster命令检查HACMP双机软件在该节点是否已启动,系统显示3个active的信息,则说明HACMP 双机软件已正常启动。

   在确认双机软件HACMP 正常启动的情况下,在命令行执行# /usr/sbin/cluster/clstat -a命令查看双机系统的当前状态。

  5.网络故障处理

   (1)网络不通的诊断过程

   ifconfig 查看网卡是否启动(up);netstat-i查看网卡状态;Ierrs/Ipkts和Oerrs/Opkts是否>1%;ping本机网卡地址;ping其他机器地址,如不通,在其机器上用diag检测网卡是否有问题。

   在同一网中,子网掩码应一致。

   (2)网络配置的基本方法

   ①如需修改网络地址、主机名等,一定要用chdev 命令。

   # chdev -l inet0 -a hostname=myhost

   # chdev -l en0 -a netaddr='112.0.15.1' -a netmask=255.255.255.0'

   ②查看网卡状态:# lsdev -Cc-if

   ③确认网络地址:# ifconfig en0

   ④启动网卡:# ifconfig en0 up

   ⑤配置路由,有两种方式加入路由:

   a.永久路由

   # chdev -l inet0 -a route='112.1.15.2','112.0.15.254'

   b.临时路由

   # route add 112.1.15.2 112.0.15.254

   用命令 netstat -rn 查看路由表

  6.IBM公司的巡检流程

   IBM公司的巡检流程,对我们日常维护应重点关注的事项有所帮助,大家可以借鉴一下。

   (1)检查系统硬件情况:设备故障灯是否亮。

   (2)系统错误报告。

   (3)检查是否有发给root用户的错误报告。

   (4)检查hacmp.out,smit.log,boot.log。

   (5)关键系统的文件使用率不大于80%。

   (6)逻辑卷有否stale。

   (7)内存交换区使用率是否超过70%。

   (8)内存交换区的大小是否为物理内存的1.5倍。

   (9)检查备份情况(是否有系统备份、用户数据备份,磁带机是否需要清洗)。

   (10)检查通信设置(网卡、IP、路由表、ping、/etc/hosts、DNS设置等)。

   (11)是否有数据保护方式如RAID10/RAID5?是否有Hot Spare。

   (12)系统DUMP设置是否正确。

   (13)检查系统参数是否正确。

   (14)检查rootvg是否镜像。

   (15)检查errdemon?srcmstr是否正常运行。

   (16)检查机房环境(电压、湿度)。

   (17)检查系统性能:是否存在性能瓶颈?topas?vmstat?。

   (18)检查补丁程序(PTF)、微码(是否需要升级)。

   (19)进行HACMP测试:Cluster Verification。

   (20)进行系统硬件诊断:运行故障诊断程序(Diagnostic)。

   三、AIX系统参数优化   AIX内核属于动态内核,核心参数基本上可以自动调整,因此当系统安装完毕后?应考虑修改的参数一般包括以下内容。

  1.系统用户的最大登录数maxlogin

   maxlogin的具体大小可根据用户数设定,可以通过smitty chlicense命令修改,该参数记录在/etc/security/login.cfg文件中,修改在系统重新启动后生效。

  2.系统用户的limits参数

   这些参数位于/etc/security/limits文件中,可以把这些参数设为-1?即无限制,可以用vi修改/etc/security/limits文件,所有修改在用户重新登录后生效。

  3.Paging Space

   检查Paging Space的大小,在物理内存<2G时,应至少设定为物理内存的1.5倍,若物理内存>2G,可作适当调整。同时在创建Paging Space时? 应尽量分配在不同的硬盘上,提高其性能。利用smitty chps修改原有Paging Space的大小或利用smitty mkps增加一块Paging Space。

  4.系统核心参数配置

   利用lsattr -Elsys0检查maxuproc,minpout,maxpout等参数的大小。maxuproc为每个用户的最大进程数?通常如果系统运行Oracle?应调整maxuproc,将Default:128调整到500,maxuproc增加可以马上生效。当应用涉及大量的顺序读写而影响前台程序响应时间时,可考虑将maxpout设为33?minpout设为16,用smitty chgsys命令设置。

  5.文件系统空间的设定

   一般来说,文件系统/、/usr、/var、/tmp的使用率不应超过80%,/tmp建议至少为300M,文件系统满将导致系统不能正常工作,尤其是AIX的基本文件系统,如/?根文件系统?满则会导致用户不能登录。用df 查看:#df-k(查看AIX的基本文件系统),利用smitty chfs扩展文件系统的空间。

  6.激活SSA Fast-Write Cache

   利用smitty ssafastw激活每一个逻辑盘hdiskn的Fast-Write Cache:选择硬盘后,把Enable Fast-Write改为Yes后,回车即可。

  7.High water mark for pending write I/Os per file?maxpout?和Low water mark for pending write I/Os per file配置

   其缺省值为0,在双机环境中一般应将High water mark设为33?Low water mark设为24,这两个参数可用smitty chgsys来设置。

  8.syncd daemon的数据刷新频率

   该值表示刷新内存数据到硬盘的频率,缺省值为60,一般可改为20,也可根据实际情况更改。该参数通过/sbin/rc.boot配置,将nohup/usr/sbin/syncd 60>/dev/null 2>&1&参数中的60改为20即可。

  四、AIX系统备份和恢复   备份和恢复是系统管理员经常要做的事情,主要包括rootvg备份和用户数据备份。

  1.操作系统和系统程序的备份

   #tctl -f /dev/rmt0 rewind

   #smit mksysb

   在“备份设备或文件”中添入“/dev/rmt0”后回车,系统会运行很长时间,等到屏幕显示OK后拿出磁带。这时候,系统备份完成。mksysb仅备份rootvg中已安装的文件系统。

  2.用户数据备份

   (1)常用磁带机选项

   /dev/rmt0? 若选择/dev/rmt0,在插入磁带和写完一次磁带时,磁带机都将磁带反绕到头。因此?下一次备份文件将覆盖本次备份。

   /dev/rmt0.1?若选择/dev/rmt0.1?则插入磁带和写完一次磁带时,磁带机均不反绕磁带。因此,一盘磁带可以连续备份几个文件或文件系统。

   (2)#smit fs

     选择“备份文件系统”,输入要备份的“文件系统名称”,输入“/dev/rmt0.1”,重复上述操作即可在同一盘磁带上备份多个文件系统。

  3.rootvg的恢复

   启动机器进入维护模式,当出现“Welcome to Base Operating System Installation and Maintanence”时,选3 “Start Maintenance Mode for System Recovery”,要恢复系统,继续选4“Install from a System Backup”,出现“Choose mksysb Device”画面,选“/dev/rmt0”并插入磁带后回车,系统自动恢复操作系统。

  4.用户数据恢复

     #tctl -f /dev/rmt0 rewind

     #smit fs

     选择“恢复文件系统”,添入“设备名称”和“目标目录”,系统会自动恢复相应目录。

  五、AIX系统日常检查   AIX系统日常检查工作是应用维护非常重要的部分,可以把系统故障排除在萌芽阶段,以下日常检查很有参考价值。

   (1)硬件检查

   检查各指示灯状态和各物理设备的可用情况。

   (2)进程检查

   检查是否有死进程,使用ps -ef命令列出正在运行的所有进程的各种信息。

   (3)文件系统是否满

   适用df-k 命令可以以k为单位检查文件系统的使用率。

   (4)检查系统出错日志

   使用errpt |more命令检查,清除现有的log?Errclear 0。

   (5)检查系统合法/非法登录情况

   使用Last命令检查登录地点。

   (6)检查系统是否有巨大的Core文件生成

   使用find / -name core-print命令检查。对Core文件,一般直接删除即可。

   (7)系统性能检查

   ①CPU性能:使用Vmstat? topas命令检查。

   ②内存使用情况:使用topas,vmstat命令检查。

   ③检查IO平衡使用情况:使用iostat命令检查。

   ④交换空间使用情况:使用lsps -a命令检查。

   (8)Mail检查

相关文章
|
13天前
|
开发工具 Android开发 开发者
移动应用与系统:探索开发与操作系统的融合
【5月更文挑战第31天】随着科技的飞速发展,移动应用和操作系统已经成为我们日常生活中不可或缺的一部分。本文将深入探讨移动应用开发的最新趋势,以及移动操作系统如何影响这些趋势。我们将研究移动应用开发的关键技术,包括编程语言、开发工具和平台选择。同时,我们也将探讨移动操作系统的最新发展,包括Android和iOS的特性和优势。最后,我们将讨论移动应用和操作系统如何相互影响,以及这对开发者和企业意味着什么。
19 0
|
13天前
|
缓存 算法 安全
深入理解操作系统内存管理:分页系统的优势与挑战
【5月更文挑战第31天】 在现代操作系统中,内存管理是核心功能之一。分页系统作为内存管理的一种流行技术,其设计哲学基于时间和空间的局部性原理,旨在提高内存利用率和系统性能。本文将探讨分页系统的关键优势及其面临的挑战,包括页面置换算法、内存碎片问题以及虚拟到物理地址转换的复杂性。通过对分页机制的深入分析,我们揭示了它在多任务处理环境中如何允许多个进程共享主存资源,并保证了操作系统的稳定性与高效性。
|
14天前
|
存储 算法 调度
移动应用与系统:开发与操作系统的融合
【5月更文挑战第30天】随着科技的发展,移动应用与系统已经成为我们日常生活中不可或缺的一部分。本文将深入探讨移动应用开发的过程,以及移动操作系统如何影响应用的开发和运行。我们将从移动应用的开发开始,然后探讨移动操作系统的角色,最后讨论这两者如何相互影响。
|
14天前
|
算法 API 调度
深入理解操作系统:进程调度与性能优化
【5月更文挑战第30天】在多任务操作系统中,进程调度是核心功能之一,它直接影响系统的整体性能和用户体验。本文深入探讨了操作系统中的进程调度机制,包括调度策略、调度算法以及它们对系统性能的影响。同时,提出了几种性能优化技术,旨在提高系统的响应速度和资源利用率。通过分析不同场景下的调度需求,本文还讨论了如何根据具体应用定制进程调度策略,以达到最优的系统表现。
|
15天前
|
安全 Java 开发者
深入理解Java并发编程:线程安全与性能优化移动应用开发的未来:跨平台框架与原生操作系统的融合
【5月更文挑战第29天】在Java开发中,并发编程是一个重要的议题。随着多核处理器的普及,如何充分利用多核资源,提高程序的执行效率,同时保证数据的安全性和一致性,成为开发者必须面对的挑战。本文将从线程安全的基本概念出发,探讨Java中的线程安全问题,并介绍一些常见的解决方案,如同步机制、锁优化等。最后,我们将通过实例分析,展示如何在保证线程安全的前提下,进行性能优化。
|
15天前
|
安全 开发工具 Android开发
移动应用与系统的未来:跨平台开发与操作系统的演进移动创新之路:探索移动应用开发与操作系统的融合未来
【5月更文挑战第29天】 随着移动互联网的迅猛发展,移动应用和操作系统正经历着前所未有的变革。本文将深入探讨移动应用开发领域的最新趋势—特别是跨平台开发的兴起,以及移动操作系统面临的挑战与创新。我们将分析如何通过跨平台工具如Flutter和React Native提高开发效率,同时审视操作系统如Android和iOS在隐私、性能及生态系统方面的新进展。文章的目的是为开发者和技术决策者提供一个关于移动技术未来方向的清晰视角,强调了对现代移动应用和系统持续优化的必要性。
|
15天前
|
缓存 算法 调度
探索现代操作系统之芯:内核性能优化的艺术
【5月更文挑战第29天】 在本文中,我们将深入探讨操作系统中最关键的组成部分——内核,以及如何通过各种技术手段提升其性能。与传统的摘要不同,我们不会概述文章的每个部分,而是直接点出核心内容:操作系统内核的性能优化是一个复杂而精细的过程,它涉及到算法改进、内存管理、并发控制等多个方面。本文的目的是为读者提供一个关于现代操作系统内核性能优化的全面视角,并讨论实现这些优化所采取的策略和技术。
|
16天前
|
JSON 数据管理 测试技术
自动化测试工具Selenium Grid的深度应用分析深入理解操作系统的内存管理
【5月更文挑战第28天】随着互联网技术的飞速发展,软件测试工作日益复杂化,传统的手工测试已无法满足快速迭代的需求。自动化测试工具Selenium Grid因其分布式执行特性而受到广泛关注。本文旨在深入剖析Selenium Grid的工作原理、配置方法及其在复杂测试场景中的应用优势,为测试工程师提供高效测试解决方案的参考。
|
16天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用深入理解操作系统内存管理:原理与实践
【5月更文挑战第28天】 随着人工智能技术的飞速发展,图像识别作为其重要分支之一,在多个领域展现出了广泛的应用潜力。尤其是在自动驾驶系统中,基于深度学习的图像识别技术已成为实现车辆环境感知和决策的关键。本文将深入探讨深度学习算法在自动驾驶图像识别中的作用,分析其面临的挑战以及未来的发展趋势,并以此为基础,展望该技术对自动驾驶安全性和效率的影响。
|
16天前
|
缓存 算法
深入理解操作系统内存管理:分页系统的优势与挑战
【5月更文挑战第28天】 在现代操作系统中,内存管理是一项至关重要的功能,它不仅确保了系统的稳定运行,还提升了资源的利用效率。本文将探讨分页系统这一核心概念,并分析其在内存管理中的优势和面临的挑战。通过剖析分页机制的工作原理及其对虚拟内存实现的重要性,我们进一步阐述了它在多任务处理和内存保护方面的作用。同时,文章也将讨论分页带来的性能开销、页面置换算法的设计以及它们如何影响系统的整体性能。