VMware Cloud Community
utsavagarwal
Contributor
Contributor
Jump to solution

vmkernel advanced option - effective vs next reboot value

Hi, we have a few  ESX hosts that we need to update the VMFS3 Heap Size to 128MB. Apparently, this change requires a reboot to take affect. We went ahead and set the value to 128MB on many ESX hosts. Now the problem is, we unfortunately, can't determine which ESX servers were rebooted after this parameter change.

So how do we know the current value of the MaxHeapSizeMB? As far as I can tell, the command below shows the new value (which is truly not effective yet on an unrebooted host). I may be wrong.

# ./esxcfg-advcfg -g /VMFS3/MaxHeapSizeMB
Value of MaxHeapSizeMB is 128

Looking for any help in determining which ESX hosts needs to be rebooted..

0 Kudos
1 Solution

Accepted Solutions
peetz
Leadership
Leadership
Jump to solution

You are right, the initrd timestamp corresponds to the host's uptime, and of course there are easier methods to check the uptime (e.g. with the VI client or just with the command "uptime").

To be very sure you can extract the esx.conf from the initrd*.img file (this is indeed the copy used at last boot time) and check if it includes the change you made.

Instructions on how to do this are included in this KB article (it is meant for restoring a corrupted esx.conf from the "last known good" configuration stored in the initrd, but will help you too).

I'm not aware of any log file containing the changes you made. There might be something in vmkernel.log or the file that includes the last boot messages. We are on ESXi only, so I don't have any ESX host available for checking this right now. In ESXi it is /var/log/sysboot.log that contains the last boot messages.

Andreas

- VMware Front Experience Blog

Twitter: @VFrontDe, @ESXiPatches | https://esxi-patches.v-front.de | https://vibsdepot.v-front.de

View solution in original post

0 Kudos
4 Replies
peetz
Leadership
Leadership
Jump to solution

The advanced ESX options are stored in the file /etc/vmware/esx.conf.

When you reboot an ESX host cleanly the intird RAM disk named like

  /boot/initrd-2.*.ELvmnix.img

(the exact name depends of the version and patch level of ESX) is rebuilt using the current configuration files.

So, you just need to compare the time stamp of the two files.

If the initrd-image is newer than esx.conf then the host has already been rebooted with the new settings.

If esx.conf is newer the host still needs to be rebooted for the current settings to become effective.

With ESXi things are slightly different. There you need to compare esx.conf with the archive file /bootbank/local.tgz.

Andreas

- VMware Front Experience Blog

Twitter: @VFrontDe, @ESXiPatches | https://esxi-patches.v-front.de | https://vibsdepot.v-front.de
utsavagarwal
Contributor
Contributor
Jump to solution

Peetz, thanks for your reply.

So, the  /boot/initrd-2.*.ELvmnix.img file timestamp will correspond to the "uptime" value on the ESX server.

The problem is esx.conf could have been updated by other values, thus nullifying the esx.conf timestamp compare. Sure, if esx.conf (with 128MB heap size) is older than /boot/initrd file timestamp or uptime, then that value had to have been applied. Might work in some cases. My 1st system has an esx.conf file newer, but I can't determine which change was made last?

Also, does ESX 3.5 and/or ESX 4.X log esxcfg-advcfg changes anywhere? Or changes made from the VI client. Especially useful if scripted (grep <something> <command.log>).

Will unpacking the initrd lead to anything useful? Like a copy of esx.conf at boot time...

Or any other option from querying somewhere that will lead to the current value of Heap size...

0 Kudos
peetz
Leadership
Leadership
Jump to solution

You are right, the initrd timestamp corresponds to the host's uptime, and of course there are easier methods to check the uptime (e.g. with the VI client or just with the command "uptime").

To be very sure you can extract the esx.conf from the initrd*.img file (this is indeed the copy used at last boot time) and check if it includes the change you made.

Instructions on how to do this are included in this KB article (it is meant for restoring a corrupted esx.conf from the "last known good" configuration stored in the initrd, but will help you too).

I'm not aware of any log file containing the changes you made. There might be something in vmkernel.log or the file that includes the last boot messages. We are on ESXi only, so I don't have any ESX host available for checking this right now. In ESXi it is /var/log/sysboot.log that contains the last boot messages.

Andreas

- VMware Front Experience Blog

Twitter: @VFrontDe, @ESXiPatches | https://esxi-patches.v-front.de | https://vibsdepot.v-front.de
0 Kudos
utsavagarwal
Contributor
Contributor
Jump to solution

Thanks Peetz!

That's probably it...the esx.conf in the initrd will probably be the best bet. I didn't see anything in the boot log. So for ESX 4, the initrd (which includes esx.conf) is recreated at every reboot. I will try to figure out how this works in ESX 3.5.

0 Kudos