PowerScale OneFS 9.11 и более поздние версии: Виртуальные узлы не освобождаются эффективно, что приводит к тому, что узлы работают в режиме OOM

Summary: Большое количество виртуальных узлов, накапливающихся в памяти, может привести к тому, что один или несколько узлов перейдут в состояние нехватки памяти (OOM). Эта проблема может возникнуть в любом кластере, использующем моментальные снимки и SmartPools под управлением OneFS 9.11 или более поздней версии. ...

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

Состояние ожидания OOM может привести к критическим ошибкам узла и отказу реагирования, что приведет к снижению производительности и событиям недоступности данных. Количество виртуальных узлов в памяти превышает требуемое максимальное количество виртуальных узлов. Включение и отключение vfs.vnlru_reuse_freevnodes (переработка виртуального узла) не влияет на проблему.

Проблему можно определить по сообщениям OOM, vmlogsи минидамп. Пример выходных данных сообщений на узле F200 с 48 Гбайт памяти:

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

Следующее количество записей превышает 17 миллионов:

NAME              SIZE      LIMIT      COUNT   MEM USE
IFSINODE          616,         0,  17222149,  11481500
VNODE             584,         0,  17224440,   9842604

Где максимальное количество vnodes составляет 2 900 000, которое можно найти в vmlogs > kern.maxvnodes.

Количество виртуальных узлов в кластере можно проверить и использовать для определения максимального количества виртуальных узлов следующим образом: sysctl.

# isi_for_array -s "sysctl vfs.numvnodes"
# isi_for_array -s "sysctl kern.maxvnodes"

Cause

Проблема изучается.

Resolution

Постоянное разрешение установлено в OneFS 9.11.0.2 и 9.12.0.0 и более поздних версиях.

Временное решение.
Текущее временное решение заключается в ежечасной очистке кэша памяти на всех узлах. Приведенный ниже пример цикла можно использовать в сеансе screen на любом узле:

# while true; do date; isi_for_array -s 'sysctl vfs.numvnodes; isi_flush '; sleep 3600; done

 

Примечание. Сценарий можно отменить в любой момент в течение 3600 секунд (1 час) ожидания, за исключением случаев, когда isi_flush Выполняется команда. Не убивайте isi_flush процесса, так как это может привести к временному перебою в работе сервиса.

 

Для дальнейшей автоматизации и повышения надежности очистки кэш-памяти cron Задание можно запланировать. В приведенном ниже примере кэш будет очищаться через 7 минут после каждого часа:

Редактировать /etc/mcp/override/crontab с помощью любого текстового редактора и введите следующее:

7 * * * * root pgrep isi_flush || /usr/bin/isi_flush

Подробнее о том, как редактировать crontab можно найти в статье Isilon Как редактировать crontab

Режим
комплаенса SmartLockДля кластеров в режиме комплаенса SmartLock sudo должен быть добавлен перед isi_for_array и isi_flush.

# while true; do date; sudo isi_for_array -s 'sysctl vfs.numvnodes; sudo isi_flush '; sleep 3600; done

Если используется cron работа compadmin Невозможно изменить файл /etc/mcp/override/crontabтем crontab CLI с -e должен использоваться на каждом узле, чтобы добавить требуемую строку, как показано ниже. Строка не содержит столбца "who", который был корнем в /etc/mcp/override/crontab, потому что это cron Автор задания compadmin только.

Редактировать cron Задание с использованием:

# crontab -e

В редакторе:
Давить i , чтобы переключиться в режим вставки.
Вставьте под строкой:

7 * * * *  pgrep isi_flush || sudo /usr/bin/isi_flush

Нажмите клавишу Esc
Давить :wq! , чтобы сохранить изменения.

Affected Products

Isilon, PowerScale, Isilon Gen6.5, Isilon Gen6, PowerScale OneFS
Article Properties
Article Number: 000342005
Article Type: Solution
Last Modified: 19 Nov 2025
Version:  6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.