我有一个项目,其中后端是用FastAPI编写的,前端使用React。我在这里的目标是添加一个组件,用于实时监控pc/服务器的某些性能。目前,该项目仍在本地环境中开发,所以基本上我需要从Python中获取CPU/GPU使用率和RAM (源自我的PC),然后将它们发送到我的React应用程序。我的问题是,实现这一目标的最便宜的方法是什么?设置API并每10秒获取一次GET请求是一种好方法,还是有更好的方法?
发布于 2021-05-08 15:34:29
解释和提示:
我完全知道你在描述什么。我还用Flutter和Python做了一个移动应用。我一直在尝试让多台服务器来托管API,而不是一台服务器。我个人认为Node.Js值得一试,因为它允许集群,这是非常强大的。如果你想继续使用python,在python中获得内存使用率的最好方法是使用psutil,如下所示:memory = psutil.virtual_memory().percent,但是对于CPU使用率,你必须做一些缓存或多线程,因为你不能在没有延迟cpu = psutil.cpu_percent(interval=1)的情况下获得CPU使用率。如果你希望你的API很快,那么周期性的方法是不好的,它会减慢你的服务器,而且如果你在客户端做错了什么,你可能最终会DDOSing你的API,这是我第一次发布我的应用程序时做的一件令人尴尬的事情。最好的方法是只在需要的时候调用API,例如,flutter缓存了非常有用的小部件,因为我每隔几个小时只需要获取一次数据。
要点:
-Only在需要执行此操作时调用该应用程序接口。
-Python无法实时获取CPU使用率。
-Node的性能比我的Flask API (不是FastAPI)要好。
-Use客户端缓存(如果可能)。
https://stackoverflow.com/questions/67348632
复制相似问题