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
Was this article helpful?
thumb_up
Yes
thumb_down
No