核心aio AIO 的主要核心引數 學步園

2021-10-17 00:11:16 字數 1457 閱讀 7100

在 aix6.1 中,使用 ioo 命令可以檢視與 aio 相關的核心引數。

# ioo -f -a |grep -i aio

aio_maxreqs = 131072

aio_maxservers = 30

aio_minservers = 3

kproc 的最小值由系統引數 minservers 決定,最大值由系統引數 maxservers 決定。如果非同步 i/o 請求的數量很多,就需要將 maxservers 的數值增大。由於 aix 核心可以自動生成額外的 kproc,因此在大多數情況下,minservers 的數值不需要手動調整。需要注意的是,minservers 和 maxservers 兩個引數只對檔案系統有效,對於 aio 的裸裝置模式以及 cio 的模式是無效的,這兩種 i/o 由 fastpath 來處理,而不是 kproc。

在 aix6.1 中,aio_maxservers 和 aio_minservers 的預設數值分別為 30 和 3,一般認為這兩個數值是每個 cpu 的 aio server 數量設定。

aix6.1 中的 maxreqs 引數決定 aio 系統裡可以處理最多併發 i/o 請求的數量。這個引數對於 fast path 的 i/o 型別是不起作用的。我們在調整 minservers 和 maxservers 引數時,也需要監控 maxreqs 數值。

在 aix6.1 中,可以用如下命令檢視執行的 aio server 的數量:

# pstat -a |grep -c aios |wc -l

# ioo -f -a |grep -i aio_minservers

aio_minservers = 3

# pstat -a |grep -c kproc |wc -l

從上面結果可以看出,目前系統中的 aio 請求很少,只有乙個 aio server 在執行。而 aio server 的數量與 kproc 的數量,是一致的。

在系統中,如果 maxreqs 和 maxservers 設定的太低低,可能會造成資料庫報錯或者宕機,檢視 oracle 的 bdump 檔案可以發現如下報錯:

一般情況下,執行的 aio server 數量不會低於 aio_minservers 引數的設定,在上面的例子中,之所以出現 aio server 的數量低於 aio_minservers 引數設定的數值,是因為該系統是乙個空閒的系統,沒有任何負載和 aio 請求。aio_server_inactivity 在 aix6.1 中一般不需要設定。

aio_active 引數不需要設定,預設為 0。只有當 aio kernel extensors 被使用時,才會變成 1。

# ioo -a | grep active

aio_active = 0

posix_aio_active = 0

# ioo -o aio_active=1

ioo: 1485-114 static tunable aio_active cannot be changed

核心aio AIO 的主要核心引數

在 aix6.1 中,使用 ioo 命令可以檢視與 aio 相關的核心引數。ioo f a grep i aio aio maxreqs 131072 aio maxservers 30 aio minservers 3 kproc 的最小值由系統引數 minservers 決定,最大值由系統引數 ...

核心主要常數

1 系統最大程序數 系統最大程序 任務 數為64。2 程序的執行狀態 define task running 0 程序正在執行或已準備就緒。define task interruptible 1 程序處於可中斷等待狀態。define task uninterruptible 2 程序處於不可中斷等待...

linux核心的主要模組

linux系統從應用角度來分,分為核心空間和使用者空間兩部分。linux核心主要有5個子系統組成 程序排程 記憶體管理 虛擬檔案系統 網路介面 程序間通訊。1.程序排程sched 程序排程指的是系統對程序的多種狀態之間轉換的策略。linux下的程序排程有3種策略 sched other sched ...