【问题标题】:Proper way to show server's RAM, CPU and GPU usage on react app在反应应用程序上显示服务器 RAM、CPU 和 GPU 使用情况的正确方法
【发布时间】:2021-05-01 16:45:18
【问题描述】:
我有一个项目,其中后端使用 FastAPI 编写,前端使用 React。我的目标是添加一个组件来实时监控一些 pc/server 的性能。目前该项目仍在本地环境中开发,所以基本上我需要从 Python 获取 CPU/GPU 使用情况和 RAM(来自我的 PC),然后将它们发送到我的 React 应用程序。我的问题是,实现此目的最便宜的方法是什么?设置一个 API 并每十秒获取一个 GET 请求是一种好方法还是有更好的方法?
【问题讨论】:
标签:
python
reactjs
algorithm
fastapi
【解决方案1】:
解释和提示:
我完全知道你在描述什么。我还使用 Flutter 和 Python 制作了一个移动应用程序。我一直在尝试让多台服务器而不是一台服务器来托管 API。我个人认为 Node.Js 值得一试,因为它允许非常强大的集群。如果你想坚持使用 python,在 python 中获取内存使用的最佳方法是使用 psutil,如下所示:memory = psutil.virtual_memory().percent,但是对于 CPU 使用,你必须做某种缓存或多线程,因为你无法获得 CPU立即使用cpu = psutil.cpu_percent(interval=1)。如果你希望你的 API 快速,那么周期性的方法是不好的,它会减慢你的服务器,如果你在客户端做错了什么,你最终可能会 DDOSing 你的 API,这是我在我首先发布了我的应用程序。最好的方法是只在需要时调用 API,例如,flutter 缓存了非常有用的小部件,因为我必须每隔几个小时才获取一次数据。
关键点:
-仅在关键时调用 API。
-Python 无法实时获取 CPU 使用率。
-Node 的性能优于我的 Flask API(不是 FastAPI)。
-尽可能使用客户端缓存。