가능한 한 많은 요청을 처리하고 요청 당 하나의 파일을 작성하려고합니다. 작은 페이로드가 정상적으로 작동하지만 동기 버전이 정상적으로 작동하는 동안 높은 페이로드 시나리오에서 비동기 버전 (fs.writeFile)이 중지됩니다. 노드는 요청 처리를 중단하고 대부분의 파일을 0 크기로 남겨 둡니다 (대부분 생성되지 않습니다). 우분투 (VM) 및 Mac OSX에서높은로드에서 fs.writeFile이 응답하지 않음 (v.0.6.6에서 오류 없음)
{ stack: [Getter/Setter],
arguments: undefined,
type: undefined,
message: 'EMFILE, Too many open files \'aw_1031\'',
errno: 24,
code: 'EMFILE',
path: 'aw_1031' }
같은 동작 :
우리가 가진 v.0.4.7에서 v0.6.6
에 오류가 없습니다.
이것은 우리가 현재 실행하고있는 예제 스크립트입니다 :
ab -n 30000 -c 500 http://HOST:8000/
filetest.js는
var http = require('http');
var fs = require('fs');
var util = require ('util');
var i=0;
function writeALot(req, res){
fs.writeFile("filetest"+i, "Just a try: "+i,
function(err){
if(err) console.log(util.inspect(err));
});
i++;
res.writeHead(200);
res.end();
}
http.createServer(writeALot).listen(8000);
우리는 어떻게 동시 FD의 최대 수를 관리 할 수 있습니까? 어떤 충고?
미리 감사드립니다.
고마워, 지금은 노드 v0.6.6에서 알려진 버그입니다 (중단 및 오류 없음). 하지만 그건 내 잘못이야 :) 노드 마술 기대합니다. 우리는 자원에 대해 더 많은주의를 기울일 것입니다. – Perrolobo