PowerScale OneFS 9.11 ve sonraki sürümler: Vnode'lar Verimli Bir Şekilde Geri Kazanılmadı ve Düğümlerin OOM Çalıştırmasına Neden Oluyor
Summary: Bellekte biriken çok sayıda vnode, bir veya daha fazla düğümün Yetersiz Bellek (OOM) durumuna girmesine neden olabilir. OneFS 9.11 veya sonraki bir sürümü çalıştıran ve Anlık Görüntüler ve SmartPools kullanan tüm kümelerde bu sorun olabilir. ...
Symptoms
OOM durumu, düğüm paniklerine ve yanıt vermemeye yol açarak performansın düşmesine ve veri noksanlığı olaylarına yol açabilir. Bellekteki vnode sayısı, gerekli maksimum vnode sayısından daha fazla. Etkinleştirme veya devre dışı bırakma vfs.vnlru_reuse_freevnodes (vnode geri dönüşümünün) sorun üzerinde bir etkisi yoktur.
Sorun, OOM mesajlarından tanımlanabilir, vmlogsve bir minidump. 48 GB belleğe sahip bir F200 düğümündeki mesajların örnek çıktısı:
2025-06-11T05:31:56.025986+02:00 <0.4> - /boot/kernel.amd64/kernel: OOM: v_wire_count: 11262575, v_active_count: 7 events_since_last_log 674 2025-06-11T05:31:56.025992+02:00 <0.4> - /boot/kernel.amd64/kernel: Malloc Pigs: 2025-06-11T05:31:56.025997+02:00 <0.4> - /boot/kernel.amd64/kernel: Type InUse MemUse Requests 2025-06-11T05:31:56.026004+02:00 <0.4> - /boot/kernel.amd64/kernel: iaddr_set 15701654 981354K 4078195298 2025-06-11T05:31:56.026010+02:00 <0.4> - /boot/kernel.amd64/kernel: devbuf 171845 649730K 35775475 2025-06-11T05:31:56.026016+02:00 <0.4> - /boot/kernel.amd64/kernel: isi_hash 137112 505157K 760464664 2025-06-11T05:31:56.026022+02:00 <0.4> - /boot/kernel.amd64/kernel: newblk 4 131072K 1483813 2025-06-11T05:31:56.026027+02:00 <0.4> - /boot/kernel.amd64/kernel: inodedep 4 65536K 531073 2025-06-11T05:31:56.026035+02:00 <0.4> - /boot/kernel.amd64/kernel: vfscache 4 32817K 4 2025-06-11T05:31:56.026041+02:00 <0.4> - /boot/kernel.amd64/kernel: bar_owner_vec264 259 32256K 191809 2025-06-11T05:31:56.026047+02:00 <0.4> - /boot/kernel.amd64/kernel: linux 169103 28170K 142448723 2025-06-11T05:31:56.026052+02:00 <0.4> - /boot/kernel.amd64/kernel: statistics data 13062 20453K 1189902 2025-06-11T05:31:56.026058+02:00 <0.4> - /boot/kernel.amd64/kernel: vfs_hash 1 16384K 1 2025-06-11T05:31:56.026064+02:00 <0.4> - /boot/kernel.amd64/kernel: pagedep 4 16384K 151925 2025-06-11T05:31:56.026069+02:00 <0.4> - /boot/kernel.amd64/kernel: sysctloid 269900 14747K 274194 2025-06-11T05:31:56.026075+02:00 <0.4> - /boot/kernel.amd64/kernel: acpica 194000 12817K 3055662 2025-06-11T05:31:56.026081+02:00 <0.4> - /boot/kernel.amd64/kernel: 8kB dinodes 2315 11909K 10694470462 2025-06-11T05:31:56.026086+02:00 <0.4> - /boot/kernel.amd64/kernel: pcb 136 9230K 470386 2025-06-11T05:31:56.026092+02:00 <0.4> - /boot/kernel.amd64/kernel: Unshown bins account for 100723K 2025-06-11T05:31:56.026103+02:00 <0.4> - /boot/kernel.amd64/kernel: Total: 2628733K 2025-06-11T05:31:56.026109+02:00 <0.4> - /boot/kernel.amd64/kernel: UMA Zalloc Pigs: 2025-06-11T05:31:56.026114+02:00 <0.4> - /boot/kernel.amd64/kernel: NAME SIZE LIMIT COUNT MEM USED 2025-06-11T05:31:56.026120+02:00 <0.4> - /boot/kernel.amd64/kernel: IFSINODE 616, 0, 17222149, 11481500K 2025-06-11T05:31:56.026126+02:00 <0.4> - /boot/kernel.amd64/kernel: VNODE 584, 0, 17224440, 9842604K 2025-06-11T05:31:56.026132+02:00 <0.4> - /boot/kernel.amd64/kernel: mbuf_jumbo_p 4096, 0, 272268, 1089072K 2025-06-11T05:31:56.026137+02:00 <0.4> - /boot/kernel.amd64/kernel: VM OBJECT 272, 0, 49671, 839200K 2025-06-11T05:31:56.026143+02:00 <0.4> - /boot/kernel.amd64/kernel: UMA Slabs 0 80, 0, 3078132, 246336K 2025-06-11T05:31:56.026149+02:00 <0.4> - /boot/kernel.amd64/kernel: BUF TRIE 144, 0, 122678, 217204K 2025-06-11T05:31:56.026154+02:00 <0.4> - /boot/kernel.amd64/kernel: RADIX NODE 144, 0, 333231, 141808K 2025-06-11T05:31:56.026160+02:00 <0.4> - /boot/kernel.amd64/kernel: vmem btag 56, 0, 143433, 114884K 2025-06-11T05:31:56.026166+02:00 <0.4> - /boot/kernel.amd64/kernel: mbuf 256, *, *, 75888K 2025-06-11T05:31:56.026172+02:00 <0.4> - /boot/kernel.amd64/kernel: mbuf 256, 19265886, 284503, * 2025-06-11T05:31:56.026177+02:00 <0.4> - /boot/kernel.amd64/kernel: mbuf_packet 256, 0, 64, * 2025-06-11T05:31:56.026183+02:00 <0.4> - /boot/kernel.amd64/kernel: lki_mds_ent 160, 0, 62000, 69428K 2025-06-11T05:31:56.026189+02:00 <0.4> - /boot/kernel.amd64/kernel: md3 512, 0, 131072, 65540K 2025-06-11T05:31:56.026194+02:00 <0.4> - /boot/kernel.amd64/kernel: md0 512, 0, 131072, 65540K 2025-06-11T05:31:56.026200+02:00 <0.4> - /boot/kernel.amd64/kernel: pbuf 1024, *, *, 38760K 2025-06-11T05:31:56.026206+02:00 <0.4> - /boot/kernel.amd64/kernel: pbuf 1024, 256, 0, * 2025-06-11T05:31:56.026211+02:00 <0.4> - /boot/kernel.amd64/kernel: vnpbuf 1024, 512, 0, * 2025-06-11T05:31:56.026217+02:00 <0.4> - /boot/kernel.amd64/kernel: clpbuf 1024, 15872, 0, * 2025-06-11T05:31:56.026223+02:00 <0.4> - /boot/kernel.amd64/kernel: mdpbuf 1024, 1638, 0, * 2025-06-11T05:31:56.026228+02:00 <0.4> - /boot/kernel.amd64/kernel: nfspbuf 1024, 8192, 0, * 2025-06-11T05:31:56.026234+02:00 <0.4> - /boot/kernel.amd64/kernel: swwbuf 1024, 4096, 0, * 2025-06-11T05:31:56.026240+02:00 <0.4> - /boot/kernel.amd64/kernel: swrbuf 1024, 8192, 0, * 2025-06-11T05:31:56.026245+02:00 <0.4> - /boot/kernel.amd64/kernel: lkc_gen_ent 64, 0, 21333, 18100K 2025-06-11T05:31:56.026253+02:00 <0.4> - /boot/kernel.amd64/kernel: MAP ENTRY 96, 0, 138594, 15488K 2025-06-11T05:31:56.026259+02:00 <0.4> - /boot/kernel.amd64/kernel: Top zones: 24321352K 2025-06-11T05:31:56.026265+02:00 <0.4> - /boot/kernel.amd64/kernel: Malloc zones: 2344608K 2025-06-11T05:31:56.026270+02:00 <0.4> - /boot/kernel.amd64/kernel: Other zones: 117512K 2025-06-11T05:31:56.026276+02:00 <0.4> - /boot/kernel.amd64/kernel: UMA total: 26783472K
Aşağıdaki giriş sayısı 17 milyonun üzerindedir:
NAME SIZE LIMIT COUNT MEM USE IFSINODE 616, 0, 17222149, 11481500 VNODE 584, 0, 17224440, 9842604
Maksimum vnode'ların 2.900.000 olduğu durumlarda vmlogs > kern.maxvnodes.
Vnode sayısı kümede doğrulanabilir ve maksimum vnode için aşağıdakiler ile referans verilebilir: sysctl:
# isi_for_array -s "sysctl vfs.numvnodes" # isi_for_array -s "sysctl kern.maxvnodes"
Cause
Sorun araştırılıyor.
Resolution
OneFS 9.11.0.2 ve 9.12.0.0 ve sonraki OneFS sürümlerinde kalıcı bir çözüm bulunmaktadır.
Geçici çözüm:
Mevcut geçici çözüm, bellek önbelleğini tüm düğümlerde saatte bir temizlemektir. Aşağıdaki örnek döngü, herhangi bir düğümdeki bir ekran oturumunda kullanılabilir:
# while true; do date; isi_for_array -s 'sysctl vfs.numvnodes; isi_flush '; sleep 3600; done
isi_flush Komut devam ediyor. Öldürme isi_flush geçici bir hizmet kesintisine neden olabilecek şekilde işlem yapın.
Önbellek belleği temizlemeyi daha da otomatikleştirmek ve daha güvenilir hale getirmek için, bir cron İş planlanabilir. Aşağıdaki örnekte, her saat başı 7 dakika sonra önbelleği temizleyeceğiz:
Düzenleme /etc/mcp/override/crontab herhangi bir metin düzenleyiciyle aşağıdakileri girin ve aşağıdakileri girin:
7 * * * * root pgrep isi_flush || /usr/bin/isi_flush
Düzenleme hakkında daha fazla bilgi crontab Isilon Crontab nasıl düzenlenir makalesinde bulunur.
SmartLock uyumluluk modu
SmartLock uyumluluk modu kümeleri için, sudo önce eklenmelidir isi_for_array ve isi_flush:
# while true; do date; sudo isi_for_array -s 'sysctl vfs.numvnodes; sudo isi_flush '; sleep 3600; done
Kullanılıyorsa cron iş compadmin Düzenlenemiyor /etc/mcp/override/crontab, bu crontab CLI aracı ile -e seçeneği aşağıdaki gibi gerekli satırı eklemek için her düğümde kullanılmalıdır. Satır, kökü olan "who" sütununu içermiyor. /etc/mcp/override/crontab, çünkü bu bir cron Tarafından yapılan iş compadmin sadece.
Düzenlemek cron İş Kullanımı:
# crontab -e
Editörde:
Basın i Ekleme moduna
geçmek içinAşağıdaki satıra yapıştırın:
7 * * * * pgrep isi_flush || sudo /usr/bin/isi_flush
Esc
tuşuna basınBasın :wq! Değişiklikleri kaydetmek için.