AIX常用命令與參數調整
UNIX中的netstat可用來判斷網絡緩存區急用的情況,例如netstat中關於queue的overflow信息。這些信息可表明TCP,UDP隊列的相關狀態。
AIX提供了no命令來設置網絡的相關內核配置。
www.2cto.com
在啟動某個進程時,VMM需要為該進程分配虛擬內存空間,以存放進程的數據和結構。這時,VMM維護了一個未分配虛擬內存頁幀的空閒列表,該列表用來處理系統中的進程缺頁問題。
AIX中,VMM的參數設置可以通過vmo命令得到
# vmo -a
VMM會將內存段劃分為兩類:計算段(工作段)和文件段(持久段)。文件段使用文件內存,而計算段則使用計算性內存。對對數據庫來說,數據庫啟動時會申請共享內存,這部分內存結構就是計算內存。
對於文件訪問而言,由於文件在磁盤中擁在對應的存儲位置,因此它會被保存在文件段內存中,直到這些頁面轉換或進程消失。即便發生了交換操作,我們還是希望將文件段分布到磁盤中,而不是計算段內存結構中。
大的數據緩存所使用的頁幀鏈表將會非常龐大。為了使用AIX能夠更有效地為應用系統分配數據緩存,並且完成有效的高度,可以設置大的內存頁面結構來提高性能。
默認AIX不分配任何內存到大頁面物理內存上,但可以手工指定,可以支持4KB、64KB、16MB、16GB。
vmo -r -o lgpg_size=16777216 -o lgpg_regions=256
分配了16MB的大內存頁面池,指定了256個。、
如果要為共享內存使用大頁面,還要將AIX的v_pinshm參數設置為1(默認為0),讓VMM可以固安內存池中的頁,以避發生頁面交換。
# vmo -r -o maxpin%=50
# vmo -r -o v_pinshm=1
設置完以後,應用系統、數據庫就可以使用大內存池。如果是在Oracle系統中,可設定LOCK_SGA參數來使Oracle的共享內存“鎖”在內存中,同時,在分配共享內存時請求較大的頁面。
minperm和maxperm需要設定,這兩個參數是VMM內存替換策略中的阈值。當文件頁面占用實際內存的百分比低於minperm時,頁面替換算法將同時替換文件和計算頁面,而忽略重新分布的計算情況。當文件頁面占用實際內存的百比高於maxperm時,頁面替換算法僅替換文件頁面。
因此,這兩個參數可以用來確定AIX系統傾向於使用計算性內存還是文件內存。
設定空閒列表數
AIX中的minfree和maxfree兩個參數,當AIX VMM空閒列表中的頁面數量下降到minfree指定的值以下時,VMM將開始運行lru守護進程,轉換最近尚未使用的頁面。在空閒表增大到maxfree指定的數據目後,頁面轉換操作停止。默認為960和1088(4KB頁面)。
對於一個64位CPU的服務器來說,可以設置為8000(32)、8512(23MB)。
# vmo -p -o maxfree=8512
# vmo -p -o minfree=8000
# mount -o cio /db
/etc/filesystems
options = cio,rw
在訪問裸設備方式的數據庫時,AIX會默認使用異步I/O的方式訪問裸設備,這時的AIO進程是一個核心進程,不需要進行CPU的上下文切換。而當Oracle訪問文件系統的數據文件時,需要調用AIO Server進程,進行CPU的上下切換。采用CIO方式或裸設備方式,還是有微小差別的。
alter system set filesystemio_options=setall scope=spfile;
[aix202:root:/]vmstat 2 30
System configuration: lcpu=4 mem=3648MB
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
2 0 274445 593091 0 0 0 0 0 0 7 403425 8126 35 16 49 0
2 0 274445 593090 0 0 0 0 0 0 8 404238 8182 35 16 48 0
1 0 274445 593089 0 0 0 0 0 0 8 406472 8182 35 16 48 0
1 0 274445 593088 0 0 0 0 0 0 8 406185 8182 35 16 48 0
1 0 274445 593087 0 0 0 0 0 0 8 406494 8193 35 16 48 0
1 0 274576 592951 0 0 0 0 0 0 46 406253 8184 35 17 47 1
2 0 274576 592950 0 0 0 0 0 0 9 406070 8180 35 16 48 0
2 0 274575 592950 0 0 0 0 0 0 10 407277 8178 35 16 48 0
2 0 274575 592949 0 0 0 0 0 0 9 404805 8172 35 16 49 0
2 0 274575 592948 0 0 0 0 0 0 11 406614 8134 35 16 48 0
2 0 274575 592948 0 0 0 0 0 0 5 405990 8127 35 16 49 0
2 0 274575 592948 0 0 0 0 0 0 6 406388 8134 35 16 48 0
2 0 274574 592949 0 0 0 0 0 0 6 408020 8165 35 16 49 0
1 0 274574 592949 0 0 0 0 0 0 8 406316 8142 35 16 48 0
2 0 274574 592949 0 0 0 0 0 0 5 406821 8127 35 16 49 0
1 0 274574 592949 0 0 0 0 0 0 4 404438 8119 35 16 49 0
re列:頁面高度程序輸入輸出列表
fr列:釋放的頁面(替換頁面)
sr列:被頁面替換算法掃描的頁面
cy列:被頁面替換算法使用的時鐘周期
Faults,用於統計每秒鐘發生的陷阱和中斷率的平均值。
in列:設備中斷統計。
sy列:系統調用統計。
cs列:內核線程的上下文切換統計。
[aix202:root:/]iostat 5 5
System configuration: lcpu=4 drives=16 paths=1 vdisks=0
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 11.8 36.1 15.1 48.8 0.0
Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk0 0.0 0.0 0.0 0 0
dac1 0.0 0.0 0.0 0 0
dac1utm 0.0 0.0 0.0 0 0
dac0 0.0 0.0 0.0 0 0
dac0utm 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0
hdisk2 0.0 0.0 0.0 0 0
hdisk3 0.0 0.0 0.0 0 0
hdisk4 0.0 0.0 0.0 0 0
hdisk5 0.0 0.0 0.0 0 0
hdisk6 0.0 0.0 0.0 0 0
hdisk7 0.0 0.0 0.0 0 0
hdisk8 0.0 0.0 0.0 0 0
hdisk9 0.0 0.0 0.0 0 0
hdisk10 0.0 0.0 0.0 0 0
loop0 0.0 0.0 0.0 0 0
tty部分統計了每秒接收自系統上所終端的字條總數,以及每秒輸出到系統上所有夏玉米的字符總數。
tin,系統從所有tty講到的字符總數
tout,寫入所有tty的字符總數
CPU統計了所有處理器的全局平均統計值,會被內核定期更新
tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 599.8 39.5 19.5 20.4 20.6
Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk0 0.0 0.0 0.0 0 0
dac1 0.0 12451.7 3112.9 2812 22496
dac1utm 0.0 0.0 0.0 0 0
dac0 0.0 0.0 0.0 0 0
dac0utm 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0
hdisk2 0.0 0.0 0.0 0 0
hdisk3 0.0 0.0 0.0 0 0
hdisk4 0.0 0.0 0.0 0 0
hdisk5 0.0 0.0 0.0 0 0
hdisk6 0.0 0.0 0.0 0 0
hdisk7 0.0 0.0 0.0 0 0
hdisk8 0.0 0.0 0.0 0 0
hdisk9 97.5 12451.7 3112.9 2812 22496
hdisk10 0.0 0.0 0.0 0 0
loop0 0.0 0.0 0.0 0 0
% iowait,物理磁盤處於活動狀態的百分比。
Kbps,磁盤讀寫的數據量,以Kb/s表示。
Kb_read,被讀取的KB數。