programing

Node.js: ENOSPC 오류란 무엇이며 해결 방법은 무엇입니까?

goodsources 2023. 5. 11. 21:25
반응형

Node.js: ENOSPC 오류란 무엇이며 해결 방법은 무엇입니까?

Node.js와 서버에 파일을 업로드하는 데 문제가 있습니다.서버에 파일을 업로드하기 위해 이 플러그인을 사용합니다.서버로의 파일 업로드를 시작할 때 Node.js 프로세스가 충돌하고 다음 오류가 표시됩니다.

오류: ENOSPC.

서버 코드가 실행되지 않습니다.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.9G  4.1G  3.5G  55% /
udev            288M  8.0K  288M   1% /dev
tmpfs           119M  168K  118M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            296M     0  296M   0% /run/shm
/dev/xvdf       9.9G  3.0G  6.5G  32% /vol
overflow        1.0M  1.0M     0 100% /tmp

다음 명령을 실행하여 ENOSPC를 방지합니다.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

이 을 Arch Linux에 합니다./etc/sysctl.d/99-sysctl.conf:

fs.inotify.max_user_watches=524288

그런 다음 실행:

sysctl --system

이 문제는 재부팅 후에도 지속됩니다.기술 세부 정보 소스

ENOSPC드라이브에 공간이 없음을 의미합니다.

마아./tmp꽉 찼습니까?구성할 수 있습니다.npm 설정합니다.npm config set tmp /path/to/some/other/dir아니면 모든 것을 삭제할 수도 있습니다./tmp폴더를 누릅니다.

출처: npm 1.1.21은 쓸 수 없으며, npm의 리포잉 허브에 있는 ENOSPC입니다.

참고 나는 위의 출처에 설명된 방법으로 나의 문제를 해결했습니다.하지만, 더 포괄적인 Murali Krishna의 대답을 보세요.

문제를 해결하는 간단한 방법은 다음과 같습니다.

npm cache clear

npm 또는 그에 의해 제어되는 프로세스가 너무 많은 파일을 보고 있습니다.빌드 노드에서 max_user_watch를 업데이트하면 영구적으로 수정할 수 있습니다.데비안의 경우 터미널에 다음을 입력합니다.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

알림 감시자의 양을 늘리는 방법을 알고 싶다면 링크만 클릭합니다.

이것에 대해 공을 들일 수는 없지만, @grenade는 지적했습니다.npm dedupe증상이 아닌 원인(너무 많은 파일)을 해결합니다.

소스: Grunt watch 오류 - 대기...치명적 오류: ENOSPC 보기.

Linux의 경우 이는 파일 감시 수에 제한이 될 수 있습니다.

개발 서버는 알림을 사용하여 핫 다시 로드를 구현합니다.inotify API를 통해 개발 서버는 파일을 보고 파일이 변경될 때 알림을 받을 수 있습니다.

기본 알림 파일 감시 제한은 배포마다 다릅니다(Fedora의 경우 8192).개발 서버의 요구 사항이 이 제한을 초과하는 경우가 많습니다.

가장 좋은 방법은 일시적으로 파일 감시 제한을 늘린 다음 원하는 경우 영구적인 구성 변경을 시도하는 것입니다.그러나 노드뿐만 아니라 전체 시스템 구성도 변경됩니다.

현재 제한 보기

sysctl fs.inotify.max_user_watches

일시적으로 새 제한을 설정하려면:

# this limit will revert after reset
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl -p
# now restart the server and see if it works

영구 제한을 설정하는 방법

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

기계를 재부팅해서 문제가 해결되었습니다.저는 처음에 닦으려고 했습니다./tmp/하지만 노드는 여전히 불평하고 있었습니다.

Ubuntu 18.04에서 ionic/node로 파일을 다시 보는 방법을 시도했는데 여기서도 작동합니다.이것은 시스템 conf 파일에 액세스할 수 없는 사용자에게 유용할 수 있습니다.

CHOKIDAR_USEPOLLING=1 npm start

VS Code를 사용하는 경우 큰 작업 공간 오류를 볼 수 없습니다.

"Visual Studio Code is unable to watch for file changes in this large workspace" (error ENOSPC)

작업 공간이 크고 파일이 많이 포함되어 있기 때문에 VS Code 파일 감시기의 핸들이 부족하다는 것을 나타냅니다.전류 한계치는 다음을 실행하여 확인할 수 있습니다.

cat /proc/sys/fs/inotify/max_user_watches

제한은 편집을 통해 최대로 증가할 수 있습니다./etc/sysctl.conf파일 끝에 다음 행을 추가합니다.

fs.inotify.max_user_watches=524288

그러면 다음을 실행하여 새 값을 로드할 수 있습니다.sudo sysctl -p.

참고: 524288은 파일을 볼 수 있는 최대값입니다.모든 파일을 볼 수 있지만 그 한도까지만 볼 것을 권장합니다.

모든 추적기 제어 프로세스를 제거하는 문제를 해결했습니다(GDM을 사용하면 시도할 수 있습니다. 스크립트가 서버에서 실행 중인 경우에는 사용자의 경우가 아닙니다.)

tracker-control -r

내 설정:GNOME 3을 사용한 아치

만약 당신이/tmpLinux 파일 시스템에 마운트가 오버플로로 마운트되었습니다(보통 1MB 크기). 이는 사용자가 지정하지 않았기 때문일 수 있습니다./tmp자체 파티션과 루트 파일 시스템이 가득 차면서/tmp폴백으로 다시 장착되었습니다.

공간을 확보한 후 이 문제를 해결하려면 폴백을 마운트 해제하면 원래 지점에서 다시 마운트됩니다.

sudo umount overflow

실행을 시도하는 동안 이 오류가 발생하는 경우ember server명령 부탁드립니다.rm -rf tmp디렉토리입니다.그럼 실행ember s다시 한 번. 도움이 됐어요.

동일한 오류가 발생했습니다.Reactjs 앱을 실행하는 동안.제가 하는 일은 node_modules 폴더를 제거하고 node_modules를 입력하고 다시 설치하는 것입니다.그러면 오류가 제거됩니다.

사용자가 소유할 수 있는 최대 파일 수에 도달했습니다.

사용자 번호 확인quota -s파일 아래의 숫자가 할당량에 너무 가깝지 않음

위에서 제안한 것들 대부분을 시도했습니다.마지막으로 node_modules 디렉토리를 삭제하는 것이 도움이 되었습니다.

그래서 효과가 있었던 것은 다음과 같습니다.

  1. echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
  2. sudo sysctl --system
  3. rm -r /tmp*(!! 이것이 당신을 위해 어떤 것도 깨지지 않도록 확실히 하라)
  4. rm -r node_modules
  5. Restart system

작업 공간이 크고 파일이 많이 포함되어 있기 때문에 VS Code 파일 감시기의 핸들이 부족하다는 것을 나타냅니다.시계의 최대 한계에 도달했습니다. 다음을 실행하여 한계를 확인할 수 있습니다.

cat /proc/sys/fs/inotify/max_user_watches

코드 아래에서 실행 이 문제를 해결합니다.

fs.inotify.max_user_watches=524288

저 같은 경우에는 이렇게 했어요.

yarn cache clean

npm cache verify

rm -rf node_modules/

yarn install

저의 경우, 리눅스에서 sudo가 문제를 해결했습니다.

예:

sudo gulp dev

언급URL : https://stackoverflow.com/questions/22475849/node-js-what-is-enospc-error-and-how-to-solve

반응형