Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

A low Node.js heap reading does not rule out a container out-of-memory kill: V8 heap metrics cover only part of a process’s memory, while a container’s memory limit applies to a broader scope. But exit code 137 alone does not prove that an OOM kill occurred. First check the recorded termination reason, then compare memory trends at the Node, process, and container levels.

What exit code 137 means—and what it does not

Exit status 137 is commonly associated with a process receiving SIGKILL. It does not identify who or what sent the signal. Docker documents manual termination and a daemon restart among possible explanations, as well as an out-of-memory kill. Check the platform’s termination details and events rather than treating 137 as proof of OOM. Docker’s container documentation describes the exit-status context.

In Kubernetes, the OOMKilled reason is more specific: “The OOMKilled reason shows that the container tried to use more memory than its limit.” The Kubernetes documentation explains that Linux cgroups enforce container memory limits and that the kernel can terminate a process when memory use exceeds what is available. Kubernetes: Resource Management for Pods and Containers

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why a low V8 heap can coexist with a container OOM

The figures describe different memory scopes. Node’s heapUsed and heapTotal concern the V8 JavaScript heap; they are not measurements of all memory charged to the process or container. A container limit covers the container’s memory use, not just V8’s heap.

#1 Best Overall
Sale
Sunxeke 45-Pack M6 x16mm Rack Screws and Cage Nuts, M6 x16 Rack Mount Screws, Cabinet Screws for Server Shelves Routers TV Mount, Square Hole Nuts & Washers, Server Rack Accessories with Storage Box
  • Complete M6 rack screws kit: This M6 rack screws hardware kit comes with 45 square rack cage nuts, 45 rack mount screws and 45 black washers. All nuts and bolts are neatly stored in a sturdy compartmentalized plastic storage box, letting you quickly find hardware during server cabinet assembly, upgrade or maintenance. Ideal server rack accessories for your rack installation projects
  • Durable carbon steel with black nickel plating: These M6 screws, rack screws and cage nuts are built from heavy-duty carbon steel with premium black nickel plating. The coating offers powerful resistance to rust, corrosion, oxidation and abrasion, prevents fingerprints and discoloration, and delivers dependable performance in high and low temperature environments for extended service life
  • Precise sharp threads for secure installation: Our server rack screws and rack mount hardware feature deep, clean-cut sharp threads and smooth burr-free surfaces. These m6 screw threads install smoothly without stripping, creating firm fastening to stop loose connections on rack and cabinet equipment during long-term use
  • Universal compatibility for square-hole racks: Our M6 x 16mm cabinet screws fit standard 10mm square-hole server racks and cabinets seamlessly. Great for mounting servers, switches, routers, A/V devices and TV mounts. Perfect bolts and nuts for data centers, server rooms, IT closets and commercial workspaces
  • Tight tolerance manufacturing: These M6 rack screws are precision made to strict metric standards with average error below 0.01mm. The tight-tolerance thread design creates a snug fit and even force distribution, resisting slipping and deformation to keep rack-mounted hardware securely fixed. Works great with rack studs for square hole cabinet setups
Metric or limit What it describes What it does not establish
heapUsed JavaScript objects currently used in the V8 heap. Total process or container memory.
heapTotal Memory allocated for the V8 heap. The full process footprint.
external Native memory associated with JavaScript objects managed by V8. All memory charged to a container.
arrayBuffers Memory for ArrayBuffer and SharedArrayBuffer, including Node.js Buffer allocations; Node documents this as included in external. A separate amount to add to external.
rss Resident memory for the process, including JavaScript and C++ objects and code. The container’s complete accounting in every runtime and cgroup configuration.
V8 heap_size_limit The ceiling for the V8 heap, affected by defaults or --max_old_space_size. A process-wide or container-wide memory limit.
Container memory limit A limit enforced separately through the platform, runtime, and kernel. A V8 heap ceiling.

These metric definitions come from Node.js process.memoryUsage(), Node.js V8 API, and the Kubernetes resource-management documentation. The heap limit can be smaller than the memory available to the process, but it does not reserve the remaining container allowance for other allocations.

How to check whether the container was actually OOM-killed

  1. Inspect the last termination record. In Kubernetes, check the container’s last terminated state and reason, plus pod events and logs. Distinguish OOMKilled from a generic exit code or other termination reason. In Docker, inspect the container state and relevant events. A 137 status without an OOM reason remains a SIGKILL clue, not a diagnosis.
  2. Confirm the configured memory limit. Record the effective limit applied by the orchestrator or container runtime. In Kubernetes, memory limits are enforced through Linux cgroups; the kernel may kill a process when the limit is exceeded.
  3. Compare container usage with that limit over time. Use the monitoring data available for your runtime and cgroup version. A single reading taken after a restart may miss the peak that triggered termination.
  4. Check host cgroup evidence where available. On cgroup v2 systems, consult the host’s Linux cgroup v2 memory-controller documentation to interpret memory events and oom_kill. Counter names, paths, and availability vary by cgroup version and runtime.

Compare Node memory metrics at matching timestamps

When the container’s usage approaches its limit, capture Node’s metrics alongside container or cgroup telemetry. For example, log process.memoryUsage() and the V8 heap limit at regular intervals, using the same timestamps and units as your container monitoring. Node documents the fields and their meanings in its process API; V8 exposes heap_size_limit and external_memory through its heap statistics API.

Rank #2
M6 Cage Nuts, Screws and Washers [Size: M6 x 16mm 50 Pack] Rack Mount Screws Hardware for use with Network and Server Rack Accessories, Routers, Cabinets and Enclosures.
  • Pro Grade – Here is our new Black M6 Rack Screws and Cage Nuts Set [25 x Server Rack Screws, 25 x Cage Rack Nuts, 25 x Washers] used for mounting server racks, enclosures, cabinets, and more.
  • Strong & Durable – Our Rack Cage Nuts & Relay Rack Screws for server rack have a high-grade carbon steel construction to prevent stripping. The M6 Cage Nuts and Bolts have also been coated in zinc chromate plating for resistance from corrosion.
  • Wide application – Our rack screws & nuts are universally compatible with all square hole racks & cabinets. This makes the rack cage nuts and screws suitable for mounting all server rack hardware, including rack server cabinets, server shelves, A/V device enclosures, and other server mounting procedures.
  • Easy to install – Our server rack screws and clip nuts have a Phillip’s truss-head with self-guiding pilot points to allow you to install in no time. The rackmount screws and nuts thread are extra sharp, clean & accurate, offering a smooth & satisfying installation process.
  • Essential Bundle – Our Cage nuts & screws m6 set includes all the essential parts for mounting your server equipment. Pack not only includes screws & cage nuts; we have also thrown in additional heavy-duty washers to reduce any marks or scratches when installed. We truly believe our server rack nuts and bolts set is the best in the marketplace and we stand by that. If our cage nut set starts driving you nuts, we’ll FULLY REFUND YOU. So, click “Add to Cart” now and buy with confidence.

Interpret the pattern, not one snapshot:

  • Heap used rises steadily: investigate JavaScript objects that remain reachable, especially if the trend continues across normal workload cycles.
  • External or array-buffer memory rises: examine native allocations, buffers, and code paths that create or retain them.
  • RSS rises while heap metrics stay comparatively stable: memory outside the live V8 heap may be growing. On Linux with glibc, allocator fragmentation can also produce this pattern; it is not, by itself, proof of a JavaScript heap leak. Node.js documents this fragmentation caveat.
  • Container usage rises without a matching increase in one process’s RSS: check the limits and accounting for the whole container, including other processes and the platform’s cgroup view.

Choose heap settings only after locating the pressure

Increasing or lowering --max-old-space-size is not a universal fix. It changes a V8 heap limit; it does not change the container’s memory limit or directly account for native memory, buffers, code, and other process usage. A larger heap ceiling may allow more JavaScript heap growth before V8 intervenes, while the container limit still applies separately. Decide whether to change heap settings only after comparing the configured container limit with timestamped heap, external, RSS, and cgroup data. The exact setting depends on the workload and runtime; no fixed heap-to-container ratio follows from these metrics alone. Node.js CLI documentation: --max-old-space-size

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Keep the environment in view

For a useful comparison, record the Node.js and runtime versions, container runtime, orchestrator, cgroup version, configured memory limit, and the timestamps for both Node and container metrics. Documentation pages and available counters differ across environments. Without those details and the termination record, a low heap reading and exit 137 cannot identify the cause of a particular restart.

Best Value
Leadrise 50-Pack M6 x 16mm Computer Rack Mount Cage Screws, Nuts & Washers for Server Cabinet - Black
  • Accurate & Durable Design:Our M6 screws and cage nuts are manufactured to strict metric standards with an average tolerance of less than 0.01 mm for accurate fit and reliable performance. The threads are sharp, clean, and burr-free, ensuring smooth installation. The compact, evenly distributed thread design resists deformation and slipping during fastening. A deep, well-defined Phillips head allows for easier operation and improved work efficiency.
  • Heavy-Duty & Long-Lasting:Constructed from premium carbon steel with a protective black nickel coating to resist rust and oxidation. Designed to withstand high temperatures, cold weather, and other harsh conditions for reliable, long-term performance.
  • Clean & Professional Look:Finished in sleek black nickel to match most rack systems, delivering a clean, organized, and professional appearance inside your cabinet.
  • Wide Application:Perfect for server cabinets, rack shelves, and A/V enclosures. Compatible with all standard square-hole racks, this M6 cage nut and screw kit provides secure installation hardware along with durable self-locking cable ties for clean and organized wire management.
  • 50-Pack Complete Set – Comes with 50 cage nuts, 50 mounting screws, and 50 black washers. Packaged in a sturdy small box to keep everything organized and easy to store.
Rank #4
RVIEVJP 50 Pack M6 x 16mm Rack Mount Cage Nuts, Screws & Washers
  • 【UNIVERSAL 19-INCH RACK COMPATIBILITY】No more ill-fitting hardware! Our M6 x 16mm fasteners fit all standard 19-inch SERVER RACKS, network cabinets and data centers—seamless lock-in, zero size guesswork, no return risks for mismatched parts. Perfect for your rack mount setup
  • 【DURABLE BLACK ZINC-PLATED BUILD】Fight mild rust and stripping! Our RACK MOUNT HARDWARE features thick BLACK ZINC PLATING on carbon steel—resists wear, bending and indoor/semi-outdoor corrosion for 2+ years. Sturdier than generic flimsy fasteners
  • 【50-PACK ALL-IN-ONE CAGE NUTS KIT】No mid-install part runs! Our complete 50-pack of CAGE NUTS includes matching M6 screws, washers + FREE self-locking cable ties—exact parts for rack/cabinet builds, no extra hardware store trips
  • 【TOOL-FREE SNAP-ON EASY INSTALL】Skip complex tools and slow builds! Our RACK MOUNT SCREWS pair with snap-on cage nuts (hand-installed)—twist in with a basic Phillips driver, no stripping. Finish your rack setup in 10-15 mins, even for first-timers
  • 【MULTI-USE RACK ACCESSORY HARDWARE】Max out your setup versatility! This hardware works for all NETWORK AND SERVER RACK ACCESSORIES—small business racks, office cabinets, home labs, audio racks. Washers prevent scratches, cable ties tidy wiring
Rank #3
50 PACK M6 x 16mm Rack Mount Cage Nuts, Screws and Washers for Rack Mount Server Cabinet, Rack Mount Server Shelves, Routers, Rack Mount Screws and Square Insert Nuts, Self-Locking Cable Ties for Free
  • 【Wide Application】 XOOL M6 Rack Mount Screw Kit is great for mounting your rack server cabinets, server shelves, A/V device enclosures, and more. These M6 cage nuts and screws are universally compatible with all square-hole racks and cabinets. Easily mount your equipment using this convenient kit, which comes with everything you'll need to get the job done. These self-locking cable ties are perfect for computer, appliance and electronic cord organization, wire management and storage.
  • 【Superb Quality】 The cage nuts and screws is made of high quality Carbon Steel. The Carbon Steel material features strength and offers good corrosion resistance in bad environment like high temperature, cold weather, and high humidity areas. They have superior rust resistance and the excellent of oxidation resistance, which can ensure long time using and prolong screws and nuts lifespan. Wear resistant feature make the cage nuts and screws more durable and solid.
  • 【Standard Metric】 Our M6 screws and cage nuts accord with standardized metric system. And the average error is less than 0.01mm. The screw thread is very sharp, clean and accurate without burr. The compact and force uniform screw thread is not easy to out of shape and slid in the process of rolling and installation. The deep and clear flat cross head can make your working more easily and improve your work efficiency.
  • 【Safety and Eco-Friendly】 XOOL M6 screws and cage nuts use high quality Carbon Steel raw material, which is environmental protection and non-poisonous. In the process of using, there are no toxic substances releasing, which will ensure your safety. After heat treating, carbon steel has good mechanical properties of ductility, hardness, yield strength, or impact resistance.
  • 【Thoughtful Design】 We add self-locking Nylon cable ties on our package. The CABLE TIES is good for home, office, garage, workshop and more. And the screw is very easy to insert with hand.

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.