reduce Node + Express + Socket.使用mongoose时的IO内存使用情况



我使用Node + Express(在本地运行)并连接到MongoDB Atlas上托管的MongoDB。我的项目是一个庞然大物,使用MDN的本地图书馆教程开始了一段时间,随着我学习如何使用Express, sockets, mongo等,它越来越大。所以有些代码很糟糕,有些代码不那么糟糕。现在,作为一个基本功能就绪的产品,当多人连接时,它的内存使用率很高。

使用火炮,我有5个用户/秒点击我的/join_session端点20秒。这会使内存使用量从~35MB激增到~450MB。坦白说,我不擅长阅读Chrome的Node.js Devtools的内存使用。但是下面是我在system/Context下看到的:

保留大小connection_pool.js:147351324152351320592351320536

因此,结果表明,上述测试中的内存使用情况与正常情况相差不远。每个客户端大约6MB,这还不是最糟糕的,如果我期望有200个并发客户端,我只需要一个更好的服务器,特别是我需要比mongo cloud的免费层更多的服务器来更快地服务DB请求。在生产环境中,我所看到的实际内存峰值与上述情况无关。相反,这是因为我重复地获取了包含约10k条记录的整个集合,每条记录都是一个带有props的JSON对象。解析需要大量内存,非常快,并且需要另一篇文章的主题!

最新更新