Isilon PowerScale OneFS 8.2 ja uudemmat: Salli luopuminen vapaista vnodeista uusille vnodeille, kun välimuisti on täynnä
Summary: Salli luopuminen ilmaisista virtuaalisolmuista (Vnodeista) uusille Vnodeille, kun välimuisti on täynnä.
Symptoms
vlruwk Käynnissä olevat säikeet:
/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: 507Huomaa vmlogista, että VNODE ottaa eniten muistia:
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
Solmujen muisti (OOM) voi loppua, koska vapaita Vnodeja ei palauteta. OneFS 8.2:ssa ja uudemmissa versioissa uusi systcl pantiin täytäntöön (vfs.vnlru_reuse_freevnodes), jotta vapaista Vnodeista voidaan luopua uusille Vnodeille, kun välimuisti on täynnä.
Oletuksena vnlru_reuse_freevnodes ei ole käytössä, koska Isilon haluaa lykätä Vnodes-kierrätystä vnlru_proc. Kytkeminen päälle vnlru_reuse_freevnodes Avulla getvnewvnode() kierrättää käytettävissä olevat vapaat Vnodet tehdäksesi tilaa uusille, kun välimuisti on täynnä (mutta ei ylikokoinen). Tämä estää Vnode-allokaattoreita nukkumasta ja välttää heräämisen vnlru_proc.
Resolution
vfs.vnlru_reuse_freevnode. Kaikki klusterit on arvioitava riippumattomasti, vaikka ne olisivat vertaisklusteria tai katastrofista palautumisen klusteria.
Prosessi:
- Tarkista, onko arvo asetettu seuraavalla komennolla (oletus on 0):
# isi_for_array sysctl vfs.vnlru_reuse_freevnodes
- Joukko
vfs.vnlru_reuse_freevnodeskohtaan 1:
# isi_sysctl_cluster vfs.vnlru_reuse_freevnodes=1
- Varmista, että arvo on asetettu, suorittamalla uudelleen komento:
# isi_for_array sysctl vfs.vnlru_reuse_freevnodesVoit valvoa muutoksen jälkeen seuraavien komentojen avulla
vnode cache ja vlurwk Threads:
# isi_for_array -s 'sysctl vfs.numvnodes kern.maxvnodes| xargs'; sleep 300 # isi_for_array -s sysctl kern.malloc_pigs|grep vlurwk
Additional Information
Aiheeseen liittyvä artikkeli:
Isilon: Joidenkin solmujen /var/log-viesteissä näkyy ajoittain ilmoituksia muistin loppumisesta