...
Running on low Vnodes is identified by seeing multiple vlruwk threads running: /var/log/messages 2022-03-11T17:17:01-08:00 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 From the vmlog, notice that VNODE is taking the highest memory: 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
Nodes can run Out Of Memory (OOM) due to not reclaiming free Vnodes. In OneFS 8.2 and later, a new systcl was implemented (vfs.vnlru_reuse_freevnodes) to allow giving up free Vnodes for new Vnodes when the cache is full.By default, vnlru_reuse_freevnodes is off because Isilon prefers to defer Vnodes recycling to vnlru_proc. Turning on vnlru_reuse_freevnodes allows getvnewvnode() to recycle available free Vnodes to make room for new ones when the cache is full (but not over size). This prevents Vnode allocators from sleeping and avoids waking up vnlru_proc.
Caution: Get Engineering Approval before disabling or enabling vfs.vnlru_reuse_freevnode. All clusters should be independently evaluated, even if they are a peer cluster or Disaster Recovery cluster. Process: Check if the value is set with the following command (the default is 0): # isi_for_array sysctl vfs.vnlru_reuse_freevnodes Set vfs.vnlru_reuse_freevnodes to 1: # isi_sysctl_cluster vfs.vnlru_reuse_freevnodes=1 Verify that the value is set by re-running the command: # isi_for_array sysctl vfs.vnlru_reuse_freevnodes To monitor after change, use the below commands to monitor usage of vnode cache and vlurwk threads: # isi_for_array -s 'sysctl vfs.numvnodes kern.maxvnodes| xargs'; sleep 300 # isi_for_array -s sysctl kern.malloc_pigs|grep vlurwk
Click on a version to see all relevant bugs
Dell Integration
Learn more about where this data comes from
Bug Scrub Advisor
Streamline upgrades with automated vendor bug scrubs
BugZero Enterprise
Wish you caught this bug sooner? Get proactive today.