はじめに
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 リリースノート で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(ユーザーによる変更は非推奨) |
コマンドにおける新機能
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セグメントの倍数に設定される。 |
値の変更
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 でした。
- 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 でした。
- 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 でした。
- 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(ユーザーによる変更は非推奨) |
値の変更
## Restricted Tunables
NAME CUR DEF BOOT MIN MAX UNIT TYPE
DEPENDENCIES
--------------------------------------------------------------------------------
relalias_nlocks 320 0 0 0 2G numeric B
--------------------------------------------------------------------------------
名前 | 目的 |
---|---|
relalias_nlocks | Restricted tunables(ユーザーによる変更は非推奨) |
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(ユーザーによる変更は非推奨) |
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(ユーザーによる変更は非推奨) |
nfso (ネットワーク・ファイルシステム (NFS) のチューニング・パラメーター)
変更点なし
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(ユーザーによる変更は非推奨) |
ユーザー
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
グループの変更はありませんでした。
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 |
- flip_n_run で100GB イーサネット・アダプター関連のTechnoteがありました。
Network performance tuning using flip_n_run
追加の参考:How to get maximum throughput from 100 Gb ethernet adapter in non-virtualized environment?
- max_buf_huge_nu、min_buf_huge_nu については詳細情報を見つけられていません。
- queues_rx、queues_tx、rx_pool_policy 、は VIOS 4.1.1.0 および AIX 7.3.3 で新しい機能である仮想イーサネット・ソフトウェア・マルチキューに関連する内容と考えられます。
AIX仮想イーサネット・ソフトウェア・マルチキュー
AIX® 7.3、技術レベル3以降、AIXは仮想イーサネット・マルチキュー機能を備えている。 これにより、仮想イーサネット・アダプターを介したネットワーク・トラフィックが増加する。 デフォルトでは、送信キューは12個、受信キューは0個である(レガシー受信モード)。 帯域幅を増やすには、「queues_rxチューナブル属性を使用して、仮想イーサネットアダプタの受信キュー数を増やすことができる。 しかし、より多くのトラフィックを処理するために複数の受信キューを使用することは、より多くのCPUリソースを必要とする。
参考 Blog : Virtual Ethernet Software Multi Queue
- rxq_depth 、tx_limit もおそらく仮想イーサネット・ソフトウェア・マルチキュー関連と思われます。
100GB 超のネットワークアダプターを使用する場合はソフトウェア・マルチキュー機能でのチューニングが可能となっている、ということですね。
上述の Blog 文書より、queues_rxおよび queues_tx を4以上に設定すると multiqueue が動作するようです。
ただし、CPUの使用率も増えるため、設定の際にはネットワークの帯域幅の増加とCPU使用率を検証する必要性がありそうです。
et 値、en 値の属性変更はありませんでした。
サービス
lssrc の結果を比較すると、以下の2つのサービスが存在していませんでした。
IBM.ERRM rsct_rm
IBM.AuditRM rsct_rm
おわりに
ざっくりとした確認であることと、環境によって差分がありますのであくまでご参考でお願いします。
以上です。