Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

High memory usage with long HTTP/2 connections (GRPC) #9891

Closed
bartebor opened this issue Jan 31, 2020 · 5 comments
Closed

High memory usage with long HTTP/2 connections (GRPC) #9891

bartebor opened this issue Jan 31, 2020 · 5 comments
Labels
investigate Potential bug that needs verification stale stalebot believes this issue/PR has not been touched recently

Comments

@bartebor
Copy link
Contributor

Title: Envoy consumes a lot of memory with long running GRPC connections.

Description:
In one of our setups Envoy forwards GRPC traffic to cluster containing four endpoints. Downstream clients open long lasting HTTP/2 connections which transfer GRPC traffic. After each restart Envoy, starting from reasonably low memory usage, consumed ever increasing amount of RAM ending in the order of several GB. When connection terminated, memory usage decreased.

As a test we have shortened downstream connections from 3 hours to 15 minutes, what caused memory usage to drop significantly and fluctuate in the order of few hundred MB. In this case memory usage grows until first connections start to expire and only then memory is reclaimed.
In this scenario there are no more than 60 downstream_cx_active connections.

It looks like Envoy buffers (part of?) traffic as long as connection is open.

GRPC traffic contains quick request/response calls with no streaming, retries are disabled.

At the same time other instance of Envoy forwarding comparable traffic using HTTP/1 consumes around 80MB with very small fluctuations and this is how I think our former instance should behave.

Our Envoys work as a load balancers for kubernetes clusters with custom control plane (ADS) and libopentracing plugin.

Memory usage on envoy with profiling enabled:
envoy-memory-usage

Repro steps:
I have not managed to reproduce this outside of our cluster. Using simple "hello world" GRPC client/server did not expose this beaviour. I have collected memory profiles from our production instance. I can supply more information if needed (allocation stacks, etc.).

As a sidenote, older Envoy (custom build based on some 1.10 release) behaved the same, what suggests that it has nothing to do with buffer implementation I saw in the log.

Flame graph of one of heap files:
envoy-memory-usage-flamegraph

Admin and Stats Output: (with apologies for spamming)
Server info:

{
  "version": "8f2515a19bdcc75bea0bfd7016231a7661d0be6e/1.12.2/Modified/RELEASE/BoringSSL",
  "state": "LIVE",
  "hot_restart_version": "11.104",
  "command_line_options": {
    "base_id": "0",
    "concurrency": 12,
    "config_path": "/etc/envoy/envoy.yaml",
    "config_yaml": "",
    "allow_unknown_static_fields": false,
    "reject_unknown_dynamic_fields": false,
    "admin_address_path": "",
    "local_address_ip_version": "v4",
    "log_level": "info",
    "component_log_level": "",
    "log_format": "[%Y-%m-%d %T.%e][%t][%l][%n] %v",
    "log_path": "/var/log/envoy/envoy.log",
    "service_cluster": "",
    "service_node": "",
    "service_zone": "",
    "mode": "Serve",
    "max_stats": "0",
    "max_obj_name_len": "0",
    "disable_hot_restart": false,
    "enable_mutex_tracing": false,
    "restart_epoch": 0,
    "cpuset_threads": false,
    "file_flush_interval": "10s",
    "drain_time": "600s",
    "parent_shutdown_time": "900s"
  },
  "uptime_current_epoch": "12128s",
  "uptime_all_epochs": "12128s"
}

Shortened /stats output:

cluster.adexchange-app-ortb.unversioned.assignment_stale: 0
cluster.adexchange-app-ortb.unversioned.assignment_timeout_received: 0
cluster.adexchange-app-ortb.unversioned.bind_errors: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.default.cx_open: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.default.cx_pool_open: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.default.rq_open: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.default.rq_pending_open: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.default.rq_retry_open: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.high.cx_open: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.high.cx_pool_open: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.high.rq_open: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.high.rq_pending_open: 0
cluster.adexchange-app-ortb.unversioned.circuit_breakers.high.rq_retry_open: 0
cluster.adexchange-app-ortb.unversioned.default.total_match_count: 576
cluster.adexchange-app-ortb.unversioned.external.upstream_rq_200: 12502999
cluster.adexchange-app-ortb.unversioned.external.upstream_rq_2xx: 12502999
cluster.adexchange-app-ortb.unversioned.external.upstream_rq_503: 2
cluster.adexchange-app-ortb.unversioned.external.upstream_rq_5xx: 2
cluster.adexchange-app-ortb.unversioned.external.upstream_rq_completed: 12503001
cluster.adexchange-app-ortb.unversioned.http2.header_overflow: 0
cluster.adexchange-app-ortb.unversioned.http2.headers_cb_no_stream: 0
cluster.adexchange-app-ortb.unversioned.http2.inbound_empty_frames_flood: 0
cluster.adexchange-app-ortb.unversioned.http2.inbound_priority_frames_flood: 0
cluster.adexchange-app-ortb.unversioned.http2.inbound_window_update_frames_flood: 0
cluster.adexchange-app-ortb.unversioned.http2.outbound_control_flood: 0
cluster.adexchange-app-ortb.unversioned.http2.outbound_flood: 0
cluster.adexchange-app-ortb.unversioned.http2.rx_messaging_error: 0
cluster.adexchange-app-ortb.unversioned.http2.rx_reset: 11528
cluster.adexchange-app-ortb.unversioned.http2.too_many_header_frames: 0
cluster.adexchange-app-ortb.unversioned.http2.trailers: 0
cluster.adexchange-app-ortb.unversioned.http2.tx_reset: 317
cluster.adexchange-app-ortb.unversioned.init_fetch_timeout: 0
cluster.adexchange-app-ortb.unversioned.lb_healthy_panic: 0
cluster.adexchange-app-ortb.unversioned.lb_local_cluster_not_ok: 0
cluster.adexchange-app-ortb.unversioned.lb_recalculate_zone_structures: 0
cluster.adexchange-app-ortb.unversioned.lb_subsets_active: 0
cluster.adexchange-app-ortb.unversioned.lb_subsets_created: 0
cluster.adexchange-app-ortb.unversioned.lb_subsets_fallback: 0
cluster.adexchange-app-ortb.unversioned.lb_subsets_fallback_panic: 0
cluster.adexchange-app-ortb.unversioned.lb_subsets_removed: 0
cluster.adexchange-app-ortb.unversioned.lb_subsets_selected: 0
cluster.adexchange-app-ortb.unversioned.lb_zone_cluster_too_small: 0
cluster.adexchange-app-ortb.unversioned.lb_zone_no_capacity_left: 0
cluster.adexchange-app-ortb.unversioned.lb_zone_number_differs: 0
cluster.adexchange-app-ortb.unversioned.lb_zone_routing_all_directly: 0
cluster.adexchange-app-ortb.unversioned.lb_zone_routing_cross_zone: 0
cluster.adexchange-app-ortb.unversioned.lb_zone_routing_sampled: 0
cluster.adexchange-app-ortb.unversioned.max_host_weight: 1
cluster.adexchange-app-ortb.unversioned.membership_change: 1
cluster.adexchange-app-ortb.unversioned.membership_degraded: 0
cluster.adexchange-app-ortb.unversioned.membership_excluded: 0
cluster.adexchange-app-ortb.unversioned.membership_healthy: 4
cluster.adexchange-app-ortb.unversioned.membership_total: 4
cluster.adexchange-app-ortb.unversioned.original_dst_host_invalid: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_active: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_consecutive_5xx: 1812
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_detected_consecutive_5xx: 1812
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_detected_consecutive_gateway_failure: 1870
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_detected_consecutive_local_origin_failure: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_detected_failure_percentage: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_detected_local_origin_failure_percentage: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_detected_local_origin_success_rate: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_detected_success_rate: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_enforced_consecutive_5xx: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_enforced_consecutive_gateway_failure: 51
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_enforced_consecutive_local_origin_failure: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_enforced_failure_percentage: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_enforced_local_origin_failure_percentage: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_enforced_local_origin_success_rate: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_enforced_success_rate: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_enforced_total: 51
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_overflow: 3631
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_success_rate: 0
cluster.adexchange-app-ortb.unversioned.outlier_detection.ejections_total: 0
cluster.adexchange-app-ortb.unversioned.retry_or_shadow_abandoned: 0
cluster.adexchange-app-ortb.unversioned.update_attempt: 145
cluster.adexchange-app-ortb.unversioned.update_empty: 0
cluster.adexchange-app-ortb.unversioned.update_failure: 0
cluster.adexchange-app-ortb.unversioned.update_no_rebuild: 143
cluster.adexchange-app-ortb.unversioned.update_rejected: 0
cluster.adexchange-app-ortb.unversioned.update_success: 144
cluster.adexchange-app-ortb.unversioned.upstream_cx_active: 32
cluster.adexchange-app-ortb.unversioned.upstream_cx_close_notify: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_connect_attempts_exceeded: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_connect_fail: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_connect_timeout: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_destroy: 393
cluster.adexchange-app-ortb.unversioned.upstream_cx_destroy_local: 393
cluster.adexchange-app-ortb.unversioned.upstream_cx_destroy_local_with_active_rq: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_destroy_remote: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_destroy_remote_with_active_rq: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_destroy_with_active_rq: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_http1_total: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_http2_total: 425
cluster.adexchange-app-ortb.unversioned.upstream_cx_idle_timeout: 4
cluster.adexchange-app-ortb.unversioned.upstream_cx_max_requests: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_none_healthy: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_overflow: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_pool_overflow: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_protocol_error: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_rx_bytes_buffered: 77599
cluster.adexchange-app-ortb.unversioned.upstream_cx_rx_bytes_total: 271553849786
cluster.adexchange-app-ortb.unversioned.upstream_cx_total: 425
cluster.adexchange-app-ortb.unversioned.upstream_cx_tx_bytes_buffered: 0
cluster.adexchange-app-ortb.unversioned.upstream_cx_tx_bytes_total: 81327125967
cluster.adexchange-app-ortb.unversioned.upstream_flow_control_backed_up_total: 0
cluster.adexchange-app-ortb.unversioned.upstream_flow_control_drained_total: 0
cluster.adexchange-app-ortb.unversioned.upstream_flow_control_paused_reading_total: 0
cluster.adexchange-app-ortb.unversioned.upstream_flow_control_resumed_reading_total: 0
cluster.adexchange-app-ortb.unversioned.upstream_internal_redirect_failed_total: 0
cluster.adexchange-app-ortb.unversioned.upstream_internal_redirect_succeeded_total: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_200: 12502999
cluster.adexchange-app-ortb.unversioned.upstream_rq_2xx: 12502999
cluster.adexchange-app-ortb.unversioned.upstream_rq_503: 2
cluster.adexchange-app-ortb.unversioned.upstream_rq_5xx: 2
cluster.adexchange-app-ortb.unversioned.upstream_rq_active: 185
cluster.adexchange-app-ortb.unversioned.upstream_rq_cancelled: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_completed: 12503001
cluster.adexchange-app-ortb.unversioned.upstream_rq_maintenance_mode: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_pending_active: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_pending_failure_eject: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_pending_overflow: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_pending_total: 1286
cluster.adexchange-app-ortb.unversioned.upstream_rq_per_try_timeout: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_retry: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_retry_overflow: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_retry_success: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_rx_reset: 2
cluster.adexchange-app-ortb.unversioned.upstream_rq_timeout: 0
cluster.adexchange-app-ortb.unversioned.upstream_rq_total: 12503267
cluster.adexchange-app-ortb.unversioned.upstream_rq_tx_reset: 83
cluster.adexchange-app-ortb.unversioned.version: 17786303728046147426
cluster_manager.active_clusters: 127
cluster_manager.cds.init_fetch_timeout: 0
cluster_manager.cds.update_attempt: 50
cluster_manager.cds.update_failure: 0
cluster_manager.cds.update_rejected: 0
cluster_manager.cds.update_success: 49
cluster_manager.cds.version: 5057398246877406379
cluster_manager.cluster_added: 151
cluster_manager.cluster_modified: 0
cluster_manager.cluster_removed: 24
cluster_manager.cluster_updated: 176
cluster_manager.cluster_updated_via_merge: 51
cluster_manager.update_merge_cancelled: 0
cluster_manager.update_out_of_merge_window: 97
cluster_manager.warming_clusters: 0
control_plane.connected_state: 1
control_plane.pending_requests: 0
control_plane.rate_limit_enforced: 0
filesystem.flushed_by_timer: 4417
filesystem.reopen_failed: 0
filesystem.write_buffered: 1145
filesystem.write_completed: 765
filesystem.write_failed: 0
filesystem.write_total_buffered: 0
http.admin.downstream_cx_active: 8
http.admin.downstream_cx_delayed_close_timeout: 0
http.admin.downstream_cx_destroy: 576
http.admin.downstream_cx_destroy_active_rq: 0
http.admin.downstream_cx_destroy_local: 572
http.admin.downstream_cx_destroy_local_active_rq: 0
http.admin.downstream_cx_destroy_remote: 4
http.admin.downstream_cx_destroy_remote_active_rq: 0
http.admin.downstream_cx_drain_close: 0
http.admin.downstream_cx_http1_active: 8
http.admin.downstream_cx_http1_total: 584
http.admin.downstream_cx_http2_active: 0
http.admin.downstream_cx_http2_total: 0
http.admin.downstream_cx_http3_active: 0
http.admin.downstream_cx_http3_total: 0
http.admin.downstream_cx_idle_timeout: 0
http.admin.downstream_cx_max_duration_reached: 0
http.admin.downstream_cx_overload_disable_keepalive: 0
http.admin.downstream_cx_protocol_error: 0
http.admin.downstream_cx_rx_bytes_buffered: 3206
http.admin.downstream_cx_rx_bytes_total: 112333
http.admin.downstream_cx_ssl_active: 0
http.admin.downstream_cx_ssl_total: 0
http.admin.downstream_cx_total: 584
http.admin.downstream_cx_tx_bytes_buffered: 0
http.admin.downstream_cx_tx_bytes_total: 39940200
http.admin.downstream_cx_upgrades_active: 0
http.admin.downstream_cx_upgrades_total: 0
http.admin.downstream_flow_control_paused_reading_total: 0
http.admin.downstream_flow_control_resumed_reading_total: 0
http.admin.downstream_rq_1xx: 0
http.admin.downstream_rq_2xx: 670
http.admin.downstream_rq_3xx: 0
http.admin.downstream_rq_4xx: 0
http.admin.downstream_rq_5xx: 0
http.admin.downstream_rq_active: 1
http.admin.downstream_rq_completed: 670
http.admin.downstream_rq_http1_total: 671
http.admin.downstream_rq_http2_total: 0
http.admin.downstream_rq_http3_total: 0
http.admin.downstream_rq_idle_timeout: 0
http.admin.downstream_rq_non_relative_path: 0
http.admin.downstream_rq_overload_close: 0
http.admin.downstream_rq_response_before_rq_complete: 0
http.admin.downstream_rq_rx_reset: 0
http.admin.downstream_rq_timeout: 0
http.admin.downstream_rq_too_large: 0
http.admin.downstream_rq_total: 671
http.admin.downstream_rq_tx_reset: 0
http.admin.downstream_rq_ws_on_non_ws_route: 0
http.admin.rs_too_large: 0
http.async-client.no_cluster: 0
http.async-client.no_route: 0
http.async-client.rq_direct_response: 0
http.async-client.rq_redirect: 0
http.async-client.rq_reset_after_downstream_response_started: 0
http.async-client.rq_retry_skipped_request_not_complete: 0
http.async-client.rq_total: 1
http.custom-14500-http.downstream_cx_active: 58
http.custom-14500-http.downstream_cx_delayed_close_timeout: 0
http.custom-14500-http.downstream_cx_destroy: 7744
http.custom-14500-http.downstream_cx_destroy_active_rq: 26
http.custom-14500-http.downstream_cx_destroy_local: 0
http.custom-14500-http.downstream_cx_destroy_local_active_rq: 0
http.custom-14500-http.downstream_cx_destroy_remote: 7744
http.custom-14500-http.downstream_cx_destroy_remote_active_rq: 26
http.custom-14500-http.downstream_cx_drain_close: 0
http.custom-14500-http.downstream_cx_http1_active: 0
http.custom-14500-http.downstream_cx_http1_total: 1
http.custom-14500-http.downstream_cx_http2_active: 58
http.custom-14500-http.downstream_cx_http2_total: 1210
http.custom-14500-http.downstream_cx_http3_active: 0
http.custom-14500-http.downstream_cx_http3_total: 0
http.custom-14500-http.downstream_cx_idle_timeout: 0
http.custom-14500-http.downstream_cx_max_duration_reached: 0
http.custom-14500-http.downstream_cx_overload_disable_keepalive: 0
http.custom-14500-http.downstream_cx_protocol_error: 0
http.custom-14500-http.downstream_cx_rx_bytes_buffered: 261659
http.custom-14500-http.downstream_cx_rx_bytes_total: 80179078770
http.custom-14500-http.downstream_cx_ssl_active: 0
http.custom-14500-http.downstream_cx_ssl_total: 0
http.custom-14500-http.downstream_cx_total: 7802
http.custom-14500-http.downstream_cx_tx_bytes_buffered: 176050
http.custom-14500-http.downstream_cx_tx_bytes_total: 267479533345
http.custom-14500-http.downstream_cx_upgrades_active: 0
http.custom-14500-http.downstream_cx_upgrades_total: 0
http.custom-14500-http.downstream_flow_control_paused_reading_total: 0
http.custom-14500-http.downstream_flow_control_resumed_reading_total: 0
http.custom-14500-http.downstream_rq_1xx: 0
http.custom-14500-http.downstream_rq_2xx: 12502986
http.custom-14500-http.downstream_rq_3xx: 0
http.custom-14500-http.downstream_rq_4xx: 0
http.custom-14500-http.downstream_rq_5xx: 2
http.custom-14500-http.downstream_rq_active: 186
http.custom-14500-http.downstream_rq_completed: 12502988
http.custom-14500-http.downstream_rq_http1_total: 2
http.custom-14500-http.downstream_rq_http2_total: 12503256
http.custom-14500-http.downstream_rq_http3_total: 0
http.custom-14500-http.downstream_rq_idle_timeout: 0
http.custom-14500-http.downstream_rq_non_relative_path: 0
http.custom-14500-http.downstream_rq_overload_close: 0
http.custom-14500-http.downstream_rq_response_before_rq_complete: 234
http.custom-14500-http.downstream_rq_rx_reset: 317
http.custom-14500-http.downstream_rq_timeout: 0
http.custom-14500-http.downstream_rq_too_large: 0
http.custom-14500-http.downstream_rq_total: 12503258
http.custom-14500-http.downstream_rq_tx_reset: 0
http.custom-14500-http.downstream_rq_ws_on_non_ws_route: 0
http.custom-14500-http.no_cluster: 0
http.custom-14500-http.no_route: 0
http.custom-14500-http.rds.custom-14500-http.config_reload: 1
http.custom-14500-http.rds.custom-14500-http.init_fetch_timeout: 0
http.custom-14500-http.rds.custom-14500-http.update_attempt: 121
http.custom-14500-http.rds.custom-14500-http.update_empty: 0
http.custom-14500-http.rds.custom-14500-http.update_failure: 0
http.custom-14500-http.rds.custom-14500-http.update_rejected: 0
http.custom-14500-http.rds.custom-14500-http.update_success: 120
http.custom-14500-http.rds.custom-14500-http.version: 10811743496277404039
http.custom-14500-http.rq_direct_response: 0
http.custom-14500-http.rq_redirect: 0
http.custom-14500-http.rq_reset_after_downstream_response_started: 0
http.custom-14500-http.rq_retry_skipped_request_not_complete: 0
http.custom-14500-http.rq_total: 12503258
http.custom-14500-http.rs_too_large: 0
http.custom-14500-http.tracing.client_enabled: 0
http.custom-14500-http.tracing.health_check: 0
http.custom-14500-http.tracing.not_traceable: 0
http.custom-14500-http.tracing.random_sampling: 12503258
http.custom-14500-http.tracing.service_forced: 0
http1.metadata_not_supported_error: 0
http2.header_overflow: 0
http2.headers_cb_no_stream: 0
http2.inbound_empty_frames_flood: 0
http2.inbound_priority_frames_flood: 0
http2.inbound_window_update_frames_flood: 0
http2.outbound_control_flood: 0
http2.outbound_flood: 0
http2.rx_messaging_error: 0
http2.rx_reset: 0
http2.too_many_header_frames: 0
http2.trailers: 0
http2.tx_reset: 234
listener.0.0.0.0_14500.downstream_cx_active: 58
listener.0.0.0.0_14500.downstream_cx_destroy: 7744
listener.0.0.0.0_14500.downstream_cx_total: 7802
listener.0.0.0.0_14500.downstream_pre_cx_active: 0
listener.0.0.0.0_14500.downstream_pre_cx_timeout: 0
listener.0.0.0.0_14500.http.custom-14500-http.downstream_rq_1xx: 0
listener.0.0.0.0_14500.http.custom-14500-http.downstream_rq_2xx: 12502991
listener.0.0.0.0_14500.http.custom-14500-http.downstream_rq_3xx: 0
listener.0.0.0.0_14500.http.custom-14500-http.downstream_rq_4xx: 0
listener.0.0.0.0_14500.http.custom-14500-http.downstream_rq_5xx: 2
listener.0.0.0.0_14500.http.custom-14500-http.downstream_rq_completed: 12502993
listener.0.0.0.0_14500.no_filter_chain_match: 0
listener.0.0.0.0_14500.worker_0.downstream_cx_active: 0
listener.0.0.0.0_14500.worker_0.downstream_cx_total: 6
listener.0.0.0.0_14500.worker_1.downstream_cx_active: 0
listener.0.0.0.0_14500.worker_1.downstream_cx_total: 25
listener.0.0.0.0_14500.worker_10.downstream_cx_active: 9
listener.0.0.0.0_14500.worker_10.downstream_cx_total: 1123
listener.0.0.0.0_14500.worker_11.downstream_cx_active: 14
listener.0.0.0.0_14500.worker_11.downstream_cx_total: 1653
listener.0.0.0.0_14500.worker_2.downstream_cx_active: 9
listener.0.0.0.0_14500.worker_2.downstream_cx_total: 639
listener.0.0.0.0_14500.worker_3.downstream_cx_active: 0
listener.0.0.0.0_14500.worker_3.downstream_cx_total: 59
listener.0.0.0.0_14500.worker_4.downstream_cx_active: 2
listener.0.0.0.0_14500.worker_4.downstream_cx_total: 397
listener.0.0.0.0_14500.worker_5.downstream_cx_active: 0
listener.0.0.0.0_14500.worker_5.downstream_cx_total: 193
listener.0.0.0.0_14500.worker_6.downstream_cx_active: 17
listener.0.0.0.0_14500.worker_6.downstream_cx_total: 2230
listener.0.0.0.0_14500.worker_7.downstream_cx_active: 0
listener.0.0.0.0_14500.worker_7.downstream_cx_total: 165
listener.0.0.0.0_14500.worker_8.downstream_cx_active: 0
listener.0.0.0.0_14500.worker_8.downstream_cx_total: 36
listener.0.0.0.0_14500.worker_9.downstream_cx_active: 7
listener.0.0.0.0_14500.worker_9.downstream_cx_total: 1276
listener.admin.downstream_cx_active: 8
listener.admin.downstream_cx_destroy: 576
listener.admin.downstream_cx_total: 584
listener.admin.downstream_pre_cx_active: 0
listener.admin.downstream_pre_cx_timeout: 0
listener.admin.http.admin.downstream_rq_1xx: 0
listener.admin.http.admin.downstream_rq_2xx: 670
listener.admin.http.admin.downstream_rq_3xx: 0
listener.admin.http.admin.downstream_rq_4xx: 0
listener.admin.http.admin.downstream_rq_5xx: 0
listener.admin.http.admin.downstream_rq_completed: 670
listener.admin.main_thread.downstream_cx_active: 8
listener.admin.main_thread.downstream_cx_total: 584
listener.admin.no_filter_chain_match: 0
listener_manager.lds.init_fetch_timeout: 0
listener_manager.lds.update_attempt: 949
listener_manager.lds.update_failure: 0
listener_manager.lds.update_rejected: 0
listener_manager.lds.update_success: 948
listener_manager.lds.version: 6571843305894850303
listener_manager.listener_added: 7
listener_manager.listener_create_failure: 0
listener_manager.listener_create_success: 84
listener_manager.listener_modified: 0
listener_manager.listener_removed: 0
listener_manager.listener_stopped: 0
listener_manager.total_listeners_active: 7
listener_manager.total_listeners_draining: 0
listener_manager.total_listeners_warming: 0
runtime.admin_overrides_active: 0
runtime.deprecated_feature_use: 0
runtime.load_error: 0
runtime.load_success: 1
runtime.num_keys: 0
runtime.num_layers: 2
runtime.override_dir_exists: 0
runtime.override_dir_not_exists: 1
server.concurrency: 12
server.days_until_first_cert_expiring: 2147483647
server.debug_assertion_failures: 0
server.dynamic_unknown_fields: 0
server.hot_restart_epoch: 0
server.live: 1
server.main_thread.watchdog_mega_miss: 3
server.main_thread.watchdog_miss: 97
server.memory_allocated: 200580944
server.memory_heap_size: 939524096
server.parent_connections: 0
server.state: 0
server.static_unknown_fields: 0
server.stats_recent_lookups: 0
server.total_connections: 57
server.uptime: 11429
server.version: 9381141
server.watchdog_mega_miss: 91
server.watchdog_miss: 1116
server.worker_0.watchdog_mega_miss: 2
server.worker_0.watchdog_miss: 17
server.worker_1.watchdog_mega_miss: 0
server.worker_1.watchdog_miss: 5
server.worker_10.watchdog_mega_miss: 11
server.worker_10.watchdog_miss: 133
server.worker_11.watchdog_mega_miss: 12
server.worker_11.watchdog_miss: 141
server.worker_2.watchdog_mega_miss: 7
server.worker_2.watchdog_miss: 119
server.worker_3.watchdog_mega_miss: 9
server.worker_3.watchdog_miss: 32
server.worker_4.watchdog_mega_miss: 2
server.worker_4.watchdog_miss: 73
server.worker_5.watchdog_mega_miss: 7
server.worker_5.watchdog_miss: 71
server.worker_6.watchdog_mega_miss: 23
server.worker_6.watchdog_miss: 246
server.worker_7.watchdog_mega_miss: 0
server.worker_7.watchdog_miss: 6
server.worker_8.watchdog_mega_miss: 1
server.worker_8.watchdog_miss: 18
server.worker_9.watchdog_mega_miss: 14
server.worker_9.watchdog_miss: 158
tracing.opentracing.span_context_extraction_error: 0
tracing.opentracing.span_context_injection_error: 0
http.admin.downstream_cx_length_ms: P0(0,0) P25(0,0) P50(0,0) P75(0,1.02029) P90(0,1.0829) P95(0,2.03714) P99(0,22.24) P99.5(0,2312) P99.9(0,3.6712e+06) P100(0,3.7e+06)
http.admin.downstream_rq_time: P0(0,0) P25(0,0) P50(0,0) P75(0,0) P90(0,29.6) P95(0,39.9) P99(0,171.5) P99.5(0,356.5) P99.9(0,2333) P100(0,2400)
http.custom-14500-http.downstream_cx_length_ms: P0(0,0) P25(0,0) P50(0,0) P75(302500,0) P90(310000,309344) P95(905000,605158) P99(909000,907355) P99.5(909500,908713) P99.9(909900,909799) P100(910000,4.6e+06)
http.custom-14500-http.downstream_rq_time: P0(3,0) P25(31.9625,27.4678) P50(90.6818,64.7743) P75(218.689,170.288) P90(269.254,266.17) P95(278.707,278.002) P99(379.067,434.115) P99.5(432.886,545.941) P99.9(479.505,971.469) P100(660,3800)
listener.0.0.0.0_14500.downstream_cx_length_ms: P0(0,0) P25(0,0) P50(0,0) P75(302500,0) P90(310000,309344) P95(905000,605006) P99(909000,907355) P99.5(909500,908713) P99.9(909900,909799) P100(910000,4.6e+06)
listener.0.0.0.0_9900.downstream_cx_length_ms: P0(nan,0) P25(nan,9487.5) P50(nan,60410.6) P75(nan,74250) P90(nan,118077) P95(nan,164167) P99(nan,254250) P99.5(nan,279250) P99.9(nan,415850) P100(nan,420000)
listener.0.0.0.0_9902.downstream_cx_length_ms: P0(nan,100) P25(nan,131.667) P50(nan,148.235) P75(nan,170) P90(nan,294) P95(nan,792) P99(nan,1152) P99.5(nan,1176) P99.9(nan,1195.2) P100(nan,1200)
listener.admin.downstream_cx_length_ms: P0(0,0) P25(0,0) P50(0,0) P75(0,1.01328) P90(0,1.08078) P95(0,2.028) P99(0,22.24) P99.5(0,2312) P99.9(0,3.6712e+06) P100(0,3.7e+06)
server.initialization_time_ms: P0(nan,560) P25(nan,562.5) P50(nan,565) P75(nan,567.5) P90(nan,569) P95(nan,569.5) P99(nan,569.9) P99.5(nan,569.95) P99.9(nan,569.99) P100(nan,570)

Clusters:

adexchange-app-ortb::outlier::success_rate_average::-1
adexchange-app-ortb::outlier::success_rate_ejection_threshold::-1
adexchange-app-ortb::outlier::local_origin_success_rate_average::-1
adexchange-app-ortb::outlier::local_origin_success_rate_ejection_threshold::-1
adexchange-app-ortb::default_priority::max_connections::20000
adexchange-app-ortb::default_priority::max_pending_requests::20000
adexchange-app-ortb::default_priority::max_requests::20000
adexchange-app-ortb::default_priority::max_retries::100
adexchange-app-ortb::high_priority::max_connections::1024
adexchange-app-ortb::high_priority::max_pending_requests::1024
adexchange-app-ortb::high_priority::max_requests::1024
adexchange-app-ortb::high_priority::max_retries::3
adexchange-app-ortb::added_via_api::true
adexchange-app-ortb::10.34.28.1:7953::cx_active::8
adexchange-app-ortb::10.34.28.1:7953::cx_connect_fail::0
adexchange-app-ortb::10.34.28.1:7953::cx_total::186
adexchange-app-ortb::10.34.28.1:7953::rq_active::15
adexchange-app-ortb::10.34.28.1:7953::rq_error::5340
adexchange-app-ortb::10.34.28.1:7953::rq_success::2878793
adexchange-app-ortb::10.34.28.1:7953::rq_timeout::0
adexchange-app-ortb::10.34.28.1:7953::rq_total::2884163
adexchange-app-ortb::10.34.28.1:7953::hostname::
adexchange-app-ortb::10.34.28.1:7953::health_flags::healthy
adexchange-app-ortb::10.34.28.1:7953::weight::1
adexchange-app-ortb::10.34.28.1:7953::region::
adexchange-app-ortb::10.34.28.1:7953::zone::
adexchange-app-ortb::10.34.28.1:7953::sub_zone::
adexchange-app-ortb::10.34.28.1:7953::canary::false
adexchange-app-ortb::10.34.28.1:7953::priority::0
adexchange-app-ortb::10.34.28.1:7953::success_rate::-1
adexchange-app-ortb::10.34.28.1:7953::local_origin_success_rate::-1
adexchange-app-ortb::10.34.16.6:7953::cx_active::9
adexchange-app-ortb::10.34.16.6:7953::cx_connect_fail::0
adexchange-app-ortb::10.34.16.6:7953::cx_total::33
adexchange-app-ortb::10.34.16.6:7953::rq_active::26
adexchange-app-ortb::10.34.16.6:7953::rq_error::4664
adexchange-app-ortb::10.34.16.6:7953::rq_success::3500934
adexchange-app-ortb::10.34.16.6:7953::rq_timeout::0
adexchange-app-ortb::10.34.16.6:7953::rq_total::3505640
adexchange-app-ortb::10.34.16.6:7953::hostname::
adexchange-app-ortb::10.34.16.6:7953::health_flags::healthy
adexchange-app-ortb::10.34.16.6:7953::weight::1
adexchange-app-ortb::10.34.16.6:7953::region::
adexchange-app-ortb::10.34.16.6:7953::zone::
adexchange-app-ortb::10.34.16.6:7953::sub_zone::
adexchange-app-ortb::10.34.16.6:7953::canary::false
adexchange-app-ortb::10.34.16.6:7953::priority::0
adexchange-app-ortb::10.34.16.6:7953::success_rate::-1
adexchange-app-ortb::10.34.16.6:7953::local_origin_success_rate::-1
adexchange-app-ortb::10.34.22.139:7953::cx_active::9
adexchange-app-ortb::10.34.22.139:7953::cx_connect_fail::0
adexchange-app-ortb::10.34.22.139:7953::cx_total::113
adexchange-app-ortb::10.34.22.139:7953::rq_active::19
adexchange-app-ortb::10.34.22.139:7953::rq_error::7457
adexchange-app-ortb::10.34.22.139:7953::rq_success::3371680
adexchange-app-ortb::10.34.22.139:7953::rq_timeout::0
adexchange-app-ortb::10.34.22.139:7953::rq_total::3379178
adexchange-app-ortb::10.34.22.139:7953::hostname::
adexchange-app-ortb::10.34.22.139:7953::health_flags::healthy
adexchange-app-ortb::10.34.22.139:7953::weight::1
adexchange-app-ortb::10.34.22.139:7953::region::
adexchange-app-ortb::10.34.22.139:7953::zone::
adexchange-app-ortb::10.34.22.139:7953::sub_zone::
adexchange-app-ortb::10.34.22.139:7953::canary::false
adexchange-app-ortb::10.34.22.139:7953::priority::0
adexchange-app-ortb::10.34.22.139:7953::success_rate::-1
adexchange-app-ortb::10.34.22.139:7953::local_origin_success_rate::-1
adexchange-app-ortb::10.34.23.133:7953::cx_active::6
adexchange-app-ortb::10.34.23.133:7953::cx_connect_fail::0
adexchange-app-ortb::10.34.23.133:7953::cx_total::93
adexchange-app-ortb::10.34.23.133:7953::rq_active::20
adexchange-app-ortb::10.34.23.133:7953::rq_error::6356
adexchange-app-ortb::10.34.23.133:7953::rq_success::3360968
adexchange-app-ortb::10.34.23.133:7953::rq_timeout::0
adexchange-app-ortb::10.34.23.133:7953::rq_total::3367374
adexchange-app-ortb::10.34.23.133:7953::hostname::
adexchange-app-ortb::10.34.23.133:7953::health_flags::healthy
adexchange-app-ortb::10.34.23.133:7953::weight::1
adexchange-app-ortb::10.34.23.133:7953::region::
adexchange-app-ortb::10.34.23.133:7953::zone::
adexchange-app-ortb::10.34.23.133:7953::sub_zone::
adexchange-app-ortb::10.34.23.133:7953::canary::false
adexchange-app-ortb::10.34.23.133:7953::priority::0
adexchange-app-ortb::10.34.23.133:7953::success_rate::-1
adexchange-app-ortb::10.34.23.133:7953::local_origin_success_rate::-1

Config:
Fragments from from /config_dump:

{
  "version_info": "1580293429-1-15384",
  "listener": {
    "name": "custom-14500-http",
    "address": {
      "socket_address": {
        "address": "0.0.0.0",
        "port_value": 14500
      }
    },
    "filter_chains": [
      {
        "filters": [
          {
            "name": "envoy.http_connection_manager",
            "typed_config": {
              "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager",
              "stat_prefix": "custom-14500-http",
              "rds": {
                "config_source": {
                  "ads": {}
                },
                "route_config_name": "custom-14500-http"
              },
              "http_filters": [
                {
                  "name": "envoy.router",
                  "typed_config": {
                    "@type": "type.googleapis.com/envoy.config.filter.http.router.v2.Router"
                  }
                }
              ],
              "tracing": {
                "request_headers_for_tags": [
                  "x-auto-domain",
                  "uber-trace-id",
                  "x-forwarded-host"
                ],
                "verbose": true
              },
              "http2_protocol_options": {},
              "upgrade_configs": [
                {
                  "upgrade_type": "websocket"
                }
              ],
              "max_request_headers_kb": 96
            }
          }
        ]
      }
    ]
  },
  "last_updated": "2020-01-31T11:40:52.249Z"
}


{
  "version_info": "1580293429-1-2285",
  "route_config": {
    "name": "custom-14500-http",
    "virtual_hosts": [
      {
        "name": "adexchange-app-ortb",
        "domains": [
          "*",
          "*.*"
        ],
        "routes": [
          {
            "match": {
              "prefix": "/"
            },
            "route": {
              "cluster": "adexchange-app-ortb"
            }
          }
        ],
        "request_headers_to_add": [
          {
            "header": {
              "key": "X-Auto-Domain",
              "value": "adexchange-app-ortb"
            },
            "append": false
          }
        ]
      }
    ],
    "response_headers_to_add": [
      {
        "header": {
          "key": "x-envoy-upstream-host",
          "value": "%UPSTREAM_REMOTE_ADDRESS%"
        },
        "append": false
      }
    ]
  },
  "last_updated": "2020-01-31T11:40:52.268Z"
}

{
  "version_info": "1580293429-1-802",
  "cluster": {
    "name": "adexchange-app-ortb",
    "type": "EDS",
    "eds_cluster_config": {
      "eds_config": {
        "ads": {}
      }
    },
    "connect_timeout": "2s",
    "circuit_breakers": {
      "thresholds": [
        {
          "max_connections": 20000,
          "max_pending_requests": 20000,
          "max_requests": 20000,
          "max_retries": 100
        }
      ]
    },
    "http2_protocol_options": {},
    "dns_lookup_family": "V4_ONLY",
    "outlier_detection": {
      "interval": "1s",
      "base_ejection_time": "5s",
      "enforcing_consecutive_5xx": 0,
      "consecutive_gateway_failure": 5,
      "enforcing_consecutive_gateway_failure": 100
    },
    "upstream_bind_config": {
      "source_address": {
        "address": "0.0.0.0",
        "port_value": 0
      },
      "socket_options": [
        {
          "name": "24",
          "int_value": "1"
        }
      ]
    },
    "alt_stat_name": "adexchange-app-ortb.unversioned",
    "drain_connections_on_host_removal": true
  },
  "last_updated": "2020-01-31T11:40:52.042Z"
}

Logs:
Starting logs:

[2020-01-31 12:40:51.710][1][info][main] [source/server/server.cc:249] initializing epoch 0 (hot restart version=11.104)
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:251] statically linked extensions:
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:253]   access_loggers: envoy.file_access_log,envoy.http_grpc_access_log,envoy.tcp_grpc_access_log
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:256]   filters.http: envoy.buffer,envoy.cors,envoy.csrf,envoy.ext_authz,envoy.fault,envoy.filters.http.adaptive_concurrency,envoy.filters.http.dy
namic_forward_proxy,envoy.filters.http.grpc_http1_reverse_bridge,envoy.filters.http.grpc_stats,envoy.filters.http.header_to_metadata,envoy.filters.http.jwt_authn,envoy.filters.http.original_src,envoy.filters.htt
p.rbac,envoy.filters.http.tap,envoy.grpc_http1_bridge,envoy.grpc_json_transcoder,envoy.grpc_web,envoy.gzip,envoy.health_check,envoy.http_dynamo_filter,envoy.ip_tagging,envoy.lua,envoy.rate_limit,envoy.router,env
oy.squash
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:259]   filters.listener: envoy.listener.http_inspector,envoy.listener.original_dst,envoy.listener.original_src,envoy.listener.proxy_protocol,envo
y.listener.tls_inspector
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:262]   filters.network: envoy.client_ssl_auth,envoy.echo,envoy.ext_authz,envoy.filters.network.dubbo_proxy,envoy.filters.network.mysql_proxy,envo
y.filters.network.rbac,envoy.filters.network.sni_cluster,envoy.filters.network.thrift_proxy,envoy.filters.network.zookeeper_proxy,envoy.http_connection_manager,envoy.mongo_proxy,envoy.ratelimit,envoy.redis_proxy
,envoy.tcp_proxy
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:264]   stat_sinks: envoy.dog_statsd,envoy.metrics_service,envoy.stat_sinks.hystrix,envoy.statsd
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:266]   tracers: envoy.dynamic.ot,envoy.lightstep,envoy.tracers.datadog,envoy.tracers.opencensus,envoy.tracers.xray,envoy.zipkin
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:269]   transport_sockets.downstream: envoy.transport_sockets.alts,envoy.transport_sockets.raw_buffer,envoy.transport_sockets.tap,envoy.transport_
sockets.tls,raw_buffer,tls
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:272]   transport_sockets.upstream: envoy.transport_sockets.alts,envoy.transport_sockets.raw_buffer,envoy.transport_sockets.tap,envoy.transport_so
ckets.tls,raw_buffer,tls
[2020-01-31 12:40:51.711][1][info][main] [source/server/server.cc:278] buffer implementation: new
[2020-01-31 12:40:51.721][1][warning][misc] [source/common/protobuf/utility.cc:282] Using deprecated option 'envoy.config.metrics.v2.StatsSink.config' from file stats.proto. This configuration will be removed fr
om Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
[2020-01-31 12:40:51.721][1][warning][misc] [source/common/protobuf/utility.cc:282] Using deprecated option 'envoy.config.trace.v2.Tracing.Http.config' from file trace.proto. This configuration will be removed f
rom Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
[2020-01-31 12:40:51.727][1][info][main] [source/server/server.cc:344] admin address: 127.0.0.1:9901
[2020-01-31 12:40:51.731][1][info][main] [source/server/server.cc:458] runtime: layers:
  - name: base
    static_layer:
      {}
  - name: admin
    admin_layer:
      {}
[2020-01-31 12:40:51.731][1][info][config] [source/server/configuration_impl.cc:62] loading 0 static secret(s)
[2020-01-31 12:40:51.731][1][info][config] [source/server/configuration_impl.cc:68] loading 1 cluster(s)
[2020-01-31 12:40:51.734][1][info][upstream] [source/common/upstream/cluster_manager_impl.cc:157] cm init: initializing cds
[2020-01-31 12:40:51.735][1][info][config] [source/server/configuration_impl.cc:72] loading 0 listener(s)
[2020-01-31 12:40:51.735][1][info][config] [source/server/configuration_impl.cc:97] loading tracing configuration
[2020-01-31 12:40:51.735][1][info][config] [source/server/configuration_impl.cc:106]   loading tracing driver: envoy.dynamic.ot
[2020-01-31 12:40:51.740][1][info][config] [source/server/configuration_impl.cc:117] loading stats sink configuration
[2020-01-31 12:40:51.741][1][info][main] [source/server/server.cc:549] starting main dispatch loop
@mattklein123 mattklein123 added the investigate Potential bug that needs verification label Feb 1, 2020
@mattklein123
Copy link
Member

Thanks for the really detailed report. Can you potentially reach out to myself and @lizan on Envoy Slack to discuss this further and debug a bit? (mklein and lizan on Slack). Thank you.

@duderino
Copy link

duderino commented Feb 5, 2020

Not sure if this will help, but we had an issue with one of our larger, friskier deployments where long lived gRPC bi-di connections were oom'ing Envoy. It specifically happened in cases where the downstreams were sending request data to Envoy faster than upstreams could read it, and vice versa for responses. When we looked at Envoy's memory usage something like 80-90% was just buffers.

We had a chat with a member of our gRPC team, @ejona86, who recommended we reduce the initial_stream_window_size and initial_connection_window_size http/2 options to 64KB each and that addressed the issue nicely. That had the effect of sending backpressure to the downstream when a slow upstream cannot keep up and vice versa. It's better to keep that data in the sender rather than try to buffer it up in Envoy.

@stale
Copy link

stale bot commented Mar 6, 2020

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions.

@stale stale bot added the stale stalebot believes this issue/PR has not been touched recently label Mar 6, 2020
@stale
Copy link

stale bot commented Mar 13, 2020

This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted". Thank you for your contributions.

@stale stale bot closed this as completed Mar 13, 2020
@zengyuxing007
Copy link
Contributor

We have encountered similar problems in testing ratelimit,
@duderino Does setting "initial_stream_window_size and initial_connection_window_size = 64K" solve the problem? or setting the overload manager (https://www.envoyproxy.io/docs/envoy/latest/configuration/operations/overload_manager/overload_manager)?

using the option "nvoy.overload_actions.shrink_heap" ?

Use the admin: memory interface to check that most memory usage is page_heap_free

"allocated": "5799312", "heap_size": "32136757248", "pageheap_unmapped": "32079872", "pageheap_free": "32054919168", "total_thread_cache": "3705944"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
investigate Potential bug that needs verification stale stalebot believes this issue/PR has not been touched recently
Projects
None yet
Development

No branches or pull requests

4 participants