Isilon PowerScale OneFS 8.2 及更新版本:允許在快取已滿時為新 vnode 放棄可用的 vnode
Summary: 允許在快取已滿時為新的 Vnode 放棄可用的虛擬節點 (Vnodes)。
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 上執行的識別方式為查看多個
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: 2200045KCause
節點可能會因為未回收可用的 Vnode 而導致記憶體不足 (OOM)。在 OneFS 8.2 及更新版本中,有 systcl 已實施(vfs.vnlru_reuse_freevnodes) 以允許在緩存已滿時放棄新 Vnode 的可用 Vnode。
默認情況下, vnlru_reuse_freevnodes 處於關閉狀態,因為 Isilon 偏好將 Vnode 回收作業延後至 vnlru_proc。開啟 vnlru_reuse_freevnodes 允許 getvnewvnode() 回收可用的免費 Vnode,以便在緩存已滿(但大小不超過)時為新節點騰出空間。這可以防止 Vnode 分配器進入睡眠狀態並避免醒來 vnlru_proc。
Resolution
警示:在停用或啟用之前取得工程核准
vfs.vnlru_reuse_freevnode。應獨立評估所有群集,即使它們是對等群集或災難恢復群集。
程序:
- 使用下列命令檢查值是否已設定 (預設值為 0):
# isi_for_array sysctl vfs.vnlru_reuse_freevnodes
- 鑲
vfs.vnlru_reuse_freevnodes到 1:
# isi_sysctl_cluster vfs.vnlru_reuse_freevnodes=1
- 重新執行以下命令以確認值已設定:
# isi_for_array sysctl vfs.vnlru_reuse_freevnodes若要在變更後進行監控,請使用以下命令來監控
vnode cache 和 vlurwk 線程:
# 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.