Isilon PowerScale OneFS 8.2以降: キャッシュがいっぱいになったときに、新しいVnodeのために空きVnodeを解放できるようにする

Summary: キャッシュがいっぱいになったときに、新しいVnodeのために空き仮想ノード(Vnode)を解放できるようにします。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

低Vnodeで実行されている場合は、複数のVnodesが表示されることで特定されます vlruwk 実行中のスレッド:
/var/log/messages 2022-03-11T17:17:01-08:00 <0.4> Isilon-4(id4) /boot/kernel.amd64/kernel: [rbm_worker.c:350](pid 4738="kt: dxt1")(tid=102982) There are now 505 DXT threads, msg stats: READ_INODE: 1, callback stats: kernel:lk_lock_async_callback2+0: 502, wait stats: biord: 3, vlruwk: 507
vmlogから、VNODEが最も高いメモリーを使用していることを確認します。
vm.uma_zalloc_pigs: UMA Zalloc Pigs:
ZONE NAME       SIZE     LIMIT     COUNT   MEM USED
VNODE         000560, 00000000, 00830165, 00453996K
IFSINODE      000568, 00000000, 00777624, 00431338K
VM OBJECT     000240, 00000000, 00813154, 00190582K
lki_lin_ent   000208, 00000000, 00934988, 00189919K
lkc_gen_ent   000064, 00000000, 02235094, 00139693K
stat_cache    000176, 00000000, 00752869, 00129399K
lki_ref_ent   000105, 00000000, 00936379, 00096015K
lkc_lin_idds  000076, 00000000, 01012017, 00075110K
lkc_ref_idds  000068, 00000000, 01008047, 00066940K
mbuf_jumbo_p  004096, 00000000, 00016394, 00065576K
mbuf_cluster  002048, 00000000, 00026630, 00053260K
RADIX NODE    000144, 00000000, 00308743, 00043416K
ifm_attr_cac  000048, 00000000, 00770256, 00036105K
lki_mds_ent   000144, 00000000, 00255978, 00035996K
UMA Slabs     000080, 00000000, 00239085, 00018678K
Unshown zones account for 174014K
Total: 2200045K

Cause

空きVnodeを再利用していないため、ノードのメモリー不足(OOM)が発生する可能性があります。OneFS 8.2以降では、新しい systcl が実装されました (vfs.vnlru_reuse_freevnodes)を使用して、キャッシュがいっぱいになったときに、新しいVnodeのために空きVnodeを解放できるようにします。

デフォルトでは、 vnlru_reuse_freevnodes は、IsilonがVnodeのリサイクルを vnlru_proc間のデッドロックが原因で潜在的なHMONタイムアウトが発生する問題が解決されています。オンにする vnlru_reuse_freevnodes により getvnewvnode() 使用可能な空きVnodeをリサイクルして、キャッシュがいっぱいになったときに新しいVnode用のスペースを確保します(ただし、サイズを超えないように)。これにより、Vnodeアロケーターがスリープ状態になるのを防ぎ、ウェイクアップを回避します vnlru_proc間のデッドロックが原因で潜在的なHMONタイムアウトが発生する問題が解決されています。

Resolution

注意:無効化または有効化する前にエンジニアリングの承認を得る vfs.vnlru_reuse_freevnode間のデッドロックが原因で潜在的なHMONタイムアウトが発生する問題が解決されています。ピア クラスターまたはディザスター リカバリー クラスターであっても、すべてのクラスターを個別に評価する必要があります。

Process:
  1. 次のコマンドで値が設定されているかどうかを確認します(デフォルトは0です)。
# isi_for_array sysctl vfs.vnlru_reuse_freevnodes
  1. SET vfs.vnlru_reuse_freevnodes を 1 に変更するには、次のようにします。
# isi_sysctl_cluster vfs.vnlru_reuse_freevnodes=1
  1. コマンドを再実行して値が設定されていることを確認します。
# isi_for_array sysctl vfs.vnlru_reuse_freevnodes
変更後に監視するには、次のコマンドを使用して使用状況を監視します vnode cachevlurwk スレッド:
# isi_for_array -s 'sysctl vfs.numvnodes kern.maxvnodes| xargs'; sleep 300 

# isi_for_array -s sysctl kern.malloc_pigs|grep vlurwk

Additional Information

Article Properties
Article Number: 000173892
Article Type: Solution
Last Modified: 18 Jun 2025
Version:  17
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.