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检查

相关文章
|
5天前
|
存储 算法 调度
深入理解操作系统:进程管理与性能优化
【5月更文挑战第14天】 本文旨在深入探讨操作系统中的进程管理机制及其对系统性能的影响。通过分析进程调度算法、死锁问题和内存管理等关键技术,本文提出了一系列性能优化策略。文章首先介绍了进程的基本概念和状态转换,然后详细讨论了不同进程调度算法的优缺点,并针对特定场景提出了合理的选择建议。接着,文中分析了死锁的产生原因和预防措施,以及内存管理中页式和段式存储管理的比较。最后,通过实验验证了提出优化策略的有效性,并对操作系统的性能调优提供了实用的指导意义。
|
5天前
|
编解码 Oracle iOS开发
VirtualBox虚拟机安装Mac OS X Lion系统详解
VirtualBox虚拟机安装Mac OS X Lion系统详解
18 1
|
5天前
|
安全 Linux Anolis
centos停止更新?这篇博客教会你CentOS 7转化系统为阿里龙蜥Anolis OS 7
centos停止更新?这篇博客教会你CentOS 7转化系统为阿里龙蜥Anolis OS 7
|
5天前
|
开发工具 Android开发 开发者
移动应用与系统:开发与操作系统的融合
【5月更文挑战第7天】在这篇文章中,我们将探讨移动应用开发的重要性和挑战,以及移动操作系统如何影响应用的性能和用户体验。我们还将讨论最新的技术趋势,如跨平台开发工具和人工智能集成,以及它们如何改变移动应用开发的未来。
18 3
|
5天前
|
Linux 开发工具 Android开发
移动应用与系统:开发与操作系统的深度解析
【5月更文挑战第6天】 在数字化时代,移动应用和操作系统是信息技术的核心组成部分。本文深入探讨了移动应用的开发过程、关键技术以及移动操作系统的架构和功能。通过对这些技术的详细分析,我们可以更好地理解移动应用和系统的工作原理,以及它们如何影响我们的生活和工作。
|
5天前
|
敏捷开发 测试技术 持续交付
探索自动化测试在敏捷开发中的应用移动应用的未来:跨平台开发与操作系统的融合
【4月更文挑战第30天】随着软件开发周期的不断缩短,传统的软件测试方法逐渐显得力不从心。本文将深入探讨自动化测试在敏捷开发环境中的关键作用,分析其如何提高测试效率、减少人力资源成本,并确保软件产品的质量与稳定性。通过案例分析,我们还将讨论实施自动化测试的最佳实践和面临的挑战,为追求高效敏捷开发的组织提供参考。
|
5天前
|
机器学习/深度学习 自动驾驶 安全
深入理解操作系统内存管理:策略与实现基于深度学习的图像识别技术在自动驾驶系统中的应用
【4月更文挑战第30天】 在现代计算机系统中,操作系统的内存管理是确保系统高效、稳定运行的关键组成部分。本文将深入探讨操作系统中内存管理的多种策略及其实现机制,包括但不限于分页、分段和段页式结合等技术。我们将剖析内存分配的原理,讨论虚拟内存技术的实现以及它如何提供更大的地址空间并允许内存的交换。同时,我们还会涉及内存保护机制,它们是如何防止程序访问未授权的内存区域。最后,文中将对现代操作系统如Linux和Windows中的内存管理实践进行比较分析,以期给读者提供全面而深入的理解和参考。 【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已经
|
5天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战移动应用开发的未来:跨平台框架与原生操作系统的融合
【4月更文挑战第30天】 随着人工智能的迅猛发展,深度学习技术已成为图像识别领域的核心竞争力。本文章将探讨深度学习在图像识别中的应用,并分析其面临的主要挑战。我们将从卷积神经网络(CNN)的基础架构出发,讨论其在图像分类、目标检测和语义分割等方面的应用案例,同时指出数据偏差、模型泛化能力以及对抗性攻击等问题对图像识别准确性的影响。通过实例分析和最新研究成果,本文旨在为读者提供一个关于深度学习在图像处理领域内应用的全面视角。
|
5天前
|
算法 安全 Android开发
深入理解操作系统的内存管理机制构建高效Android应用:Kotlin的协程优势
【4月更文挑战第30天】 在现代计算机系统中,操作系统的内存管理是确保系统高效、稳定运行的关键。本文将探讨操作系统内存管理的核心技术,包括内存分配、虚拟内存、分页和分段等概念,以及它们是如何协同工作以提高内存利用率和系统性能的。通过对这些技术的详细分析,我们可以更好地理解操作系统背后的原理,并评估不同内存管理策略对系统行为的影响。 【4月更文挑战第30天】 在移动开发领域,尤其是针对Android平台,性能优化和流畅的用户体验始终是开发者追求的核心目标。随着Kotlin语言的普及,协程作为其在异步编程领域的杀手锏特性,已经逐渐成为提高应用性能和简化代码结构的重要工具。本文将深入探讨Kotli
|
5天前
|
开发框架 算法 前端开发
深入理解操作系统:进程管理与调度策略移动应用开发的未来:跨平台框架与原生系统的协同进化
【4月更文挑战第30天】 本文旨在探讨操作系统中的核心机制之一 —— 进程管理,并详细分析不同的进程调度策略。通过对操作系统中进程概念的剖析,我们揭示了进程状态、进程控制块(PCB)以及进程调度器的重要性。文章进一步对比了几种常见的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)、轮转调度(RR),以及多级反馈队列(MLQ),并讨论了它们在不同应用场景下的性能表现。最后,文章还涉及了现代操作系统中对于多核处理器和实时系统所采用的特殊调度考虑。 【4月更文挑战第30天】 在移动设备日益成为人们日常生活与工作不可或缺的组成部分时,移动应用的开发和维护也变得愈加重要。本文将探讨移动应用