IBM AIX 基礎 轉載
--AIX:
/**********************************************************************************************/
/************************************************************
--basic info:
************************************************************/
uname -Mu
uname -p # 顯示晶片名稱,例如:powerpc
uname -r # 顯示作業系統的發行號
uname -s # 顯示系統名,例如:AIX
uname -n # 顯示節點名
uname -a # 顯示系統名、節點名、版本、機器ID
uname -M # 顯示型號,例如:,7046-B50
uname -v # 顯示作業系統版本
uname -m # 顯示機器ID
hostname
df -k
which
java -version
lsfs
smit chlicense 作業系統使用者數
lsdev -CHc adapter 適配卡 (Adapter)
sysdumpdev -l Dump 裝置
lsvg -p
lsdev -CHc disk 硬碟(7133硬碟pdiskIBM)
lsattr -El hdisk0
lspv -l hdisk0
檢視當前系統的詳細配置:
lscfg -pv
也可以顯示某一裝置的配置:
lscfg -vl rmt0
改變檔案系統大小,例如:將/usr檔案系統增加1000000位元組:
chfs -a size=+1000000 /usr
mount CD:
mount -V cdrfs -o ro /dev/cd0 /cdrom
顯示屬於rootvg的所有硬碟:
lsvg -p rootvg
檢視本機的IP地址:
Ifconfig -a
或
host Fully_Qualified_Host_Name
例如:host cyclop.austin.ibm.com
查詢哪一個檔案集(fileset)包含特定的檔案,
例如:查詢/usr/bin/vmstat屬於哪一個檔案集。
lslpp -w /usr/bin/vmstat
顯示哪一個檔案集包含/usr/bin/svmon:
Which_fileset svmon
顯示哪些檔案集需要或修改:
lppchk -v
/************************************************************
--os version,release,ML,package,patch:
--PTF用installp安裝,APAR用instfix安裝
************************************************************/
oslevel -s
lslpp -h bos.rte
instfix -i |grep ML
smitty installp
lslpp -ciq 列出系統上安裝的IBM軟體
lslpp -l | grep 'bos.adt.base'
lslpp -l | grep 'bos.adt.lib'
lslpp -l | grep 'bos.adt.libm'
lslpp -l | grep 'bos.perf.libperfstat'
lslpp -l | grep 'bos.perf.perfstat'
lslpp -l | grep 'bos.perf.proctools'
echo "#lslpp -l | grep 'rsct.'"
lslpp -l | grep 'rsct.basic.rte'
lslpp -l | grep 'rsct.compat.clients.rte'
lslpp -l | grep 'xlC.aix50.rte'
lslpp -l | grep 'xlC.rte'
lslpp -l | grep cluster
instfix -i | grep 'All filesets for IY' | grep 'IY58143'
instfix -i | grep 'All filesets for IY' | grep 'IY59386'
instfix -i | grep 'All filesets for IY' | grep 'IY60930'
instfix -i | grep 'All filesets for IY' | grep 'IY66513'
instfix -i | grep 'All filesets for IY' | grep 'IY70159'
instfix -i | grep 'All filesets for IY' | grep 'IY68989'
instfix -i | grep 'All filesets for IY' | grep 'IY68874'
instfix -i | grep 'All filesets for IY' | grep 'IY70031'
安裝補丁集:
#/usr/sbin/instfix -a -ivk IY22854
檢視哪些檔案集沒有打到相應的maitenance level:
instfix -icqk 5100-02_AIX_ML |grep ":-:" 或
oslevel -rl 5100-02
installp命令
安裝在bos.net 軟體包中的所有的filesets到/usr/sys/inst.images:
#installp avX d /usr/sys/inst.images bos.net
清除一箇中斷的安裝和刪除所有沒有完成的安裝
installp C
提交安裝(commit):
installp cgx 或 smitty install_commit
刪除所有未committed的在./reject.list中的updates,同時將系統帶回到以前的maintenance level:
installp rBfx ./reject.lis 或 smitty install_reject
刪除一個安裝的軟體:
installp ugp V2 bos.net.ipsec.rte 或 smitty install_remove
列示介質上的所有軟體:
installp L d /dev/cd0
/************************************************************
--paging space info:
--other related commands:mkps、chps、rmps、swapon
************************************************************/
/usr/sbin/lsps -s
/usr/sbin/lsps -a
/************************************************************
--cpu:
************************************************************/
lsdev -C | grep -i processor|wc -l
lsattr -El proc0
lsattr -El proc*
lscfg | grep proc
prtconf | more
prtconf -c
prtconf -s
#pmcycles命令僅僅在被bos.pmapi支援的處理器上才被支援。從aix 5.1開始在bos.pmapi.pmsvcs包中。
pmcycles
pmcycles -m
/************************************************************
--memory:
************************************************************/
bootinfo -r
lsdev -C |grep mem
lsdev -CHc memory
lsattr -El mem0
lsattr-Elmem*
/usr/sbin/lsattr -E -l sys0 -a realmem
getconf REAL_MEMORY
prtconf | more
prtconf -m
svmon -P -t n -i m 每m秒鐘按降序列出前n個最耗記憶體程式;有利於找出記憶體洩露的應用。
/************************************************************
--aio:
************************************************************/
#lslpp -l bos.rte.aio AIX的非同步IO需要bos.rte.aio檔案集的支援
lsdev -Cc aio
如何啟用AIO:
mkdev -l posix_aio
#mkdev -l aio0
aio0 Available
#chdev -P -l aio0 -a autoconfig='available'
aio0 changed
如果需要將POSIX AIO 核心擴充套件函式庫在系統啟動時自動載入,可用:
smit chgposixaio
將選單中的選項"State to be configured at system restart" 由 "defined"改為 "available",按下Enter鍵後即可生效。
對於AIX傳統的AIO,可透過
smit chgaio
以相同方法修改選單中的選項。
檢視aio的配置資訊:
#lsattr -El aio0
autoconfig available STATE to be configured at system restart True
fastpath enable State of fast path True
kprocprio 39 PRIORITY True
maxreqs 4096 Maximum number of REQUESTS True
maxservers 10 MAXIMUM number of servers per cpu True
minservers 1 MINIMUM number of servers True
其中,maxreqs表示同一時刻所允許的非同步 I/O 請求,包括已經在處理的非同步 I/O 請求和等待處理的非同步 I/O 請求。
maxservers和minservers引數指定了用於處理非同步IO的程式數。預設的maxservers=10對於大多數系統來說,應該已經
足夠了,這兩個引數都是針對檔案系統等的aio的,而raw裝置的非同步IO直接由核心程式完成,不依賴aioserver。
autoconfig必須設定為available才會在下次啟動時自動啟用AIO。
透過如下命令可以查詢系統當前aioserver的個數,如果已經達到或者接近maxservers,則需要考慮增加該引數。
#pstat -a | grep aios | wc -l
從AIX5.2開始,支援兩種模式的AIO,一種是傳統模式的,一種是posix的
#pstat -a | grep aio
40 a 28088 1 28088 0 0 1 posix_aioserver
67 a 43002 1 43002 0 0 1 aioserver
在AIX平臺上安裝的時候要求必須開啟AIO,在rootpre.sh指令碼中包含了啟動AIO的程式碼
# Asynchronous I/O
echo "Configuring Asynchronous I/O..." | tee -a $LOG
aio=`lsdev -C -t aio|awk '{print $2}'`
case $aio in
*Available*) echo "Asynchronous I/O is already defined" | tee -a $LOG
;;
*Defined*) mkdev -l aio0 | tee -a $LOG
chdev -P -l aio0 -a autoconfig='available'
;;
*) echo "Asynchronous I/O is not installed on this system." >> $LOG
cat << END
Asynchronous I/O is not installed on this system.
You will need to install it, and either configure it yourself using
'smit aio' or rerun the Oracle root installation procedure.
END
;;
esac
如何刪除AIO:
AIO是由核心提供支援的,首先將autoconfig改為defined然後重啟系統
#chdev -P -l aio0 -a autoconfig='defined'
如果使用rmdev -dl aio0徹底刪除了aio0的定義,則再次使用mkdev -l aio0的時候可能遭遇以下錯誤:
mkdev: 0514-519 The following device was not found in the customized
device configuration database:
name = 'aio0'
這時需要先定義裝置,才能新增裝置,定義aio0裝置可以透過smit aio選擇Configure Defined Asynchronous I/O。
/************************************************************
--user resource limitation:
************************************************************/
pg /etc/security/limits
ulimit -Ha
ulimit -a
lsattr -El sys0|grep maxuproc
chdev -l sys0 -a maxuproc='5000'
/************************************************************
--kernel info:
************************************************************/
/usr/sbin/bootinfo -b 檢測上次正確引導的裝置
/usr/sbin/bootinfo -K 檢視系統核心 作業系統核心(ls -l /boot/unix)
/usr/sbin/bootinfo -y 檢視系統硬體所能支援的核心,處理器位數
/usr/sbin/bootinfo -p 檢視機器是否支援64位核心,如果返回的是chrp,則表示硬體是64位的機器
/usr/sbin/bootinfo -r 檢視系統記憶體
/usr/sbin/bootinfo -e 檢視系統能否從磁帶啟動,1為可以,0為不能
/unix檔案連線到一個可引導的映像。透過命令ls -l /unix檢視:
/unix -> /usr/lib/boot/unix_up # 32 bit uniprocessor kernel
/unix -> /usr/lib/boot/unix_mp # 32 bit multiprocessor kernel
/unix -> /usr/lib/boot/unix_64 # 64 bit multiprocessor kernel
prtconf -k 系統核心
prtconf -c cpu位數 硬體位數
getconf HARDWARE_BITMODE
getconf KERNEL_BITMODE
lslpp -L | grep 64bit
genkex | grep call
genkex | grep 64
[sj85_1][/]#bootinfo -y
64
[sj85_1][/]#bootinfo -K
32
[sj85_1][/]#lsattr -El proc0
state enable Processor state False
type PowerPC_RS64-III Processor type False
-y 顯示的是硬體的位數
-K 顯示的是作業系統的位數
上面的輸出例子是64位的機器用了32位的核心的作業系統
可以把64位ENABLE起來,不過輕易不要這麼做!
1.需要的檔案集
bos.64bit是基本作業系統中構成64位執行環境的檔案集。如果系統中未安裝bos.64bit檔案集,將沒有/etc/methods/cfg64檔案。
若/etc/methods/cfg64檔案不存在,則SMIT選單中將沒有允許或禁止64位環境的選項。 可使用命令lslpp -l bos.64bit檢視該
檔案集是否已被安裝。若未安裝,則可從AIX4.3.3的安裝盤中加裝該檔案集。但安裝了該檔案集並不能保證系統就能夠執行64
位應用,系統是否能執行64位應用還取決於硬體環境。安裝了bos.64bit檔案集的32位機器上,雖然能夠編譯64位應用程式,但
卻不能執行該應用。
2.硬體要求
要執行64位應用,必須要具備64位的硬體環境。在AIX4.3.3中,使用下述步驟確定系統是32位還是64位的硬體結構:
(1)以root使用者身份登入
(2)執行命令:
# bootinfo -y
上述命令返回32或64,對應系統硬體結構為32位或64位。
另外,可以在任何版本的AIX中使用命令:
# lsattr -El proc0
該命令將返回系統處理器的型別。64位處理器的型別列示如下:
PowerPC_RS64
PowerPC_RS64 II
PowerPC_RS64 III
PowerPC_Power3
PowerPC_Power3 II
可以對應上面的型別列表確定系統的硬體結構是32位還是64位。
3.核心擴充套件與64位核心
確定系統是否載入了64位的核心擴充套件,使用命令:
# genkex |grep 64
若系統載入了64位的核心擴充套件,將返回類似下一行的資訊:
149bf58 a3ec /usr/lib/drivers/syscalls64.ext
但載入了64位的核心擴充套件並不說明該系統的核心為64位,只有從AIX5.1開始才有64位核心。64位核心擴充套件只是允許在32位核心中
編譯64位應用。如果32位核心具有64位處理器,則syscalls64.ext檔案集將允許執行64位應用。但在AIX5.1中,64位的核心和64位
的處理器將使64位的應用具有更好的效能。
在AIX5.1中,將32位的核心改為64位的核心,可以執行下述命令:
# ln -sf /usr/lib/boot/unix_64 /unix
# ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix
# lslv -m hd5
# bosboot -ad /dev/<啟動硬碟名>
# shutdown -Fr
在AIX5.1中,將64位的核心改為32位的核心,可以執行下述命令:
# ln -sf /usr/lib/boot/unix_mp /unix
# ln -sf /usr/lib/boot/unix_mp /usr/lib/boot/unix
# lslv -m hd5
# bosboot -ad /dev/<啟動硬碟名>
# shutdown -Fr
4.32位與64位的相容性
大多數情況下,在64位的硬體結構上執行32位的應用是沒有問題的,因為64位的硬體相容64位及32位的軟體。但是,32位的硬體上不能執行64位的軟體。
而且,AIX 4.3.3上的32位應用可直接執行於AIX 5.1上,但AIX 4.3.3上的64位應用必須在AIX 5.1上經過重新編譯後才可執行。
vmtune/vmo -a | grep 'perm'
vmtune/vmo -a | grep 'client'
#vmtune/vmo -p 15 -P 30
vmo:
minfree = "1440″
maxfree = "1536″
maxperm% = "20″
maxclient% = "20″
minperm% = "5″
v_pinshm = "1″
ioo:
j2_nBufferPerPagerDevice = "512″
vmtune 樣本程式正在逐漸淘汰,將來的發行版將不支援該樣本程式。它會被 vmo 命令(對於所有的純 VMM 引數)和 ioo 命令(對於所有與 I/O 有關的引數)
所替代,這兩個命令能用於設定先前由 vmtune 設定的大部分引數。-v 標誌已經新增到 vmstat 以替換 -A標誌,-A 標誌顯示計數器值而不是調整引數。
對於AIX 5.2,為了幫助過渡提供了一個呼叫 vmo 和 ioo 的相容性指令碼。
/************************************************************
--network configuration:
************************************************************/
no -a | grep 'rfc1323'
no -a | grep 'ipqmaxlen'
no -a | grep 'sb_max'
no -a | grep 'udp_sendspace'
no -a | grep 'udp_recvspace'
no -a | grep 'tcp_sendspace'
no -a | grep 'tcp_recvspace'
routerevalidate = "1″
tcp_finwait2 = "240″
tcp_recvspace = "262144″
tcp_sendspace = "262144″
rfc1323 = "1″
netstat -s | grep "socket buffer overflows"
/************************************************************
--raw device:
************************************************************/
# sar -b 1 3
AIX 6f1 3 4 00023A0F4C00 06/19/02
18:16:30 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
18:16:31 0 0 0 0 0 0 0 0
18:16:32 0 0 0 0 0 0 0 0
18:16:33 0 0 0 0 0 0 0 0
Average 0 0 0 0 0 0 0 0
其中bread/s 和bwrit/s顯示了塊裸裝置(block raw device)I/O操作的數目。pread/s 和pwrit/s顯示了字元裸裝置(character raw device)I/O操作的數目。
/****************************************************************************************************/
/*********************************************installation*******************************************/
/****************************************************************************************************/
/usr/sbin/lsattr -E -l sys0 -a realmem
/usr/sbin/lsps -a
oslevel -r
5.1(5L) required patches/packages:
instfix -i | grep 'All filesets for IY' | grep 'IY26778'
instfix -i | grep 'All filesets for IY' | grep 'IY28766'
instfix -i | grep 'All filesets for IY' | grep 'IY28949'
instfix -i | grep 'All filesets for IY' | grep 'IY29965'
instfix -i | grep 'All filesets for IY' | grep 'IY30150'
instfix -i | grep 'All filesets for IY' | grep 'IY59082'
instfix -i | grep 'All filesets for IY' | grep 'IY22854'
lslpp -l | grep 'bos.adt.base'
lslpp -l | grep 'bos.adt.lib'
lslpp -l | grep 'bos.adt.libm'
lslpp -l | grep 'bos.perf.perfstat'
lslpp -l | grep 'bos.perf.libperfstat'
set AIXTHREAD_SCOPE=S in the environment:
export AIXTHREAD_SCOPE=S
IY26778(5100-01)
IY28766(5100-01)
IY28949(5100-01)
IY29965(5100-02)
IY30150(5100-02)
IY59082 refer to Note 285158.1
Maint Level 1 and IY22854
bos.adt.base
bos.adt.lib
bos.adt.libm
bos.perf.perfstat
bos.perf.libperfstat
Oracle Environment ORACLE_BASE=/u01/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/9.2; export ORACLE_HOME
ORACLE_SID=ora9; export ORACLE_SID
ORACLE_TERM=vt100; export ORACLE_TERM
NLS_LANG=american_america.zhs16gbk; export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib; export LD_LIBRARY_PATH
LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib; export LIBPATH
CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/JRE/lib/rt.jar:$ORACLE_HOME/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
PATH=/usr/java14/jre/bin:$ORACLE_HOME/bin:$PATH; export PATH
AIXTHREAD_SCOPE=S;export AIXTHREAD_SCOPE #aix 4.3以及5.1;在Aix 5.2以上,Note 259983.1
NUM_SPAREVP=1;export NUM_SPAREVP #aix 4.3以及5.1;在Aix 5.2以上,Note 259983.1
1、需要修改使用者能開啟的最大程式數目
預設每個使用者最大隻能開啟128個程式數目,而oracle使用者一般需要開啟上千個程式。
#chdev -l sys0 -a maxuproc=’2000′
sys0 changed
以上修改,可以透過如下命令來檢視
#lsattr -El sys0
2、修改使用者限制
主要是Oracle使用者,可以透過如下命令檢視當前限制
$ulimit -a
time(seconds) unlimited
file(blocks) 4194302
(kbytes) unlimited
stack(kbytes) 4194304
memory(kbytes) unlimited
coredump(blocks) 4194302
nofiles(descriptors) 4000
具體資訊可以參考如下檔案
#more /etc/security/limits
……
default:
fsize = 2097151
core = 2097151
cpu = -1
data = 262144
rss = 65536
stack = 65536
nofiles = 2000
……
oracle:
fsize = 4194302
core = 4194302
data = -1
rss = -1
stack = -1
nofiles=4000
注意,-1是無限制
要修改如上限制,可以採用命令如
#chuser data=’-1′ rss=’-1′ stack=’-1′ oracle
#chuser nofiles=4000 oracle
或者是smit chuser來操作
3、修改系統引數
主要是效能需要記憶體
#vmo -p -o v_pinshm=1 #Oracle需要,pin住SGA的需要
#vmo -p -o minperm%=5 #百分比% ,檔案系統cache最小記憶體使用
#vmo -p -o maxclient%=20 #百分比% ,jfs2與nfs最大檔案系統cache使用
#vmo -p -o maxperm%=20 #百分比% ,普通檔案系統最大檔案系統cache使用
#vmo -p -o minfree=1200 #120*cpu個數 ,記憶體空閒
#vmo -p -o maxfree=1280 #128*cpu個數 ,記憶體空閒
記憶體管理可選
#vmo -p -o strict_maxperm=0 #預設是0,建議不要改到1,1為硬限制,可能會觸發bug
#vmo -p -o strict_maxclient=0 #預設1,可以改為0,一般不改
檔案系統
#ioo -p -o j2_nBufferPerPagerDevice=512
ha的需求,HA情況下建議修改,但也不是強行要求
#no -p -o routerevalidate=1
#no -p -o tcp_finwait2=240
#no -p -o tcp_recvspace=262144
#no -p -o tcp_sendspace=262144
#no -p -o rfc1323=1
其中,-p表示修改對當前與重新啟動生效,如果只能重新啟動或者重新連線生效的,將提示重起或者重新連線後生效,
如果是-r引數,則表示只是重新啟動後生效。修改結果可以參考檔案
#more /etc/tunables/nextboot
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# bos520 src/bos/usr/sbin/perf/tune/nextboot 1.1
#
# Licensed Materials - Property of IBM
#
# (C) COPYRIGHT International Business Machines Corp. 2002
# All Rights Reserved
#
#
US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
# IBM_PROLOG_END_TAG
vmo:
minfree = "1440″
maxfree = "1536″
maxperm% = "20″
maxclient% = "20″
minperm% = "5″
v_pinshm = "1″
ioo:
j2_nBufferPerPagerDevice = "512″
no:
routerevalidate = "1″
tcp_finwait2 = "240″
tcp_recvspace = "262144″
tcp_sendspace = "262144″
rfc1323 = "1″
4、設定AIXTHREAD_SCOPE=S
控制爭用作用域。P 意味著基於程式的爭用作用域(M:N)。S 意味著基於系統的爭用作用域(1:1)。
echo $AIXTHREAD_SCOPE(這是由內部開啟的,因此初始的預設值不可以由命令 echo 看到)
AIXTHREAD_SCOPE={P|S},用命令export AIXTHREAD_SCOPE = {P|S} 更改會在 shell 中立即生效。在退出這個 shell 之前一直有效。
當加上命令 AIXTHREAD_SCOPE={P|S} 到檔案 /etc/environment 時會產生持久的變化。
在ORACLE 9i Aix 4.3 or Aix 5.1的環境下,設定該變數可以大幅度的減少程式記憶體的使用量,在Aix 5.2以上,請參考另外一種方法,
IY49415 Oracle patch p3028673,詳細資訊參考oracle bug 3028673,Note 259983.1。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-498325/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- UNIX(IBM AIX)系統基礎知識(轉)IBMAI
- AIX基礎教程(zt)AI
- AIX基礎日誌AI
- 作業基礎管理(轉載)
- 轉載《Data Guard Broker基礎》
- [轉載]Aix vmstat命令解析AI
- 基礎統計技術(轉載)
- 質量管理基礎工作(轉載)
- 資產價值基礎法(轉載)
- aix基礎常用命令AI
- 【IBM-AIX】-aix恢復root密碼IBMAI密碼
- IBM Rational Asset Manager 基礎安全IBM
- 79、 android基礎教程整理 (轉載)Android
- 轉載--常見hints的基礎用法
- IBM RS/6000 AIX作業系統的安裝(轉)IBMAI作業系統
- 執行緒的基礎知識(轉載)執行緒
- IBM AIX日常維護命令IBMAI
- 快速透視 AIX 系統 (轉載)AI
- IBM AIX下的lru_file_repage引數解釋(轉)IBMAI
- Yii2.0 RESTful API 基礎配置教程[轉載]RESTAPI
- IBM /AIX 環境快速部署MySQLIBMAIMySql
- ibm aix 5.3學習筆記IBMAI筆記
- IBM_AIX系統日常管理IBMAI
- aix下新增ftp使用者(轉載)AIFTP
- 基於IBM AIX系統安裝oracle 11g R2IBMAIOracle
- IBM AIX儲存層結構分析+aix常用命令IBMAI
- 微軟核心基礎架構最佳化CIO(轉載)微軟架構
- IBM的過程質量管理(轉載)IBM
- zt_ibm_為 AIX 配置 InfinibandIBMAI
- IBM AIX RISC System/6000 Error: 1: Not ownerIBMAIError
- shell基礎(轉)
- ODBC 基礎(轉)
- PKI基礎 (轉)
- vb基礎 (轉)
- Java基礎 - 類載入Java
- IBM AIX 5L ipsec總結IBMAI
- IBM的AIX記憶體管理機制IBMAI記憶體
- 【AIX】IBM power5 hmc配置固定ipAIIBM