Exemplo n.º 1
0
 def GetProfilingStats(self, request, context):
     pid = request.pid
     duration = request.duration
     profiling_file_path = os.path.join(ray.utils.get_ray_temp_dir(),
                                        "{}_profiling.txt".format(pid))
     process = subprocess.Popen(
         "sudo $(which py-spy) record -o {} -p {} -d {} -f speedscope".
         format(profiling_file_path, pid, duration),
         stdout=subprocess.PIPE,
         stderr=subprocess.PIPE,
         shell=True)
     stdout, stderr = process.communicate()
     if process.returncode != 0:
         profiling_stats = ""
     else:
         with open(profiling_file_path, "r") as f:
             profiling_stats = f.read()
     return reporter_pb2.GetProfilingStatsReply(
         profiling_stats=profiling_stats, stdout=stdout, stderr=stderr)
Exemplo n.º 2
0
 def GetProfilingStats(self, request, context):
     pid = request.pid
     duration = request.duration
     profiling_file_path = os.path.join(ray.utils.get_ray_temp_dir(),
                                        f"{pid}_profiling.txt")
     sudo = "sudo" if ray.utils.get_user() != "root" else ""
     process = subprocess.Popen(
         (f"{sudo} $(which py-spy) record -o {profiling_file_path} -p {pid}"
          f" -d {duration} -f speedscope"),
         stdout=subprocess.PIPE,
         stderr=subprocess.PIPE,
         shell=True)
     stdout, stderr = process.communicate()
     if process.returncode != 0:
         profiling_stats = ""
     else:
         with open(profiling_file_path, "r") as f:
             profiling_stats = f.read()
     return reporter_pb2.GetProfilingStatsReply(
         profiling_stats=profiling_stats, std_out=stdout, std_err=stderr)