Low default values were being automatically set for the vxfs_ninode and  vx_bc_bufhwm tunables on Solaris 11.3 systems with large amounts of RAM and running  VxFS 6.1.1 and 7.3.1.

book

Article ID: 100043887

calendar_today

Updated On:

Description

Error Message

WARNING: msgcnt 4 mesg 014: V-2-14: vx_iget - inode table overflow 

 

WARNING: msgcnt 1 mesg 069: V-2-69: memory usage specified by the vxfs:vxfs_ninode and vxfs:vx_bc_bufhwm parameters exceeds available memory; the system may hang under heavy load.

Cause

VxFS uses the difference between the ekernelheap and kernelheap OS kernel variables for calculating the value of vx_virtmem. Both these OS kernel variables are 64bit data types whereas vx_virtmem was only a 32bit data type and in systems with large amounts of RAM, it was seen that that value of vx_virtmem might not be correctly stored in a 32bit data type.

Resolution

The workaround of manually setting the following value in the /etc/system file avoided these low values:

set vxfs:vxfs_ninode=400000

 

vx_virtmem has been updated to be a 64bit data type and this has been fixed in patches for VxFS 6.1.1 and 7.3.1 (as well as other VxFS versions) and is included in 7.4.1.

 

 

 

 

Issue/Introduction

Low default values were being automatically set for the vxfs_ninode and vx_bc_bufhwm tunables on Solaris 11.3 systems with large amounts of RAM and running VxFS 6.1.1 and 7.3.1. For example on a system with 8TB RAM, the default values for the vxfs_ninode and vx_bc_bufhwm tunables were set to: # echo "vx_bc_bufhwm/D" | adb -k /dev/ksyms /dev/mem
physmem 3ae7cca3
vx_bc_bufhwm:
vx_bc_bufhwm: 20000
# echo "vxfs_ninode /D" | adb -k /dev/ksyms /dev/mem
physmem 3ae7cca3
vxfs_ninode:
vxfs_ninode: 6000 In the event that the system was under memory pressure, the low values of these two VxFS tunables could lead to a hang.

Additional Information

ETrack: 3947648