code: def get_message(used_gb, total_gb, threshold):
      proc_str = get_top_n_memory_usage(n=10)
      return (
          "More than {}% of the memory on ".format(int(100 * threshold))
          + "node {} is used ({} / {} GB). ".format(
              platform.node(), round(used_gb, 2), round(total_gb, 2)
          )
          + f"The top 10 memory consumers are:\n\n{proc_str}"
          + "\n\nIn addition, up to {} GiB of shared memory is ".format(
              round(
                  get_shared(psutil.virtual_memory()) / (1024**3), 2
              )
          )
          + "currently being used by the Ray object store.\n---\n"
          "--- Tip: Use the `ray memory` command to list active "
          "objects in the cluster.\n"
          "--- To disable OOM exceptions, set "
          "RAY_DISABLE_MEMORY_MONITOR=1.\n---\n"
      )
  
file_path: ray/python/ray/_private/memory_monitor.py
imports: import logging
  import os
  import platform
  import sys
  import time
  import ray
  import psutil
label_desc: Use image node_id 2 for calling the RayOutOfMemoryError obj's underlying member method code with example usage: obj.get_message(used_gb, total_gb, threshold) and returns: unknown