- 论坛徽章:
- 0
|
1.vmstat 间隔 测试数量
输出如下
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
0 0 26258 18280 0 0 0 7 20 0 127 227 64 1 2 96 1
其中:
kthr--内核进程的状态
--r 运行队列中的进程数,在一个稳定的工作量下,应该少于5
--b 等待队列中的进程数(等待I/O),通常情况下是接近0的.
memory--虚拟和真实内存的使用信息
--avm 活动虚拟页面,在进程运行中分配到工作段的页面空间数.
--fre 空闲列表的数量.一般不少于120,当fre少于120时,系统开始自动的kill进程去释放
free list
page--页面活动的信息
--re 页面i/o的列表
--pi 从页面输入的页(一般不大于5)
--po 输出到页面的页
--fr 空闲的页面数(可替换的页面数)
--sr 通过页面置换算法搜索到的页面数
--cy 页面置换算法的时钟频率
faults--在取样间隔中的陷阱及中断数
--in 设备中断
--sy 系统调用中断
--cs 内核进程前后交换中断
cpu--cpu的使用率
--us 用户进程的时间
--sy 系统进程的时间
--id cpu空闲的时间
--wa 等待i/o的时间
一般us+sy 在单用户系统中不大于90
-----------------------------------
1。设置信任关系的时候,
.rhosts 不要用 chmod 777 .rhosts 修改权限
并非所有的配置文件都是权限大了才好用
2。4.3.3 安装C 的简单步骤
smit install 安装软件
/usr/lib/netls/conf/auto_config
cd /var/ifor
./i4blt -a -n `hostname` -f /usr/vac/c44aix_cn.lic -R root -T 2
/usr/vac/bin/replaceCSET
-----------------------------------
关机和重启的命令有shutdown,halt,reboot,fasthalt,fastboot,telinit...
最安全的是shutdown!尽量使用shutdown.
halt和reboot接近,与shutdown相比不执行rc.shutdown
其他命令不常用就不说了。
-----------------------------------
如何清除系统警告灯
1,开机时用diag
Select Task Selection--select Identify and Attention Indicators--When the list of LEDs displays, use the cursor to highlight Set System Attention Indicator to Normal--Press Enter-- press F7 to commit
2,未开机,上电OK状态下用串口和超级终端登上service processor
Select the System Information Menu--Select LED Control Menu--Select Clear System Attention Indicator
3,ibm书上说是#/usr/lpp/diagnostice/bin/usysfault -s normal,可这种方法我一次也没有试成功。
-------------------------------------
装完机器后!一般有大文件系统的使用,建议在/etc/inittab里面加上
vmtune:2:once:/usr/samples/kernel/vmtune -f 720 -F 768 -p 10 -P 25 -h 1
720、780是根据具体机器配置
10、25是指文件系统最大占用系统内存的百分比,默认的是max是80%太大了。跑几天内存就被吃光了!
以上命令手工做可以立即生效!
-----------------------------------
要监控cron事件,必须先要修改/etc/security/audit目录下的两个文件。它们是:
* /etc/security/audit/config: 该ASCII文件包含了audit系统配置信息。文件中含有五个部分:start, bin, stream, classes, 和users。
* /etc/security/audit/events: 该ASCII文件包含了有关audit事件的信息。文件中只含有一个部分:auditpr,它列出了系统中的所有audit事件以及用auditpr命令为每个事件输出监测结果的格式化信息。
下面是具体的配置步骤:
1. 在/etc/security/audit/config文件中的start部分,将streammode设置为ON,将binmode设置为OFF。显示如下:
start:
------binmode= off
------streammode= on
缺省的bin和stream部分的设置如下:
bin:
----trail = /audit/trail
----bin1 = /audit/bin1
----bin2 = /audit/bin2
----binsize = 10240
--- cmds = /etc/security/audit/bincmds
stream:
------cmds = /etc/security/audit/streamcmds
2. 将可监控的cron事件按照相似性归为一些audit类,然后在/etc/security/audit/config文件中的classes部分中定义这些类。CRON_Start和CRON_Finish事件是用于监控cron工作开始和结束的事件。下面列示了cron类的定义,该类中包含了audit可跟踪监控的cron事件:
cron = AT_JobAdd,AT_JobRemove,CRON_JobAdd,CRON_JobRemove,CRON_Start,CRON_Finish
3. 要将定义好的audit类对应于某一个用户,则在/etc/security/audit/config文件中的users部分中增加一行,格式如下:
= ,
例如,若要允许跟踪root用户cron工作中的cron事件,输入:
root = cron
4. 从/etc/security/audit/events文件的列表中,选择或增加需要audit的系统事件。下面是对应于CRON_Start和CRON_Finish事件的例子:
CRON_Start = printf "event = %s cmd = %s time = %s"
CRON_Finish = printf "user = %s pid = %s time = %s"
5. audit输出的报告的文件名在/etc/security/audit/streamcmds文件中指定,streamcmds文件的缺省设置如下:
/etc/auditstream | auditpr -v > /audit/stream.out &
6. 修改完config和events文件后,audit必须被重启以使所做的修改生效。若要重启audit,输入下述命令:
# audit shutdown
# audit start
* 推荐的补丁:
补丁号 AIX版本
IY08644 4.3.3
---------------------------------------
smitty mktcpip 时实行的是mktcpip命令,而smitty chinet时实行的是chdev命令,这其中的区别太大了.
具体可看命令的说明.
mktcpip
1. Setting the host name in both the configuration database and the running machine.
2. Setting the IP address of the interface in the configuration database.
3. Making entries in the /etc/hosts file for the host name and IP address.
4. Setting the domain name and IP address of the nameserver, if applicable.
5. Setting the subnetwork mask, if applicable.
6. Adding a static route to both the configuration database and the running machine, if applicable.
7. Starting the specified TCP/IP daemons.
--------------------------------
1.如何禁止终端上的中断键(CTRL+C)?
在很多应用系统中,系统管理员希望普通用户只运行自己的应用程序,不能进入系统的shell提示符下,但缺省情况下当用户在终端上按CTRL+C键时就会退到系统提示符下。由于用户终端一般没有固定的端口号,为了禁止使用中断键,可采取下面办法:
(1)如果使用ksh, 可在$HOME/.profile中第一行加入如下内容:
trap "echo 'Abnormal operation'; exit" 123915
(2)如果使用csh(ksh亦可),可用如下命令:
%stty intr ^!
如果恢复正常情况,键入下列命令:
% stty intr ^c
2.如何在shell中不回显(echo)字符?
在实际应用中,一般当我们在键盘上键入口令时不希望将其显示在屏幕上,为此可采用下面的两种办法:
·使用stty 命令
stty -echo # do not display password
echo "Enter password: \c"
read PASSWD #get the password
stty echo # restore standard configuration
·使用echo命令
设置保密属性:echo "\033[8m"
取消保密属性:echo "\033[m"
3.如何在某个目录及其所属子目录的所有文件中查找字符串?
在程序维护过程中,有时需要在某个目录及其所属子目录的所有文件中查找某一个字符串,为此可用下面两种方法(假设在*.cp文件中查找字符串"abc",结果放在文件out中):
(1)cat /dev/null > out
find ./ -name "*.cp" -exec grep "abc"{} >> out
(2)find ./ -name "*.cp" | xargs grep "abc" > out
推荐使用第二种方法,因其系统开销小、速度快。
4.如何对/etc/inittab文件中的一行进行注释?
我们都知道在shell中使用"#"作为注释符号,但在/etc/inittab中注释一行的方法是在第一个字符前插入字符":"。
5.如何转换DOS和AIX两种格式的文本文件?
如欲转换DOS和AIX两种格式的文本文件,有两种方法:
(1)用ftp命令:设置ASCII传输类型,在一台运行AIX的机器和另外一台运行Windows的机器之间互相传送,这里不再赘述。
(2)使用aix2dos或dos2aix命令
如将DOS格式的文本文件转换为AIX格式,可用命令A:dos2aix inputfile outfile,反之可用命令:aix2dos inputfile outfile,关于dos2aix和aix2dos命令的详细用法可参阅"dos2aix -h "和"aix2dos -h "。注意要使用这两个命令,必须首先安装文件集bos.pci。
6.如何解决某一PV上的VGDA与ODM库不一致的问题?
在系统维护过程中,因为操作错误或其他特殊原因,有可能使某一PV上的LVCB和VGDA与其对应的ODM库不一致,导致ODM库紊乱,对PV的有关操作无法进行,这时可采用如下两个AIX命令加以解决:
redefinevg -d hdisk_name vg_name
该命令以指定PV上的LVM信息重新定义给定VG的ODM库。
或:synclvodm -P -v vgname
该命令同步或重建给定VG的ODM库和LVM信息。
7.如何设置用户的文件大小限制?
在AIX系统中,用户使用系统资源是有一定限制的。如用户缺省可创建或扩展的最大文件为1G(参见/etc/security/limits: fsize = 2097151, fsize_hard=fsize 512-bytes blocks)。
如欲修改,可使用smit:
# smit chuser 选择用户,修改下面两项:
Soft FILE size [4194302]
# (2G,可根据需要设定)
Hard FILE size [4194302]
# (2G, 可根据需要设定)
用该用户身份登录,使用"ulimit -f "和"ulimit -Hf"可分别显示其fsize、fsize_hard的大小。
8、如何按文件大小排序列出一个文件系统下的文件?
当监控某一文件系统的空间使用情况时,如果该文件系统剩余空间较少或已使用空间增长较快,则有必要排序列出该文件系统中所有大于某一给定字节数的文件,以便进一步维护管理。为此,可用如下命令:
# find [filesystem_name] -xdev -size +[512-bytes bloks] -ls | sort -r -n -k7
(以上所有命令在AIX4.3.3下全部测试通过。)
---------------------------------------
如果在一个有很多目录结构下的fs里面想找出到底是谁占用空间最大
就用du -k|sort -rn
一次杀掉很多进程
ps -ef|grep XXXX|awk '{print $2}'|xargs kill -9
如果一个目录里面的文件太多多得连用*通配符都无法表示了,又需要把他们全部干掉可以
ls|xargs rm -
ls|while read dile
do rm $id
done
------------------------------
----AIX*作系统安装完后,会建立一些缺省得的文件系统,其中 ‘/’,‘/tmp’和‘ /var’文件系统对于整个系统的正常运行是至关重要的,因此要保证这三个文件系统有足够的剩余空间。可用如下命令对空间的使用情况进行查询。
# df -k
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 163840 144668 12% 1871 3% /
/dev/hd2 1310720 60356 96% 37212 12% /usr
/dev/hd9var 163840 140448 15% 310 1% /var
/dev/hd3 163840 156920 5% 71 1% /tmp
/dev/hd1 32768 31556 4% 42 1% /home
/dev/dblv 4194304 4062604 4% 17 1% /db
----应保证此三个文件系统的大小至少为128MB,每个文件系统有50%以上的剩余空间。在系统运行的过程中,也应该随时监视这三个文件系统剩余空间的大小。
3. 设置网络
----用以下命令检查所有网卡的ip地址配置:
# ifconfig -a
en0: flags=4e080863
inet 83.24.19.11 netmask 0xffffff00 broadcast 83.24.19.255
en1: flags=4e080863
inet 83.24.18.11 netmask 0xffffff00 broadcast 83.24.18.255
lo0: flags=e08084b
inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255
inet6 ::1/0
----每块网卡应配置在不同网段。如果两块网卡配置在同一网段,会产生网络通信故障。
----用以下命令检查系统路由表:
# netstat -r
Routing tables
Destination Gateway Flags Refs Use If PMTU Exp Groups
Route Tree for Protocol Family 2 (Internet):
default 9.185.40.1 UGc 0 0 en1 - -
9/8 r6f50 U 0 19 en0 - -
9.185.40/22 r6_svc U 5 14893 en1 - -
9.185.48/22 9.185.40.1 UGc 0 0 en1 - -
bjcn.ibm.com 9.185.40.1 UGHW 1 9 en1 - -
127/8 loopback U 0 1002 lo0 - -
Route Tree for Protocol Family 24 (Internet v6):
::1 ::1 UH 0 0 lo0 16896 -
----每块网卡都应有指向本地网段的路由。
----检查/etc/hosts文件:
----检查/etc/hosts文件中的每一行,确保每一个ip地址只对应一个主机名,每一个主机名只对应一个ip地址。
4. 设置交换空间(paging space)
----用以下命令察看交换空间的使用情况:
# lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto Type
paging00 hdisk1 rootvg 2048MB 5 yes yes lv
hd6 hdisk0 rootvg 2048MB 5 yes yes lv
----缺省系统的交换空间只有一个hd6,而且比较小。设置交换空间的原则如下:
a. 创建数量尽可能多的交换空间。
b. 每个交换空间大小应相同。
c. 每个交换空间应分布在不同的硬盘上,不要将两个交换空间建在同一硬盘上。
d. 每个交换空间的使用率应小于40%。
----交换空间的大小与内存的大小和应用有关。当不知应用的内存使用情况时,可按以下原则设置。当内存小于2GB时,交换空间的大小应是内存的两倍,当内存小于8GB而大于2GB时,交换空间的大小应与内存大小相同。内存大于8GB时,交换空间的大小应是内存的一半。此设置为初始值,用户应随时监视交换空间的使用情况,而做出调整。
----注意:当交换空间100%占用时,系统将无法正常工作。
5. 配置用户
----缺省系统只允许2个非root用户登陆,用户可根据自己的需求增加用户数。
----# smitty
-----System Environments
------Change / Show Number of Licensed Users
-------Maximum number of FIXED licenses [32]
----改变每用户的最大进程数,有些应用软件需要单一用户启很多进程(如oracle数据库)。可按下述方法改变用户最大进程数。
----# smitty
-----System Environments
------Change / Show Characteristics of Operating System
-------Maximum number of PROCESSES allowed per user [1200]
6. SSA卡的设置
----对于使用SSA卡的用户,卡上的快写缓存可以极大的提高磁盘的I/O性能,用户应首先检查SSA卡上是否配置了快写缓存。
# lscfg -vl ssa0
DEVICE LOCATION DEs criptION
ssa0 11-08 IBM SSA 160 SerialRAID Adapter
(14109100)
----Part Number ........................................27H1204
----FRU Number .........................................34L5388
----Serial Number ......................................S1072088
----EC Level ...........................................E28793
----Manufacturer .......................................IBM053
----ROS Level and ID ...................................8300 0000
----Loadable Microcode Level ...........................05
----Device Driver Level ................................00
----Displayable Message ................................SSA-ADAPTER
--* Device Specific.(Z0) ...............................SDRAM=128
--* Device Specific.(Z1) ...............................CACHE=32
----Device Specific.(Z2) ...............................UID=006094BF00003CDC
----Device Specific.(YL) ...............................U0.1-P1-I1/Q1
----此卡配置了128MB的读缓存和32MB的快写缓存。
----如果配置了快写缓存,改变SSA磁盘的配置,使其使用快写缓存
----# smitty device
-----SSA Disks
------SSA Logical Disks
-------Change/Show Characteristics of an SSA Logical Disk
--------hdisk? Available 11-08-L SSA Logical Disk Drive
---------Enable Fast-Write yes
----如果'Enable Fast-Write' 是no,将其改为yes。
7. 改变aioserver的设置
----如果应用是数据库的应用,并且数据文件是建立在文件系统上,那么应改变aioserver的设置以提高I/O的性能。
----# smitty aio
-----Change / Show Characteristics of Asynchronous I/O
------MINIMUM number of servers----- [20]
------MAXIMUM number of servers -----[60]
----可用如下命令监视aioserver的数量,如果数量达到最大值,应提高MAXIMUM number of servers,对MINIMUM number of servers也作相应的改动。
----# pstat -a | grep aios | wc -l
--------32
----当AIX安装完之后,可按上述方法对系统进行初步的设置,以后在系统的运行的过程中,可根据系统的运行状况进行调整,已以达到系统最佳的运行效果
-------------------------------------
. vmstat
vmstat命令用于统计并显示核心线程、虚拟内存、硬盘、中断及CPU的使用情况。
运行命令
# vmstat 2 10
注: 当pi和po为连续非零值时,系统运行速度将会降低。
pi 每秒钟从页空间(Paging Space)调入内存的页面数(4KB/page);
po 每秒钟从内存调入页空间(Paging Space)的页面数;
当进程请求的内存页面数大于内存中可用页面数时, 一些内存页会被换出内存, 存放于系统页空间(Paging Space)中, 以后使用时再调入内存。由于访问页空间中页面的速度远小于对内存页面的访问速度,所以频繁的换页会降低系统运行速度。
注: 当fr和sr的数值增大时,sample明内存负载增大。
fr 为填充内存空闲sample或分配给某进程所需要释放的内存页面;
sr 为得到fr数量的空闲页面所需要检查的页面数;
fr/sr比例为1:4sample明每释放一个内存页面需要检查四个页面。
当po*SYS>fr(SYS为一系统参数,可用命令schedtune查看)时,系统自身认为已到崩溃边缘。SYS在有128MB或更多内存的系统上默认值为0, sample示禁止内存加载控制,否则默认值为6。系统崩溃sample明此时系统使用大量时间用于内存换入/换出,而没有足够时间处理应用或正常工作。这时一些进程将被临时挂起,系统运行明显减慢。
2. svmon
svmon命令统计并显示虚拟内存的使用情况。
以超级用户(root)身份运行命令
# svmon -Pau 10 | more
输出如下:
Pid Command Inuse Pin Pgspace
13794 dtwm 1603 1 449
Pid: 13794
Command: dtwm
这条命令显示出使用内存最多的前十个进程,并针对每个进程给出了一个详细列sample(上sample为其中一个进程的描述信息)。在每个进程的列sample中,找出Type为"work"及Description为"private"的相应行,查看Pgspace显示的使用页面数(每个页面大小为4096字节),该数值为此段(segment)在虚拟内存空间中占用的工作页面(working pages)数,即占用的页空间中的页面数。如果Pgspace值持续增长,系统则有可能存在内存泄漏(memory leak)。当应用程序不能正常释放内存时会出现内存泄漏的问题。
上述命令格式及输出结果适用于AIX4.3.3之前的版本。在AIX4.3.3的系统上可运行命令
svmon -Pu 10 | more
其输出格式与上条命令基本相同,但字段"Pgspace"用"Pgsp"取代。
3. ps
ps命令显示当前运行的进程状态信息。
运行下列命令
#ps gv | head -n 1; ps gv | egrep -v "RSS" | sort +6b -7 -n -r
SIZE 页空间中分配给该进程的Type为"work", Description为"private"的内存段大小(K字节 为单位)。该数值也可通过命令svmon显示。
RSS 进程当前占用的内存段(物理内存)大小(K字节为单位),包括Type为"work"和Description 为"private"的内存段及Type为"pers"和Description为"code"的内存段。该数值可通 过命令svmon显示。
TRS 进程常驻内存的正文段大小,包括Type为"pers"及Description为"code"的内存段。该 数值可通过命令svmon显示。
%MEM RSS占系统物理内存的百分比(%)。
如上所述,使用ps命令同样可以查看各进程的内存分配情况。
CPU 瓶颈
下面我们将就如何使用命令vmstat、tprof和ps检查系统是否存在CPU瓶颈做一个简单介绍。
1. vmstat
使用命令
# vmstat 1 10
注: 运行队列有进程等待时系统运行速度会降低。
id CPU 空闲时间或无I/O等待时间的百分比;
wa CPU I/O 等待时间的百分比;
r 运行队列中的线程数;
如果 id 和wa 的值持续为接近0的值,sample明CPU此时处于繁忙状态。
下面来看看字段r(运行队列中的线程数)。运行队列中等待的线程数越多,系统性能受到的影响越大。
2. tprof
tprof命令用于统计每个进程的CPU使用情况。
以超级用户root的身份运行下列命令,可以找出进程占用的CPU时间:
# tprof -x sleep 30
此命令运行30秒钟,在当前目录下创建一个名为_prof.all 的文件。30秒钟内, CPU被调度次数约为3000次。__prof.all 文件中的字段Total 为此进程调度到的CPU次数。如果进程所对应的 Total字 段的值为1500,sample示该进程在3000次 CPU调度中占用了1500次,或理解为使用了一半的CPU时间。tprof的输出准确地显示出哪个进程在使用CPU 时间。
__prof.all文件示例:
3. netpmon
netpmon命令用于监控与网络有关的I/0及CPU的使用情况。
以root 身份运行下面的命令,可以找出进程使用的CPU时间,以及其中与网络有关的代码使用的CPU时间:
# netpmon -o /tmp/netpmon.out -O cpu -v; sleep 30; trcstop
此命令运行30 秒钟,并在/tmp目录下生成文件 netpmon.out。其中字段 CPU Time 为进程使用CPU
的时间总值,CPU%对应其百分比,Network CPU% 为进程中与网络有关的代码所占用的CPU百分比。如下所示:
输入输出(I/O)瓶颈
1. iostat
iostat命令用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量。
运行命令:
iostat 5 10
将显示10次统计结果,下面为其中一次的数据:
其中
%iowait 等待本地 I/O 时CPU 空闲时间的百分比
%idle 未等待本地 I/O 时CPU 空闲时间的百分比
当没有需使用CPU的进程但至少有一个进程在等待I/O 时, CPU时间属性标为iowait。如果iowait 时间的百分比很高,sample示该磁盘输入输出(I/O)是导致系统运行速度缓慢的主要原因。
%tm_act 硬盘繁忙的百分比
注: tm_act的值很高,sample明硬盘存在I/O瓶颈。
当%tm_act(硬盘繁忙时间)很高时,可能会感觉到系统运行速度在减慢。有些系统上某个硬盘的%tm_act值为60%或更高时,系统性能就会受到影响。
两点建议:
1. 观察繁忙与空闲的硬盘,将数据从忙的盘移至相对空闲的的盘上,这会在一定程度上减轻由此引起的I/O 瓶颈。
2. 依照上面"内存瓶颈"中介绍的方法检查内存换页的频繁程度。大量的换页操作会增加I/O负载。
2. filemon
filemon 命令用于查看哪些文件/逻辑卷/硬盘处于繁忙状态。在系统I/O 处于繁忙状态时运行下面的命令:
# filemon -u -O all -o /tmp/fmon.out; sleep 30; trcstop
30秒钟后会生成记录跟踪信息的文件 /tmp/fmon.out。从该文件中可以找出:
1. 最为繁忙的虚拟内存段(segment)、逻辑卷和物理卷;
2. 对页空间(paging space)的读写次数,确认硬盘I/O 是由于应用程序操作还是频繁的换页操作;
3. 最为活跃的文件或逻辑卷,如果它们存放在繁忙的物理卷上,可以考虑将数据移至相对空闲 的硬盘上,这样有助于提高系统性能。最为繁忙的段的报sample里列示出最繁忙的文件所对应的文件系统和i节点。文件系统的安装点(mount point)及文件的i节点(inode)可与命令ncheck一起使用,来找出相对应的文件。这个报sample可用来判断该I/O操作是针对文件系统、JFS Log 还是系统页空间的。
通过检查字段"reads"和"read sequences"的值,可以判断该操作是顺序读取还是随机读取。当 "read sequences"接近"reads"时,对该文件的访问则以随机读取方式居多。(附录A为命令 filemon 的输出 示 例)
结束语
在这里有一个极有用的工具值得给大家一提,就是RS/6000性能诊断工具包-Performance Toolbox, 一个用来检测系统性能的功能非常完善的软件包。其中包括基于X-Windows的图形 界面诊断工具 xmperf,用于实时检测系统资源的使用情况。(注:该软件包不在AIX操作系统光盘中提供。)
我们在上面的文字中讨论了有关RS/6000系统的资源瓶颈问题,其中涉及到的系统命令的具体用法可以查找AIX联机命令手册。此外,一个系统的性能如何还与网络因素及应用程序有着密切的关系,分析这诸多因素的方法及工具还有很多,在此不做一一介绍了。希望大家在实际工作中逐步摸索,成为RS/6000系统性能分析专家
附录A (filemon 输出文件示例)
----------------------------------
一、单机环境
1、系统用户的最大登录数maxlogin
maxlogin的具体大小可根据用户数设定,可以通过smitty chlicense命令修改,该参数记录于/etc/security/login.cfg文件,修改在系统重新启动后生效。
2、系统用户的limits参数
这些参数位于/etc/security/limits文件中,可以把这些参数设为-1,即无限制,可以用vi 修改/etc/security/limits文件,所有修改在用户重新登录后生效。
default:
fsize = 2097151 ----》改为-1
core = 2097151
cpu = -1
data = 262144 ----》改为-1
rss = 65536
stack = 65536
nofiles = 2000
3、Paging Space
检查paging space的大小,在物理内存2G,可作适当调整。同时在创建paging space时, 应尽量分配在不同的硬盘上,提高其性能。利用smitty chps修改原有paging space的大小或smitty mkps增加一块paging space。
4、系统核心参数配置
利用lsattr -Elsys0 检查maxuproc, minpout, maxpout等参数的大小。maxuproc为每个用户的最大进程数,通常如果系统运行DB2或ORACLE是应将maxuproc调整,Default:128、调整到500,maxuproc增加可以马上起作用,降低需要AIX重起。当应用涉及大量的顺序读写而影响前台程序响应时间时,可考虑将maxpout设为33, minpout设为16,利用smitty chgsys来设置。
5、文件系统空间的设定
一般来说,系统的文件系统/、/usr、/var、/tmp的使用率不要超过80%,/tmp建议至少为300M,文件系统满可导致系统不能正常工作,尤其是AIX的基本文件系统,如/ (根文件系统)满则会导致用户不能登录。用df 查看。
# df -k (查看AIX的基本文件系统)
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 24576 1452 95% 2599 22% /
/dev/hd2 614400 28068 96% 22967 15% /usr
/dev/hd9var 8192 4540 45% 649 32% /var
/dev/hd3 167936 157968 6% 89 1% /tmp
/dev/hd1 16384 5332 68% 1402 35% /home
利用smitty chfs扩展文件系统的空间。
6、激活SSA Fast-Write Cache
利用smitty ssafastw来激活每一个逻辑盘hdiskn的Fast-Write Cache:选择硬盘后,把Enable Fast-Write一项改为Yes后回车即可。
7、激活AIO
AIO通常只对文件系统起作用,对裸设备没有作用。最大为10X并行磁盘数 Configure Defined Asynchronous I/O 然后回车执行;
②、激活系统中的AIO设备
smit aio -> Change / Show Characteristics of Asynchronous I/O回车出现AIO配置对话框,将对话框中〔STATE to be configured at system restart〕域选择为“available”,然后回车执行;
注:系统会提示只有在重起后才能生效。
8、rootvg镜像
因为rootvg损坏系统将无法运行,即使通过备份磁带恢复,也会造成系统停机,因此在磁盘空间充裕的情况下,可考虑对rootvg作镜像,同时在建立rootvg镜像时应尽量使用连接在不同SCSI 上的硬盘以做到负载均衡。利用smitty mirrorvg修改。
二、双机环境
在双机环境中,除了考虑上述参数设置外,还需考虑:
1、 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来设置。
2、 syncd daemon的数据刷新频率
该值表示刷新内存数据到硬盘的频率,缺省为60,一般可改为20,也可根据实际情况更改。该参数通过vi /sbin/rc.boot更改,其中一行如下:
nohup /usr/sbin/syncd 60 >/dev/null 2>&1 &
改为:
nohup /usr/sbin/syncd 20 >/dev/null 2>&1 &
9.修改系统(5.1)内核
将64位内核转变为32位内核。
ln -sf /usr/lib/boot/unix_mp /unix
ln -sf /usr/lib/boot/unix_mp /usr/lib/boot/unix
bosboot -ad /dev/ipldevice
shutdown -Fr
将32位内核转变为64位内核。
ln -sf /usr/lib/boot/unix_64 /unix
ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix
bosboot -ad /dev/ipldevice
shutdown -Fr
---------------------------------------
AIX 4.3.3 上面安装 oracle 9.2
1. 检查物理内存:(RAM >= 512 MB)
# lsattr -El sys0 -a realmem
realmem 1048576 Amount of usable physical memory in Kbytes False
#
我们的是1G,呵呵,够了
2. 检查swap空间:(等于物理内存或者1G,最好大一些)
# lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto Type
hd6 hdisk0 rootvg 2048MB 1 yes yes lv
#
我们的是2G,呵呵
3. 检查磁盘空间,主要注意两点:
a) 安装9.2 , 主要是存放 ORACLE CODE,这个空间建议在4G左右,或者更大一点。
b) 另外,安装Oracle的过程中,Oracle Universal Installer 需要大约400M左右的临时空间,可以使用系统默认的/tmp目录,
也可以自己设置环境变量TMPDIR来指定一个具有足够空间的目录,或者在安装过程中指定一个有足够空间的临时目录
如:
TMPDIR=/oratools
export TMPDIR
一般来说,oracle的安装文件都放在内置盘上,所以,我们需要看看内置盘的空间:
# lsdev -Cc disk
hdisk0 Available 40-60-00-4,0 16 Bit LVD SCSI Disk Drive
hdisk1 Available 14-08-L SSA Logical Disk Drive
#
我们看到hdisk0是内置盘,现在确定其大小:
# lspv hdisk0
PHYSICAL VOLUME: hdisk0 VOLUME GROUP: rootvg
PV IDENTIFIER: 000ca13f7ebe3b7e VG IDENTIFIER 000ca13f7ebe3e67
PV STATE: active
STALE PARTITIONS: 0 ALLOCATABLE: yes
PP SIZE: 32 megabyte(s) LOGICAL VOLUMES: 11
TOTAL PPs: 542 (17344 megabytes) VG DESCRIPTORS: 2
FREE PPs: 217 (6944 megabytes) HOT SPARE: no
USED PPs: 325 (10400 megabytes)
FREE DISTRIBUTION: 108..20..00..00..89
USED DISTRIBUTION: 01..88..108..108..20
#
我们看到,TOTAL 为18G,FREE 为7G,够了,呵呵
4. 检查 OS 的版本,两种方法:
你可以用oslevel 命令确定当前的AIX 版本,
# oslevel
4.3.3.0
#
或者你也可以用oslevel -r,确定当前的AIX 版本和ML(the maintenance level of the system):
# oslevel -r
4330-09
#
这样的结果,类似于用instfix 命令查看当前的ML:
$ instfix -i | grep ML
All filesets for 4.3.0.0_AIX_ML were found.
All filesets for 4.3.1.0_AIX_ML were found.
All filesets for 4.3.2.0_AIX_ML were found.
All filesets for 4320-02_AIX_ML were found.
All filesets for 4.3.3.0_AIX_ML were found.
All filesets for 4330-01_AIX_ML were found.
All filesets for 4330-02_AIX_ML were found.
All filesets for 4330-03_AIX_ML were found.
All filesets for 4330-04_AIX_ML were found.
All filesets for 4330-05_AIX_ML were found.
All filesets for 4330-06_AIX_ML were found.
Not all filesets for 4330-07_AIX_ML were found.
All filesets for 4330-08_AIX_ML were found.
All filesets for 4330-09_AIX_ML were found.
All filesets for AIX43ML were found.
$
可见,我们的是AIX 4.3.3 ,ML是09的
5. 查看OS 是否为64 bit:
如果是64 bit位的OS,可以装32 bit 或者64 bit 的oracle 8i ,但是 32 bit的OS 只能装32 bit 的oracle;
因为oracle 9.2 没有32 bit的,所以,我们必须验证我们的OS 是64位的OS:
也是有两种方法:
# locale64
LANG=C
LC_COLLATE="C"
LC_CTYPE="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_MESSAGES="C"
LC_ALL=
#
或者
# bootinfo -y
64
#
6.看看OS的patch够不够
Oracle的文档上,对于AIX 4.3.3 要求至少在ML 09 ,并且IY24568, IY25282, IY27614,IY30151这四个patch,实际上
但是实际上,我们还需要一个IY30927,文档上说这个包仅仅是和CPU的使用效率有关的包,可以不要,但是我安装的经验
是,一定要,否则会出问题。上述包如果不存在,那么需要到下面的站点download:
http://techsupport.services.ibm.com/server/fixes
$ instfix -i | grep ML
All filesets for 4.3.0.0_AIX_ML were found.
All filesets for 4.3.1.0_AIX_ML were found.
All filesets for 4.3.2.0_AIX_ML were found.
All filesets for 4320-02_AIX_ML were found.
All filesets for 4.3.3.0_AIX_ML were found.
All filesets for 4330-01_AIX_ML were found.
All filesets for 4330-02_AIX_ML were found.
All filesets for 4330-03_AIX_ML were found.
All filesets for 4330-04_AIX_ML were found.
All filesets for 4330-05_AIX_ML were found.
All filesets for 4330-06_AIX_ML were found.
Not all filesets for 4330-07_AIX_ML were found.
All filesets for 4330-08_AIX_ML were found.
All filesets for 4330-09_AIX_ML were found.
All filesets for AIX43ML were found.
$
显然,我们的AIX 是4.3.3 ML09
查看某个patch是否安装了:
# instfix -i | grep IY24568
All filesets for IY25282 were found
表示已经有这个patch了
# instfix -i | grep IY30927
Not all filesets for IY30927 were found.
表示没有安装IY30927这个patch
7. 特别要说明的是,JAVA是在AIX 4.3.3 的默认安装中是不安装的,需要手工安装
(在AIX 5.1 就不要手工装了,系统的默认安装就会安装java)
至少需要JDK1.1.8 ,对应的patch是 IY30886
如果使用HTTP SERVER,那么就需要JDK1.3.1 ,对应的patch是: IY31033
下载地址:
ftp://service.software.ibm.com/aix/efixes/
(如果已经装了这个补丁,会有一个/usr/jdk_base目录,它就是你的JAVA_HOME)
8. 检查是否具备所需的OS package
AIX 4.3.3 需要下列package:
bos.adt.base, bos.adt.lib, bos.adt.libm, bos.perf.perfstat
我们可以使用lslpp pl os_package 命令来查看:
# lslpp -l bos.adt.base
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.adt.base 4.3.3.77 COMMITTED Base Application Development
Toolkit
# lslpp -l bos.adt.lib
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.adt.lib 4.3.3.10 COMMITTED Base Application Development
Libraries
# lslpp -l bos.adt.libm
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.adt.libm 4.3.3.50 COMMITTED Base Application Development
Math Library
#
如果上面需要的patch和packgae没有安装,那么去相应的站点download他们,并使用smit的update all来安装他们。
安装过程中有时候会出现类似 "这个包已经被安装了或者指定的目录不对" 等错误,这时候,去你指定的目录下面看看,
如果有.toc文件,我们需要删除它(它是个隐含文件,需要用ls -a 查看),然后重新update all
9. 上面的都做完了以后,reboot机器:
shutdown -Fr
10. 检查一下刚才的patch和package都有了,现在给oracle划分存储空间
首先,需要一个地方存放安装文件,假设为/oratools,我们需要进入
smit- System Storage Management (Physical & Logical Storage)
-File Systems 或者 -Logical Volume Manager,
(如果你是个AIX新手,那么你最好就选择FS,让系统为你建立逻辑卷就好了,呵呵;
如果想装OPS或者RAC那么你就要用先建逻辑卷,再建文件系统的方法了,因为系统建立的逻辑卷也许会重名,呵呵)
-Add / Change / Show / Delete File Systems
-Journaled File Systems
-Add a Journaled File System
- Add a Large File Enabled Journaled File System(选择这个,可以支持大于2G的文件系统)
这是系统会出现让你选择一个vg的窗口,最好不要选择rootvg,因为我们通常把和OS相关的东西放在那里。
然后出现:类似下面的窗口:
SIZE of file system (in 512-byte blocks) [] #
* MOUNT POINT []
Mount AUTOMATICALLY at system restart? no
(注意将Mount AUTOMATICALLY at system restart设置为自动mount)
11. 在建立一个ORACLE_HOME主目录(方法同上)
12. 建立dba 组
smit group - Add a Group
13. 建立oracle 用户
smit user - Add a User
14. 以oracle登陆,修改profile,如:
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.
export PATH
if [ -s "$MAIL" ] # This is at Shell startup. In normal
then echo "$MAILMSG" # operation, the Shell checks
fi # periodically.
PATH=$PATH:/oratools/gzip-1.2.4a
export PATH
DISPLAY = 192.168.2.216:0.0
export DISPLAY
ORACLE_BASE=/oracle92
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/9.2
export ORACLE_HOME
ORACLE_SID=ORA92
export ORACLE_SID
ORACLE_TERM=vt100
export ORACLE_TERM
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export ORA_NLS33
JAVA_HOME=/usr/jdk_base
export JAVA_HOME
LIBPATH=$ORACLE_HOME/lib
export LIBPATH
CLASSPATH=$ORACLE_HOME/product/jlib:$ORACLE_HOME/jlib
export CLASSPATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
NLS_LANG=american_america.zhs16gbk
export NLS_LANG
TMPDIR=/oratools
export TMPDIR
set -o vi
umask 022
set -o vi不是必须的,呵呵,它让你可以在输入OS的时候使用vi的命令(类似vi的命令模式),
例如:
H : 左移一个字符
J : 刚才执行过的后一个命令
K : 刚才执行过的前一个命令
L : 右移一个字符
等等
15. 安装ORACLE,需要XWindow的支持
以oracle登陆,输入:xclock,看看是否可以出现一个小时钟,如果可以就OK了
否则,su 到root,然后xhost +192.168.2.216
16. 剩下的就没什么好说的了吧,照着提示,中间有几次需要root权限执行几个sh,然后OK
注意,我安装的时候因为忽略了IY30927 所以LINK的时候报错,然后查看make文件发现问题多多,呵呵,
我的解决办法:
首先,安装 IY30927,然后reboot;
然后,relink
如果还有类似下面的问题:
ld: 0711-317 ERROR: Undefined symbol: ksusga_
ld: 0711-317 ERROR: Undefined symbol: kwqpls_
ld: 0711-317 ERROR: Undefined symbol: kclnlt_
ld: 0711-317 ERROR: Undefined symbol: ksulsg_
ld: 0711-317 ERROR: Undefined symbol: kcbstdbz_
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make: The error code from the last command is 8.
那么到$ORACLE_HOME/lib,看看ksms.imp是否为0 bytes,如果是,那么删除这个文件,并且执行relink,因该就没有问题了。
(这个错误是由于刚刚在没有装那个IY30927 的时候,安装过程中提示某个.so出错,我们选择了忽略,那么,
$ORACLE_HOME/bin/genksms执行就会失败,并且在$ORACLE_HOME/lib/ksms.imp 生成了那个0 bytes的文件)
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11317/showart_70356.html |
|