Recommended Free Tools
A Node.js container can be OOM-killed while V8 reports modest heap use because the JavaScript heap is only one part of memory charged to the process and container. But exit code 137 alone does not prove an out-of-memory event: first verify the termination reason, then compare V8, process, and container memory trends at matching times.
Does exit code 137 prove the container ran out of memory?
No. Exit status 137 is associated with SIGKILL, but that signal can have causes other than an out-of-memory kill. Docker lists manual termination and daemon restart among possible explanations. Check the platform’s recorded termination reason, events, and logs rather than inferring OOM from the exit code alone. Docker documents exit-code behavior.
As an Amazon Associate I earn from qualifying purchases.
In Kubernetes, the last terminated container state can report a reason such as OOMKilled. Kubernetes explains that this reason means the container tried to use more memory than its limit. That is stronger evidence of a memory-limit event than 137 by itself. Review the Pod’s status and events as well as the container logs; logs may not contain the final evidence if the process was abruptly killed. Kubernetes: Resource Management for Pods and Containers.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Why can container memory be high when Node’s heap looks fine?
The measurements cover different memory scopes. Node’s heapUsed and heapTotal describe V8’s JavaScript heap. The process’s resident set size, or RSS, includes resident memory beyond that heap, including C++ objects and code. Node also reports external, native memory associated with JavaScript objects managed by V8. arrayBuffers reports memory for ArrayBuffer and SharedArrayBuffer instances, including Node.js Buffer allocations, and is included in external. Node.js: process.memoryUsage().
#1 Best Overall
- 【Powerful Load-bearing】12U Network Rack Open Frame is constructed from durable cold rolled steel; Rack shelf supports enhance stability, wall-mounted capacity of 130lbs, the ground-mounted up to 260lbs
- 【Considerate Designs】Open-frame layout, including a top panel adding space, anti-slip shelf stops fixing devices and compatible racks for stack and expansion to meet requirements of home server rack
- 【Complete Accessories】A 12U open frame server rack, two ventilated shelves, four shelf stops, four velcro straps and a set of equipment mounting screws
- 【Versatile Application】Ideal for space-efficient multi-device setups in warehouses, retail, classrooms, offices and more; Excellent choices as AV Rack/IT Rack
- 【Effortless Setup】 Network Rack includes hardware, a comprehensive manual, mounting hole drilling template and an online assembly video to simplify setup
A container limit is a separate boundary. On Linux, Kubernetes uses cgroups to enforce container memory limits; under memory pressure, the kernel can terminate processes. The V8 heap ceiling therefore does not cap all memory charged to the process or container. Kubernetes: Resource Management for Pods and Containers.
What each Node and V8 memory metric means
| Metric | What it describes | What it does not establish |
|---|---|---|
heapUsed |
Memory currently used by JavaScript objects in the V8 heap. | Total process or container memory. |
heapTotal |
Memory allocated for the V8 heap. | The process’s full memory footprint. |
external |
Native memory associated with JavaScript objects managed by V8. | All native memory used by the process. |
arrayBuffers |
Memory for ArrayBuffer and SharedArrayBuffer instances, including Node.js Buffer allocations; included in external. |
A separate amount to add to external. |
rss |
Resident memory for the process, including JavaScript and C++ objects and code. | Container memory usage by itself, especially when other processes share the container. |
V8 heap_size_limit |
The V8 heap ceiling, affected by defaults or options such as --max_old_space_size. |
A process-wide or container-wide memory limit. V8 heap statistics. |
| Container/cgroup memory | Memory charged to the container under its configured limit and runtime’s accounting. | A value that can be inferred from V8 heap metrics alone. Kubernetes resource management. |
How to investigate an OOM kill without guessing
- Confirm the termination cause. Inspect the orchestrator or runtime’s last terminated state, recorded reason, events, and logs. Treat 137 as a SIGKILL clue, not a verdict; distinguish
OOMKilledfrom other stop mechanisms. - Establish the actual container limit. Check the deployed workload configuration and effective runtime settings. If OOM is confirmed, compare container or cgroup usage against that limit over time, using the telemetry your platform exposes.
- Collect Node metrics at the same timestamps. Record
process.memoryUsage()values forrss,heapTotal,heapUsed,external, andarrayBuffers, along with the V8 heap limit. For example, a diagnostic log can capture the API fields withconsole.log(process.memoryUsage()); add timestamps and correlate the output with container metrics. - Check host cgroup evidence when available. On cgroup v2 systems, Linux exposes memory-controller documentation for interpreting memory events, including
oom_kill. Counter names, locations, and availability vary by cgroup version and container runtime, so use the host’s actual cgroup layout rather than assuming a universal path. Linux kernel: Control Group v2. - Keep the environment with the evidence. Record the Node.js and runtime versions, orchestrator, container runtime, configured limit, and cgroup version. Those details affect which counters and paths exist and how usage is accounted for.
How to read the trends
Compare trends over time, not a lone snapshot. A high RSS reading or low heap reading at one moment cannot explain what the container was charged for immediately before termination.
Rank #2
- ADJUSTABLE DEPTH: 4-Post 42U open frame server rack with 4 vertical rails and adjustable mounting depth 22" to 40" (56,0cm to 101,7cm); Compatible with various servers / switches / data / AV and other IT equipment; EIA/ECA-310-E Compliant
- EASY ASSEMBLY: Mobile network rack with easy-to-follow assembly instructions and online video; Compact flat-pack shipping to avoid damage and facilitate installation; Total product height of 80.3in (204 cm) with casters, 78in (198cm) without casters
- COLD ROLLED STEEL: Durable 4 Post 19in open frame rack designed for ventilation with 42U mounting height and 1320lb (600kg) weight capacity (stationary); 3 install options included: casters, levelling feet, or base-plate to secure rack to the floor
- HARDWARE INCLUDED: Rolling computer/data rack includes cage nuts and screws to mount equipment, easy to read Units (U) and depth adjustment markings, cable management hooks for organization, and required assembly tools
- THE IT PRO'S CHOICE: Designed and built for IT Professionals, this 42U rack is backed for 2-years, including free lifetime 24/5 multi-lingual technical assistance
heapUsedkeeps rising: investigate whether JavaScript objects are being retained. This is a reason to examine the heap, not proof of a leak by itself.externalorarrayBufferskeeps rising: inspect native allocations and buffer or array-buffer use. Remember thatarrayBuffersis already included inexternal.- RSS rises while heap metrics stay relatively steady: memory outside the live V8 heap may be involved. On Linux/glibc, allocator fragmentation can also contribute to rising RSS; this pattern alone does not confirm a JavaScript heap leak. Node.js documents this RSS behavior.
- Container usage rises without matching growth in one Node process: check the other memory charged within the container and the platform’s accounting scope. Container memory and per-process Node metrics are not interchangeable.
Should you raise --max-old-space-size?
Not as a default response to 137 or an OOM kill. That option affects V8’s heap ceiling, not the container’s memory limit or every source of process memory. Raising it may let V8 use more memory while leaving less room under the container limit for external allocations, native memory, code, and other processes. Choose a heap setting only after comparing the workload’s measured memory trends with the effective container limit and the runtime’s behavior. There is no universally safe heap-to-container ratio established by the evidence here. Node.js CLI: --max-old-space-size.
Free tools Windows power users keep installed
One-click scans. No signup required.
Quick Recap
Rank #4
- Adjustable Depth: 23-40'' adjustable depth is used for servers and network equipment, ensuring enough space for AV equipment, components, and cabling, while allowing you to access ports and equipment from multiple sides.
- Strong Load Capacity: Ground-Mounted Load Capacity: 500 lbs, Wall-Mounted Load Capacity: 150 lbs. The av rack is made of carbon steel for better weldability performance and can help save space while meeting your need to place multiple devices.
- User-friendly Design: Ergonomic design makes the open frame av rack easier to use. The additional top panel is able to place other items with more available space. Roller design moves anywhere and anytime, is convenient, and is more energy-saving.
- Complete Accessories: We provide the accessories you need, including 2 x Pallets, 145 x M5*10 Cross Head Screws, 4 x Casters, 4 x M10*50 Expansion Screws,10 x M6*12 Cage Nuts, 1 x Grounding Wire, 1 x User Manual.
- Wide Application: The server rack wall mount maximizes the use of available space, suitable for retail venues, classrooms, offices, and other places where space is limited.
Rank #3
- 【Powerful load-bearing】12U Network Rack Open Frame is constructed from durable Cold Rolled Steel; Rack Shelf Back Support enhances stability; load-bearing capacity of 260lbs
- 【Sliding&Considerate】Open-frame layout, including four wheels easy to move, a top panel adding space, anti-slip shelf stops fixing devices and compatible racks for stack and expansion to meet requirements of home server rack
- 【Complete Accessories】A 12U open frame server rack, two ventilated shelves, four shelf stops, four casters, four velcro straps and a set of equipment mounting screws
- 【Versatile Application】Ideal for space-efficient multi-device setups in warehouses, retail, classrooms, offices and more; Excellent choices as AV Rack/IT Rack
- 【Effortless Setup】Server rack with wheels includes hardware, a comprehensive manual, mounting hole drilling template and an online assembly video to simplify setup
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




