AIX 7.3TL2SP1 の新しいチューニング値とvfcstatコマンドの確認

#### はじめに

2023/11 に AIX 7.3 TL2 がリリースしています。

AIX 7.3 TL1 と比較した新しいチューニング値とコマンドを確認しました。 


<br>

<font color="CadetBlue">※ 当記事は、個人による確認メモです。</font>

---

#### 環境

AIX 7.3 TL2 SP1 


```
# oslevel -s
7300-02-01-2346
```

末尾の 2346 は2023年の 第46 週目という意味です。

---

#### チューニング値の確認

:::note info

確認方法

AIX 7.3 TL1 と AIX7.3 TL2 で下記のチューニングコマンドの出力の差異を確認しました。

・ioo -FL
・no -FL
・vmo -FL
・raso -FL
・schedo -FL
・nfso -FL
・asoo -FL
:::


<br>

---

##### 1. roce_v2_mode (network)


no(network option) で roce_v2_mode が新たに追加されているようです。

```
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE     
roce_v2_mode              0      0      0      0      1      boolean           R
```


コマンドヘルプを確認

```
# no -h roce_v2_mode
Help for tunable roce_v2_mode:
Purpose:
Enables RoCEv1 or RoCEv2 mode in OFED and device driver.

Values:
        Default: 0
        Range: 0 - 1
        Type: Reboot
        Unit: boolean
Tuning:
A value of 1 enables RoCEv2 mode. A value of 0 enables RoCEv1 mode. Default is RoCEv1.
```

AIX 7.3TL2 でサポートされた機能に紐づくチューニング値です。


https://www.ibm.com/docs/ja/aix/7.3?topic=access-rdma-over-converged-ethernet-roce-version-2

> AIX® バージョン 7.3(テクノロジー・レベル 2) 以降、 AIX オペレーティング・システムは RoCE バージョン 2 (RoCE v2) をサポートします。

> RoCE は、イーサネット・ネットワークを介したリモート・ダイレクト・メモリー・アクセス (RDMA) を有効にするネットワーク・プロトコルです。 RoCE プロトコルの 2 つのバージョンは、 RoCE バージョン 1 (RoCE v1) と RoCE v2です。 RoCE v2 プロトコル・パケットはサブネット間を移動できますが、 RoCE v1 プロトコル・パケットはサブネット間を移動できません。 RoCE v1 プロトコルは、同じイーサネット・ブロードキャスト・ドメイン内にあるホスト間の通信を可能にします。 RoCE v2 プロトコル・パケットは、IP レイヤー 3 (L3) ルーターのトラバーサルを可能にする Internet Protocol (IP) ヘッダーを伝送します。 RoCE v2 プロトコル・パケットには、IP を介した RDMA トランスポート・プロトコル・パケットのステートレス・カプセル化層として機能する User Datagram Protocol (UDP) ヘッダーも含まれます。 RoCE v2 プロトコルは、IP Routable RoCEとも呼ばれます。



<br>

---

##### 2. hash_instructions (scheduler)


schedo で hash_instructions が新たに追加されているようです。

```
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE     
hash_instructions         0      0      0      0      1      boolean           D
```

コマンドヘルプを確認

```
# schedo -h hash_instructions
Help for tunable hash_instructions:
Purpose:
Enable Return Oriented Programming(ROP) protection instructions
supported by Power 10 and above.
Values:
        Default: 0
        Range: 0, 1
        Type: Dynamic
        Unit: boolean
Tuning:
A value of 0 indicates that new processes will have hash instructions disabled.
A value of 1 indicates that new processes will have hash instructions enabled.
#
```

<br>


----


##### 3. large_page_exclusive (Active System Optimizer) 


asoo で large_page_exclusive が新たに追加されているようです。

```
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE     
large_page_exclusive      1      1      1      0      1      boolean           D
```

コマンドヘルプを確認

```
# asoo -h large_page_exclusive
Help for tunable large_page_exclusive:
Purpose:
Enables thread profiling based large page promotion optimization and disables all others.
Values:
        Default: 1
        Range: 0, 1
        Type: Dynamic
        Unit: boolean
Tuning:
A value of 1 indicates exclusive enablement of thread profiling based large page optimization. A value of 0 indicates enablement of all applicable optimizations.
#

```

<br>


##### 4. /etc/tunables/usermodified

/etc/tunables/usermodified が追加されているとのことです。

```

# ls -l /etc/tunables
total 88
-rw-------    1 root     system        26995 Dec 02 02:14 lastboot
-rw-r--r--    1 root     system          889 Dec 02 02:07 lastboot.log
-rw-------    1 root     system          419 Apr 21 2023  nextboot
-rw-------    1 root     system          419 Apr 21 2023  nextliveupdate
-rw-------    1 root     system          585 Dec 02 02:14 usermodified    #<- これ
```

```
# cat /etc/tunables/usermodified
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# bos73D src/bos/usr/sbin/perf/tune/usermodified 1.1
#
# Licensed Materials - Property of IBM
#
# COPYRIGHT International Business Machines Corp. 2023
# 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

schedo:
        krlock_enable = "1"
        krlock_spinb4confer = "640"
        magnetic_wakeup = "-1"
        hash_instructions = "1"
        ppid_for_kproc = "1"

ioo:
        j2_syncPageLimit = "16"

raso:
#
````

特に編集はしていないデフォルトの状態で上記の表示結果でした。


<br>
<br>


----

#### コマンドにおける新機能


2023年11月に追加されている内容がTL2に反映されていると考えられます。
上で確認した、schedl の hash_instructions なども含まれています。

https://www.ibm.com/docs/ja/aix/7.3?topic=commands-whats-new


##### vfcstat コマンドの確認

1点、vfcstat コマンドが気になったので取り上げます。

> 仮想ファイバー・チャネル・クライアント・アダプターに関する情報を表示する vfcstat コマンドに関する情報が追加されました。

AIX 7.2 には存在していないコマンドのようです。


https://www.ibm.com/docs/ja/aix/7.3?topic=ssw_aix_73/v_commands/vfcstat.htm


NPIV の場合に、仮想ファイバー・チャネル・クライアント・アダプターの統計情報を取得できます。


```
# oslevel -s
7300-02-01-2346
#

# vfcstat -l
fcs0
fcs1
fcs2
fcs3
#


# vfcstat -d fcs0 -s
Current time                    : Dec  2 2023, 02:51:10.135
Time since last reset           : 2737 sec ( 45 minutes 37 seconds )

SCSI Queue #1
    Read reqs                   : 14
    Read bytes                  : 6423
    Write reqs                  : 2
    Write bytes                 : 52
    No DMA res count            : 0
    No SGE count                : 0
    h_send_dropped              : 0
    h_send_closed               : 0
    h_send_busy                 : 0
    No cmd res count            : 0
    no_adap_elems_cnt           : 0

SCSI Queue #2
    Read reqs                   : 58
    Read bytes                  : 21823
    Write reqs                  : 2
    Write bytes                 : 56
    No DMA res count            : 0
    No SGE count                : 0
    h_send_dropped              : 0
    h_send_closed               : 0
    h_send_busy                 : 0
    No cmd res count            : 0
    no_adap_elems_cnt           : 0

SCSI Queue #3
    Read reqs                   : 31
    Read bytes                  : 39793
    Write reqs                  : 2
    Write bytes                 : 56
    No DMA res count            : 0
    No SGE count                : 0
    h_send_dropped              : 0
    h_send_closed               : 0
    h_send_busy                 : 0
    No cmd res count            : 0
    no_adap_elems_cnt           : 0

SCSI Queue #4
    Read reqs                   : 28
    Read bytes                  : 13649
    Write reqs                  : 2
    Write bytes                 : 56
    No DMA res count            : 0
    No SGE count                : 0
    h_send_dropped              : 0
    h_send_closed               : 0
    h_send_busy                 : 0
    No cmd res count            : 0
    no_adap_elems_cnt           : 0

SCSI Queue #5
    Read reqs                   : 34
    Read bytes                  : 16213
    Write reqs                  : 2
    Write bytes                 : 56
    No DMA res count            : 0
    No SGE count                : 0
    h_send_dropped              : 0
    h_send_closed               : 0
    h_send_busy                 : 0
    No cmd res count            : 0
    no_adap_elems_cnt           : 0

SCSI Queue #6
    Read reqs                   : 3998
    Read bytes                  : 68173150
    Write reqs                  : 2356
    Write bytes                 : 21595164
    No DMA res count            : 0
    No SGE count                : 0
    h_send_dropped              : 0
    h_send_closed               : 0
    h_send_busy                 : 0
    No cmd res count            : 0
    no_adap_elems_cnt           : 0

SCSI Queue #7
    Read reqs                   : 0
    Read bytes                  : 0
    Write reqs                  : 0
    Write bytes                 : 0
    No DMA res count            : 0
    No SGE count                : 0
    h_send_dropped              : 0
    h_send_closed               : 0
    h_send_busy                 : 0
    No cmd res count            : 0
    no_adap_elems_cnt           : 0

SCSI Queue #8
    Read reqs                   : 0
    Read bytes                  : 0
    Write reqs                  : 0
    Write bytes                 : 0
    No DMA res count            : 0
    No SGE count                : 0
    h_send_dropped              : 0
    h_send_closed               : 0
    h_send_busy                 : 0
    No cmd res count            : 0
    no_adap_elems_cnt           : 0

#
````




----

#### おわりに


AIX7.3 TL1 と TL2 では大幅な機能の違いはないようでしたが、vfcstat コマンドは知らなかったので収穫でした。



ご参考まで、以上です。