code: def get_system_memory():
      
      # Try to accurately figure out the memory limit if we are in a docker
      # container. Note that this file is not specific to Docker and its value is
      # often much larger than the actual amount of memory.
      docker_limit = None
      memory_limit_filename = "/sys/fs/cgroup/memory/memory.limit_in_bytes"
      if os.path.exists(memory_limit_filename):
          with open(memory_limit_filename, "r") as f:
              docker_limit = int(f.read())
  
      # Use psutil if it is available.
      psutil_memory_in_bytes = None
      try:
          import psutil
          psutil_memory_in_bytes = psutil.virtual_memory().total
      except ImportError:
          pass
  
      if psutil_memory_in_bytes is not None:
          memory_in_bytes = psutil_memory_in_bytes
      elif sys.platform == "linux" or sys.platform == "linux2":
          # Handle Linux.
          bytes_in_kilobyte = 1024
          memory_in_bytes = vmstat("total memory") * bytes_in_kilobyte
      else:
          # Handle MacOS.
          memory_in_bytes = sysctl(["sysctl", "hw.memsize"])
  
      if docker_limit is not None:
          return min(docker_limit, memory_in_bytes)
      else:
          return memory_in_bytes
docs: Return the total amount of system memory in bytes.
  
      Returns:
          The total amount of system memory in bytes.