AIX7.3TL3 リリースノートおよび TL2との差異を確認

### はじめに

AIX 7.3 TL3 が 2024年12月にリリースしました。

リリースノートの確認および以前のTL(Technology Level) 2 との差異を実機確認しました。

一個人の実機確認結果であることをご了承いただき、ご覧ください。

---

### 環境

AIX 7.3 TL3 SP0

```
# oslevel -s
7300-03-00-2446
```

TLリリースと同時にSP1 がリリースされることが多いですが、今回は SP1 はまだ出ていませんでした。


---

### リリースノートのAIX 7.3.3 関連記述

[AIX 7.3.3 リリースノート](https://www.ibm.com/docs/ja/aix/7.3?topic=notes-aix-733-release) でTL3 に特化した内容を抜粋します。

--
> AIX仮想イーサネット・ソフトウェア・マルチキュー： AIX® 7.3、技術レベル3以降、AIXは仮想イーサネット・マルチキュー機能を備えている。 

--
> 動的ページ管理：AIX 7.3テクノロジーレベル 3 から、AIXは 64 KB のアプリケーションテキストページを 16 MB ページに昇格させる動的最適化を導入した。

--

> TCPコネクションの動的ソケットバッファサイジング：　AIX 7.3技術レベル 3 以降、AIXは TCP 接続のダイナミック・ソケット・バッファ・サイジング機能をサポートしています。

--
>ライブ・カーネル・アップデート（LKU）の強化

--
>AIX 7.3テクノロジー・レベル 3 から、AIXクラウド対応イメージと同等の「mksysbイメージがIBM® Entitled Systems Support(ESS) からダウンロードできるようになりました。

--
>AIX 7.3テクノロジーレベル3から、OpenSSLのバージョンが3.0.13.1000に更新されました。 

--
>AIX 7.3.3の技術レベル(TL)3から、Python 3.11は'python3.11.baseファイルセットで利用できるようになりました。 

--
>LLUのテクノロジー・プレビュー：AIX 7.3技術レベル 3 から、libc などのAIXライブラリのライブアップデートを可能にする新しいインフラストラクチャの技術プレビューが導入された。

--
> ミラー書き込み整合性統計レポート
>AIX 7.3テクノロジーレベル 3 から、LVM ミラー書き込み一貫性チェック（MWCC）統計のレポートがサポートされるようになりました。 
--





---


以下では実機の値を確認します。AIX7.3 TL2 と AIX 7.3 TL3 での差分比較です。

### tunables 値


##### ioo (入出力チューナブル・パラメーター)


**値の増加**

```
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
--------------------------------------------------------------------------------
aio_delegateiotodriverkth 2      2      2      0      4K     numeric           D
--------------------------------------------------------------------------------
posix_aio_delegateiotodriverkth  2      2      2      0      4K     numeric           D
--------------------------------------------------------------------------------

## Restricted tunables
--------------------------------------------------------------------------------
pcibus_dma_bulkfree       n/a    0      0      0      0      boolean           B
--------------------------------------------------------------------------------
pcibus_dma_bulkfree_dyn_disable n/a    0      0      0      0  boolean  D
--------------------------------------------------------------------------------
pcibus_dma_bulkfree_timer_val n/a    0      0      0      0      seconds     D
--------------------------------------------------------------------------------

```

| 名前                        | 目的                                                                                   |
|-----------------------------|----------------------------------------------------------------------------------------|
| aio_delegateiotodriverkth  | 非同期I/OをVirtual Persistent Memory（vPMEM）ドライバのカーネルスレッドに委譲する閾値を指定します。 |
| posix_aio_delegateiotodriverkth  | 非同期I/OをVirtual Persistent MemoryvPMEM）ドライバのカーネルスレッドに委譲する閾値を指定します。 |
| pcibus_dma_bulkfree  | Restricted tunables(ユーザーによる変更は非推奨) |
| pcibus_dma_bulkfree_dyn_disable  | Restricted tunables(ユーザーによる変更は非推奨) |
| pcibus_dma_bulkfree_timer_val  | Restricted tunables(ユーザーによる変更は非推奨) |


[iooコマンド参考](https://www.ibm.com/docs/ja/aix/7.3?topic=i-ioo-command)

<br>

コマンドにおける新機能
https://www.ibm.com/docs/ja/aix/7.3?topic=commands-whats-new
> 2024年12月
> ioo コマンドで、 aio_delegateiotodriverkth および posix_aio_delegateiotodriverkth チューナブル・パラメーターに関する情報が追加されました。


---

##### no (network option)

**値の増加**

```
General Network Parameters

NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
---------------------------------------------------------------------------------------
ip_nortlock               1      1      1      0      1      boolean           D
---------------------------------------------------------------------------------------
mpool_opt                 1      1      1      0      1      boolean           D
---------------------------------------------------------------------------------------

TCP Network Tunable Parameters

---------------------------------------------------------------------------------------
tcp_dss                   1      1      1      0      1      boolean           C
---------------------------------------------------------------------------------------
tcp_dss_init_step         16     16     16     1      1K     segment           C
---------------------------------------------------------------------------------------
tcp_rfc6928               1      1      1      0      1      boolean           D
---------------------------------------------------------------------------------------
tcp_use_maxlen            1      1      1      0      1      boolean           D
---------------------------------------------------------------------------------------

```


| 名前                        | 目的                                                                                   |
|-----------------------------|----------------------------------------------------------------------------------------|
| ip_nortlock  | (ドキュメントの説明なし) |
| mpool_opt  | (ドキュメントの説明なし) |
| tcp_dss  | 動的ソケットバッファサイジング関数を有効または無効にする。 有効にすると、TCPは帯域幅を向上させるために、ソケットの送受信バッファを自動的に更新しようとする。 アプリケーションが 'setsockoptシステムコールを使用して TCP 送受信バッファを設定する場合、特定の接続に対して動的なソケットバッファサイジングは実行されない。 |
| tcp_dss_init_step  | ソケットバッファサイズが調整されている間に一度に増やせる MSS セグメントの倍数を表す。 tcp_dss_init_stepチューナブルは、「tcp_dssチューナブルが有効な場合にのみ使用される。 tcp_dss_init_step調整可能パラメータは、バッファサイズの増加ペースを制御し、受信バッファと送信バッファの初期ステップ値を設定する。 |
| tcp_rfc6928  | RFC 6928 に記述されている TCP 初期ウィンドウ・サイズの設定を指定する。 tcp_rfc6928調整可能パラメータの値は、長距離通信や限られたパケットレートのアプリケーションに役立つように、初期状態では少なくとも10セグメントに設定されている。 有効にすると、このオプションはrfc2414チューナブルで設定された値をオーバーライドする。 |
| tcp_use_maxlen  | largesend有効な場合に、送信パケットサイズを送信可能な最大サイズに設定できるようにする。 largesend有効でない場合、送信パケットサイズの上限は、最大サイズのセグメントではなく、MTUセグメントの倍数に設定される。 |


[no コマンド参考](https://www.ibm.com/docs/ja/aix/7.3?topic=n-no-command)

<br>

<br>

**値の変更**

AIX 7.3 TL2でも存在していましたが、定義の値が変更された内容です。
(環境によって異なる値が含まれている可能性はあります)

* nbc_pseg_limit 

```
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
---------------------------------------------------------------------------------------
nbc_pseg_limit            512K   512K   512K   0      1M     kbyte             D
---------------------------------------------------------------------------------------
```

AIX 7.3 TL2 では CUR,DEF,BOOT の 512K の箇所が 1M でした。

<br>

* sb_max

```
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
---------------------------------------------------------------------------------------
sb_max                    16M    16M    16M    4K     8E-1   byte              D
---------------------------------------------------------------------------------------
```

AIX 7.3 TL2 では CUR,DEF,BOOT の 16M の箇所が 1M でした。

<br>

* thewall 

```
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
---------------------------------------------------------------------------------------
thewall                   1M     1M     1M     0      64M    kbyte             S
---------------------------------------------------------------------------------------
```

AIX 7.3 TL2 では CUR,DEF,BOOT の 1M の箇所が 2M でした。

<br>

* poolbuckets 

```
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
---------------------------------------------------------------------------------------
poolbuckets               7      1      1      1      20     numeric           D
---------------------------------------------------------------------------------------
```

CUR が 7 ですが、AIX 7.3 TL2 では  では 1 です。TL3 でも DEF, BOOT は 1 の設定のため、この環境でたまたまなのかもしれません。


---



##### vmo (仮想メモリー・マネージャー)

**値の増加**


```
## Restricted Tunables

NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
--------------------------------------------------------------------------------
cmds_per_queue            4      4      4      1      10     numeric           B
--------------------------------------------------------------------------------
mpss_16m_text             1      1      1      0      1      boolean           D
--------------------------------------------------------------------------------
rdahd_offload             0      0      0      0      1      numeric           D
--------------------------------------------------------------------------------
wrbhnd_offload            0      0      0      0      1      numeric           D
--------------------------------------------------------------------------------
wthreads_per_core         1      1      1      1      4      numeric           D
--------------------------------------------------------------------------------

```


| 名前                        | 目的                                                                                   |
|-----------------------------|----------------------------------------------------------------------------------------|
| cmds_per_queue   | Restricted tunables(ユーザーによる変更は非推奨) |
| mpss_16m_text | Restricted tunables(ユーザーによる変更は非推奨) |
| rdahd_offload | Restricted tunables(ユーザーによる変更は非推奨) |
| wrbhnd_offload | Restricted tunables(ユーザーによる変更は非推奨) |
| wthreads_per_core | Restricted tunables(ユーザーによる変更は非推奨) |


<br>


**値の変更**


```
## Restricted Tunables

NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
--------------------------------------------------------------------------------
relalias_nlocks           320    0      0      0      2G     numeric           B
--------------------------------------------------------------------------------
```


| 名前                        | 目的                                                                                   |
|-----------------------------|----------------------------------------------------------------------------------------|
| relalias_nlocks | Restricted tunables(ユーザーによる変更は非推奨) |



[vmoコマンド参考](https://www.ibm.com/docs/ja/aix/7.3?topic=v-vmo-command)

Restricted tunables のためコマンド・マニュアル内の解説はありませんでした。


---

##### raso (RASのパラメーター・オプション)

(RAS (Reliability (信頼性)、Availability (可用性)、Serviceability (保守性)) の各パラメーターを管理)

**値の追加**

```
NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
--------------------------------------------------------------------------------
llu_mode                  0      0      0      0      2      numeric           D
--------------------------------------------------------------------------------

## Restricted tunables

dump_mtrc_data            0      0      0      0      1      boolean           D
--------------------------------------------------------------------------------
dump_read_pages_parallel  1      1      1      0      1      boolean           B
--------------------------------------------------------------------------------
```


| 名前                        | 目的                                                                                   |
|-----------------------------|----------------------------------------------------------------------------------------|
| llu_mode | ライブ・ライブラリー・アップデート（LLU）機能を有効にするかどうかを指定します。 |
| dump_mtrc_data | Restricted tunables(ユーザーによる変更は非推奨) |
| dump_read_pages_parallel | Restricted tunables(ユーザーによる変更は非推奨) |

<br>

---


##### schedo (プロセッサーのスケジューラー・チューニング・パラメーター) 

**値の追加**

```
## Restricted tunables

--------------------------------------------------------------------------------
boost_iokthrds            1      1      1      0      1      boolean           D
--------------------------------------------------------------------------------
disp_latency_loadbalance  36     36     36     0      2G-1   numeric           D
--------------------------------------------------------------------------------
i_sched_offload           1      1      1      0      1      boolean           D
--------------------------------------------------------------------------------
offload_iodone            1      1      1      0      1      boolean           D
--------------------------------------------------------------------------------
parallel_offload_iodone   0      0      0      0      1      boolean           D
--------------------------------------------------------------------------------
parallel_offload_isched   0      0      0      0      1      boolean           D
--------------------------------------------------------------------------------
```

| 名前                        | 目的                                                                                   |
|-----------------------------|----------------------------------------------------------------------------------------|
| boost_iokthrds| Restricted tunables(ユーザーによる変更は非推奨) |
| disp_latency_loadbalance | Restricted tunables(ユーザーによる変更は非推奨) |
| i_sched_offload| Restricted tunables(ユーザーによる変更は非推奨) |
| offload_iodone  | Restricted tunables(ユーザーによる変更は非推奨) |
| boost_iokthrds| Restricted tunables(ユーザーによる変更は非推奨) |
| parallel_offload_iodone | Restricted tunables(ユーザーによる変更は非推奨) |
| parallel_offload_isched | Restricted tunables(ユーザーによる変更は非推奨) |


[schedoコマンド参考](https://www.ibm.com/docs/ja/aix/7.3?topic=s-schedo-command)

<br>

---

##### nfso (ネットワーク・ファイルシステム (NFS) のチューニング・パラメーター)

<br>

変更点なし


[nfsoコマンド参考](https://www.ibm.com/docs/ja/aix/7.3?topic=n-nfso-command)

<br>

---

##### asoo (Active System Optimizer (ASO) のチューナブル・パラメーター)

**値の追加**

```
## Restricted tunables

 NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
--------------------------------------------------------------------------------
large_page_text_promotion 1      1      1      0      1      boolean           D
--------------------------------------------------------------------------------
shm_job_cluster           0      0      0      0      1      boolean           D
--------------------------------------------------------------------------------
```

| 名前                        | 目的                                                                                   |
|-----------------------------|----------------------------------------------------------------------------------------|
| large_page_text_promotion | Restricted tunables(ユーザーによる変更は非推奨) |
| shm_job_cluster | Restricted tunables(ユーザーによる変更は非推奨) |



**値の変更**

```
##　Restricted tunables

 NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
--------------------------------------------------------------------------------
aggressive_cache_affinity 0      0      0      0      1      boolean           D
--------------------------------------------------------------------------------
```

AIX 7.3 TL2 では CUR,DEF,BOOT の 0 の箇所が 1 でした。


```
##　Restricted tunables

 NAME                      CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE
     DEPENDENCIES
--------------------------------------------------------------------------------
cache_affinity            0      0      0      0      1      boolean           D
--------------------------------------------------------------------------------
```

AIX 7.3 TL2 では CUR,DEF,BOOT の 0 の箇所が 1 でした。



```
## Restricted tunables

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

AIX 7.3 TL2 では CUR,DEF,BOOT の 0 の箇所が 1 でした。



| 名前                        | 目的                                                                                   |
|-----------------------------|----------------------------------------------------------------------------------------|
| aggressive_cache_affinity| Restricted tunables(ユーザーによる変更は非推奨) |
| cache_affinity| Restricted tunables(ユーザーによる変更は非推奨) |
| large_page_exclusive  | Restricted tunables(ユーザーによる変更は非推奨) |


[asoo コマンド参考](https://www.ibm.com/docs/ja/aix/7.3?topic=asoo-command)

<br>

---

### ユーザー

ragent というユーザーが追加されていました。初めて見た気がします。

```
# lsuser -c ALL | grep -v ^# | grep ragent

ragent:205:staff:staff:/home/ragent:/usr/bin/ksh:true:true:true:true:false:ALL:nosak:ALL:0:SYSTEM:NONE:22:files:compat:0:5:false:4:13:4:2:1:1:1:1:1:0:8:10:52:4:RemoteUpdate:1734518002:-1:-1:-1:65536:2097151:65536:2000:RemoteUpdate
```

<br>

グループの変更はありませんでした。

<br>

---

### entX

ent の属性値が増えていることに気づきました。
ただしこれは比較対象環境の物理ネットワーク・アダプターの違いによるものも含まれていると考えられます。

ent0 の属性全量出力

```
# lsattr -El ent0
alt_addr        0x000000000000 Alternate Ethernet Address                           True
buf_mode        max_min        Receive Buffer Mode                                  True
chksum_offload  yes            Enable Checksum Offload for IPv4 packets             True
copy_buffs      32             Transmit Copy Buffers                                True
copy_bytes      65536          Transmit Copy Buffer Size                            True
desired_mapmem  0              I/O memory entitlement reserved for device           False
flip_n_run      no             Send packets in receive context                      True
ipv6_offload    yes            Enable Checksum Offload for IPv6 packets             True
max_buf_control 64             Maximum Control Buffers                              True
max_buf_huge    64             Maximum Huge Buffers when rx_pool_policy is legacy   True
max_buf_huge_nu 768            Maximum Huge Buffers when rx_pool_policy is new      True
max_buf_large   64             Maximum Large Buffers when rx_pool_policy is legacy  True
max_buf_medium  256            Maximum Medium Buffers when rx_pool_policy is legacy True
max_buf_small   2048           Maximum Small Buffers                                True
max_buf_tiny    2048           Maximum Tiny Buffers                                 True
min_buf_control 24             Minimum Control Buffers                              True
min_buf_huge    24             Minimum Huge Buffers when rx_pool_policy is legacy   True
min_buf_huge_nu 256            Minimum Huge Buffers when rx_pool_policy is new      True
min_buf_large   24             Minimum Large Buffers when rx_pool_policy is legacy  True
min_buf_medium  128            Minimum Medium Buffers when rx_pool_policy is legacy True
min_buf_small   512            Minimum Small Buffers                                True
min_buf_tiny    512            Minimum Tiny Buffers                                 True
platform_lso    yes            Platform LSO Enable                                  True
poll_uplink     no             Enable Uplink Polling                                True
poll_uplink_int 1000           Time interval for Uplink Polling                     True
queues_rx       0              Requested number of Receive Queues                   True
queues_tx       12             Requested number of Transmit Queues                  True
rx_pool_policy  new            Receive Buffer Pools Policy                          True
rxq_depth       4000           Software Rx queue maximum packet count               True
trace_debug     no             Trace Debug Enable                                   True
tx_limit        32             Tx packets sent per transmit thread                  True
use_alt_addr    no             Enable Alternate Ethernet Address                    True
#
```

増えていた値

| 属性値      | 値 | 説明 | ユーザー設定可否 |
|-----|--------|-------|-------|
| flip_n_run | no | Send packets in receive context | True |
| max_buf_huge_nu | 768 |  Maximum Huge Buffers when rx_pool_policy is new | True |
| min_buf_huge_nu | 256 | Minimum Huge Buffers when rx_pool_policy is new  | True |
| queues_rx |  0 | Requested number of Receive Queues | True |
| queues_tx | 12 | Requested number of Transmit Queues | True |
| rx_pool_policy | new  | Receive Buffer Pools Policy | True |
| rxq_depth | 4000  | Software Rx queue maximum packet count | True |
| tx_limit |  32 |  Tx packets sent per transmit thread | True |

---

<br>

* flip_n_run で100GB イーサネット・アダプター関連のTechnoteがありました。

[Network performance tuning using flip_n_run](https://www.ibm.com/support/pages/node/888059)

追加の参考：[How to get maximum throughput from 100 Gb ethernet adapter in non-virtualized environment?](https://www.ibm.com/support/pages/node/6208263)


* max_buf_huge_nu、min_buf_huge_nu については詳細情報を見つけられていません。


<br>

* queues_rx、queues_tx、rx_pool_policy 、は VIOS 4.1.1.0 および AIX 7.3.3 で新しい機能である仮想イーサネット・ソフトウェア・マルチキューに関連する内容と考えられます。


参考1：[AIX 7.3.3 リリース・ノート](https://www.ibm.com/docs/ja/aix/7.3?topic=notes-aix-733-release)
> AIX仮想イーサネット・ソフトウェア・マルチキュー

> AIX® 7.3、技術レベル3以降、AIXは仮想イーサネット・マルチキュー機能を備えている。 これにより、仮想イーサネット・アダプターを介したネットワーク・トラフィックが増加する。 デフォルトでは、送信キューは12個、受信キューは0個である（レガシー受信モード）。 帯域幅を増やすには、「queues_rxチューナブル属性を使用して、仮想イーサネットアダプタの受信キュー数を増やすことができる。 しかし、より多くのトラフィックを処理するために複数の受信キューを使用することは、より多くのCPUリソースを必要とする。


参考 Blog : [Virtual Ethernet Software Multi Queue](https://community.ibm.com/community/user/power/blogs/lokesh-kambadur/2024/12/19/virtual-ethernet-software-multi-queue)


<br>

* rxq_depth 、tx_limit もおそらく仮想イーサネット・ソフトウェア・マルチキュー関連と思われます。


100GB 超のネットワークアダプターを使用する場合はソフトウェア・マルチキュー機能でのチューニングが可能となっている、ということですね。

上述の Blog 文書より、queues_rxおよび queues_tx を４以上に設定すると multiqueue が動作するようです。
ただし、CPUの使用率も増えるため、設定の際にはネットワークの帯域幅の増加とCPU使用率を検証する必要性がありそうです。

<br>




et 値、en 値の属性変更はありませんでした。



---

### サービス

lssrc の結果を比較すると、以下の2つのサービスが存在していませんでした。

```
 IBM.ERRM         rsct_rm   
 IBM.AuditRM      rsct_rm  
``` 


---

### おわりに


ざっくりとした確認であることと、環境によって差分がありますのであくまでご参考でお願いします。


<br>


以上です。