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

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

book

Article ID: 338135

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Symptoms:
  • IPv6 is disabled in the vCenter Server Appliance
  • You see the error:

    Performance Charts Service returns an invalid response.

  • In the /var/log/vmware/perfcharts/wrapper.log file, you see entries similar to:

    | <Month DD, YYYY><time> com.springsource.tcserver.security.PropertyDecoder < init >
    </time>
    jvm 1 | INFO: tcServer Runtime property decoder has been initialized in 2016 ms
    jvm 1 | <Month DD, YYYY><time> org.apache.coyote.AbstractProtocol init
    </time>
    jvm 1 | INFO: Initializing ProtocolHandler ["http-bio-127.0.0.1-13080"]
    jvm 1 | <Month DD, YYYY><time> AM org.apache.coyote.AbstractProtocol init
    </time>
    jvm 1 | INFO: Initializing ProtocolHandler ["http-bio-0:0:0:0:0:0:0:1-13080"]
    jvm 1 | <Month DD, YYYY><time> AM org.apache.coyote.AbstractProtocol init
    </time>
    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)
    jvm 1 | at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:55)
    jvm 1 | at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:401)
    jvm 1 | at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:646)
    jvm 1 | at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
    jvm 1 | at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
    jvm 1 | at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
    jvm 1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    jvm 1 | at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
    jvm 1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    jvm 1 | at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:821)
    jvm 1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    jvm 1 | at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
    jvm 1 | at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
    jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    jvm 1 | at java.lang.reflect.Method.invoke(Unknown Source)
    jvm 1 | at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
    jvm 1 | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
    jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    jvm 1 | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    jvm 1 | at java.lang.reflect.Method.invoke(Unknown Source)
    jvm 1 | at org.tanukisoftware.wrapper.WrapperStartStopApp.run(WrapperStartStopApp.java:264)
    jvm 1 | at java.lang.Thread.run(Unknown Source)


    Note: The preceding log excerpts are only examples. Date, time, and environmental variables may vary depending on your environment.


Environment

VMware vCenter Server Appliance 6.0.x

Cause

This issue is caused by IPv6 being disabled on the vCenter Server Appliance. The performance charts by default use IPv6 for communication and will not use IPv4 unless configured to do so.

Resolution

To resolve this issue, perform one of these options to disable IPv6 on the performance charts:
  • 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:+CMSClassUnloadingEnabled
      wrapper.java.additional.11=-XX:+CMSPermGenSweepingEnabled
      wrapper.java.additional.12=-Djava.net.preferIPv6Stack=false

  • Save the changes and close the file.
  • Restart the performance chart service with these commands:

    service-control --stop vmware-perfcharts

    Then:

    service-control --start vmware-perfcharts

  • 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"<br> 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


Additional Information

vCenter Server Appliance 6.0 パフォーマンス チャートの読み込みに失敗し、次のエラーが表示される:パフォーマンス チャート サービスから無効な応答が返されました
vCenter Server Appliance 6.0 性能图表加载失败并显示错误: 性能图表服务返回无效的响应