If you like immudb, give us a star on Github!

vCenter Server Appliance 6.0 performance charts fail to load with the error: Performance Charts service returned an invalid response (2118223)

vCenter Server Appliance 6.0 performance charts fail to load with the error: Performance Charts service returned an invalid response (2118223)

If you encounter an error as mentioned in the blog title you´ll be surprised what the reason is. Warning Spoiler! IPv6 is disabled and the performance charts service needs IPv6 to run with the default configuration.

Within the log files you can find the following messages:

Performance Charts Service returns an invalid response.

and in the /var/log/vmware/perfcharts/wrapper.log file you can see entries similar to here:

  • jvm 1 | SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-0:0:0:0:0:0:0:1-13080"]
  • jvm 1 | java.net.SocketException: Protocol family unavailable
  • jvm 1 | at java.net.PlainSocketImpl.socketBind(Native Method)
  • jvm 1 | at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
  • jvm 1 | at java.net.ServerSocket.bind(Unknown Source)jvm 1 | at java.net.ServerSocket.< init >(Unknown Source)

That happens because the IPv6 socket is not available. The performance charts by default use IPv6 for communication and will not use IPv4 unless configured to do so.

The solution is described in the VMware knowledge base article 2118223.

  • Disable IPv6 for the performance charts from the /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf file.
  1. Open the vCenter Server console and log in as root.
  2. Type shell.set --enabled true and press Enter.
  3. Type shell and press Enter.
  4. Make a backup of the wrapper.conf file:cp /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf.old
  5. Open /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf with a text editor:vi /usr/lib/vmware-perfcharts/wrapper/conf/wrapper.conf
  6. Edit the line wrapper.java.additional.12=-Djava.net.preferIPv6Stack= to be false:For example:# Next three parameters are setting the garbage collBackector to ConcMarkSweep and are# enabling it to collect unused classes.wrapper.java.additional.9=-XX:+UseConcMarkSweepGC_wrapper.java.additional.10=-XX:+CMSClassUnloadingEnabledwrapper.java.additional.11=-XX:+CMSPermGenSweepingEnabledwrapper.java.additional.12=-Djava.net.preferIPv6Stack=false_
  7. Save the changes and close the file.
  8. Restart the performance chart service with these commands:_service-control --stop vmware-perfcharts_Then:service-control --start vmware-perfcharts
  9. Verify the service is running with this command:service-control --status vmware-perfcharts
  • Disable IPv6 for the performance charts from the /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml file.
  1. Open the vCenter Server console and log in as root.
  2. Type shell.set --enabled true and press Enter.
  3. Type shell and press Enter.
  4. Make a backup of the server.xml file:cp /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml.old
  5. Open /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml file with a text editor:vi /usr/lib/vmware-perfcharts//tc-instance/conf/server.xml
  6. Remove the  section::<Connector address="::1"                   acceptCount="300"   maxThreads="300"                    connectionTimeout="20000"                      executor="tomcatThreadPool"                      maxKeepAliveRequests="15"                      port="${bio.http.port}"                      protocol="org.apache.coyote.http11.Http11Protocol"/>
  7. Save the changes and close the file.
  8. Restart the performance chart service with these commands:_service-control --stop vmware-perfcharts_Then:service-control --start vmware-perfcharts
  9. Verify the service is running with this command:service-control --status vmware-perfcharts