일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ReactRouter6 다운그레이드
- 모던디자인테마
- kotlinc
- checkupdates
- 신기술은
- 안할수가없네
- 복붙하기좋은
- react
- 날이새도록
- 편하게쓰자
- VSCode
- 코틀린
- ERR_CERT_AUTHORITY_INVALID
- 시플플은영원하구나
- 정규식
- ubuntu_rg_cpu_100%
- ReactRouter withRouter
- 반갑지는않아
- 공부할시간이
- 무과금살아남기
- 해볼게
- 나의야근
- HTML 자바스크립트 태그제거
- 선택했을까
- 리엑트라우터 구버전 살리기
- ReactRouter 4
- 야근은결국승리
- vscode 수동업데이트
- 자바스크립트
- 리엑트
- Today
- Total
필사(筆寫)
express.js "uv_resident_set_memory" 오류 본문
Error: ENOENT: no such file or directory, uv_resident_set_memory
리눅스/우분투 계열에서 위와 같은 메시지와 함께 nodejs express 데몬이 종료된다면,
여러가지 nginx 설정도 중요하지만 우분투에서 파일 접근 디렉티브 조정이 필요하다.
$ulimit -n 했을때 1024라면, 파일 접근 가능 횟수가 부족할 수 있음으로
서버 성능에 따라서 조정을 해주는 것이 맞다.
root 계정을 사용할 때와 sudo root 처리하는 경우 둘다 작업해줘야 한다.
ulimit 설정 이후 터미널을 종료하고 다시 들어와서 ulimit -n 숫자가 올바르게 변화했음을 체크해야 한다.
아스테리크를 써서 전역적인 설정은 아래와 같이 하며
sudo nano /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
이외 nginx 1.18 이후 버전대역은 user 가 nginx임으로 아래와 같이 설정해도 되고
nginx soft nofile 65535
nginx hard nofile 65535
이하버전인 경우 www-data 라면
www-data soft nofile 65535
www-data hard nofile 65535
데몬을 root로 바로 쓰는경우가 아닌 경우,
su 후에,
nano nano /etc/security/limits.conf
nginx user 를 nginx 또는 www-data 와 같이 단독으로 사용하는 경우 해당 계정으로 스위치해서 ulimit 수치를 확인해주거나 위처럼 아스테리크(*, 모든계정)로 처리해서 해주는 것이 맞다.
메모리에 따라서 65535와 같이 사이즈를 결정해주는게 맞다.
해당 설정은 mongodb, nginx 등 모두 공역화해서 쓰는 사이즈라 보면 된다.
이후 /etc/pam.d/common-session
session required pam_limits.so
을 주석해제 또는 추가해주어 로그인 후 limit가 반영될 수 있도록 배치하고
nginx의 경우 worker_rlimit_nofile 65535; 와 같이 한계를 지정해주는 것이 좋다.
다중 코어 CPU 중 32개 넘어가는 CPU의 경우 전체 nofile을 점거될 수 있는 상태가될 수 있어
서비스 온할 때 설정을 추가해서 제한하고 싶다면 아래와 같이 막아줄 수 있다.
sudo nano /lib/systemd/system/nginx.service
[Service]
LimitNOFILE=10240
sudo systemctl daemon-reload && sudo systemctl restart nginx
이외, 실제 파일 디스크립터 제한 확인 명령어는 grep 포함해서 확인 가능하다.
cat /proc/$(pgrep nginx | head -n 1)/limits | grep "Max open files"
'Service Developments > Node.js,Express' 카테고리의 다른 글
nginx 1.27.1 http3 설정 방법 및 체크 방법 (0) | 2024.07.19 |
---|---|
ubunutu 20, 22 계열 기본 설치된 nginx 1.18 삭제 방법 (0) | 2024.07.19 |
V8에서 GC를 조금 더 빠르게 쓰는 가장 간단한 팁 (0) | 2024.01.28 |
Npm install 시, --save and --save-dev 차이점을 알아보자. (0) | 2017.12.06 |
Node.js + Sass 학습하기 좋은 연습장 (0) | 2017.12.06 |