Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js gridfs流下载文件CPU使用率_Node.js_Mongodb_Express_Gridfs_Gridfs Stream - Fatal编程技术网

Node.js gridfs流下载文件CPU使用率

Node.js gridfs流下载文件CPU使用率,node.js,mongodb,express,gridfs,gridfs-stream,Node.js,Mongodb,Express,Gridfs,Gridfs Stream,当将文件从Mongodb Gridfs流式传输到文件系统时,我遇到了cpu使用率高的问题。 我目前正在使用gridfs stream node.js模块,代码如下: //Main server file app.get('/download/:name', crud.download) //crud.js file exports.download = function(req, res){ var file = req.params.name var readstream =

当将文件从Mongodb Gridfs流式传输到文件系统时,我遇到了cpu使用率高的问题。 我目前正在使用gridfs stream node.js模块,代码如下:

//Main server file
app.get('/download/:name', crud.download)

//crud.js file
exports.download = function(req, res){
    var file = req.params.name
    var readstream = gfs.createReadStream(file);
    readstream.pipe(res);

}

在较小的文件(~100mb及以上)上,cpu的使用率非常低,而在较大的文件(~1GB及以上)上,cpu的使用率达到90-100%,并保持不变,大大降低了下载速度,有时甚至会阻止整个下载。还有,有没有更好的方法来处理从Gridfs下载到文件系统的问题?我想听听你的意见。谢谢。

到底是什么占用了CPU?Node,MongoDB?感谢您的回复,Node.js占用了大约65%的cpu,而mongo在下载过程中占用了大约30%。同样,这只会发生在较大的文件中。我已经在多台机器上试过了,我试过的每台机器都是一样的。我想知道GridFS对于如此大的文件的效率。遗憾的是,找不到太多关于它的信息(大多数示例/基准都处理从小到小的文件)。您是否在VPS中运行?不,不是在VPS中运行,我还应该提到,当上载我要下载的相同文件时,上载过程在node.js端使用少量cpu(~18%),并且上载成功完成。因此,问题与gridfs stream利用从gridfs到文件系统的文件流的方式有关,或者至少我认为是这样。我只有处理小文件和gridfs流的经验,这总是很有效。不适用于较大的文件,因此我无法提供太多帮助:(