본문 바로가기

Dev

(22)
[Linux] Failed to initialize NVML: Driver/library version mismatch 에러 해결 리눅스의 unattended-upgrade가 패키지를 자동 업데이트하면서 버전 간 차이로 발생하는 에러 커널 로그 확인 sudo dmesg | grep -i nvrm 해결방안 #1 재부팅 해결방안 #2 nvidia 관련 모듈 재가동 1. 로딩되어 있는 nvidia drive kernel 확인 lsmod | grep nvidia 2. 로딩되어 있는 커널들을 순서대로 unload 하기 sudo rmmod nvidia_drm sudo rmmod nvidia_modeset sudo rmmod nvidia_uvm sudo rmmod nvidia 종종 아래와 비슷한 에러가 뜨는 경우가 있는데, rmmod: ERROR: Module nvidia_uvm is in use rmmod: ERROR: Module nvidi..
[Linux] Flask 앱 배포 - Nginx 와 Gunicorn 사용하기 (2) 지난 글에서 Gunicorn 설정을 했고 2023.08.25 - [Dev] - [Linux] Flask 앱 배포 - Nginx 와 Gunicorn 사용하기 (1) 이번에는 Nginx 설정 후 Gunicorn을 Nginx에 연결 0. Gunicorn과 Nginx 연결하기 0.1 Nginx 설정 파일 생성 기존 default 파일 삭제 후 사용할 파일을 생성 sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default sudo touch /etc/nginx/sites-available/myflask 0.2 myflask 파일 수정 sudo nano /etc/nginx/sites-available/myflask 파일 안에..
[Linux] Flask 앱 배포 - Nginx 와 Gunicorn 사용하기 (1) 전체적인 흐름을 먼저 잡고가자면 1. 내가 배포하려고 하는 앱 : Flask app 2. 웹 서버 : Nginx 3. 앱과 웹 서버를 연결하는 미들웨어 : Gunicorn 클라이언트로 부터 요청이 들어올 때 client request → nginx : web proxy server → gunicorn : application server → flask app 서버가 응답 할 때 flask app → gunicorn : application server → nginx : web proxy server → client 0. Nginx 유용하게 쓰는 명렁어 # nginx 시작하기 sudo systemctl start nginx # nginx 멈추기 sudo systemctl stop nginx # nginx ..
[Linux] 파일 및 디렉토리(directory) 용량 확인하기 디스크 별 용량 확인이 필요하면 df -h # disk type 확인 df -Th 특정 파일 또는 디렉토리 용량 확인이 필요하면 du -sh {file or file_path} 상황에 맞게 옵션을 변경 -s : summarize -h : human-readable -c : check more than one directory and see the total 현재 디렉토리에서 상위 5개 디렉토리의 용량 보기 du -hs * | sort -rh | head -5 끝!
[Linux] 압축(tar, tar.gz, tar.xz) 및 압축 풀기 tar는 Tape Archiver의 줄임말로 압축 방식보다는 일종의 묶음 형태 따라서 tar로 우선 묶은 후 gz (gzip) 형식으로 압축을 많이 한다 다만 xz 가 압축률이 더 좋아 최근에 많이 쓰인다 tar로 묶을 시 묶이기 전 파일들의 속성과 디렉토리 구조등을 모두 보존할 수 있고 압축과 압축 해제 등의 작업을 거치면서 파일이 변경, 소실될 염려가 없기 때문에 소스 배포 파일을 만드는 용도로 자주 사용 tar 압축 tar -cvf [파일명].tar [대상 폴더 경로] # test 폴더를 test.tar 로 압축한다면 # tar -cvf test.tar test 여러 파일 또는 디렉토리를 하나의 tar 파일로 압축 시 tar -cvf [파일명].tar [압축 할 파일1][압축 할 파일2][압축 할 ..
[Linux] 파일 해시(hash) 값 추출하기 해시 값 비교를 통해 파일이 변조되었는지 파일의 무결성 검증이 가능함 특히 모델을 서빙할 때 모델 파일을 이동하거나 복사한 후 원본 파일과 동일한지 확인이 필요함 또는 용량이 큰 데이터를 다운 받은 후 데이터 손상여부 확인도 가능함 md5(Message-Digest algorithm 5) 알고리즘으로 sum(Check sum) 값을 계산하여 해시 값을 추출 할 수 있음 데이터가 중간에 조금이라도 변경되면 이 값이 달라짐 방법은 매우 간단하다 md5sum [파일 경로] 또는 sha1sum [파일 경로] md5 사용 시 결점이 있어 sha1이 좀 더 안전하다는 말이 있지만 둘 중 원하는 명령어를 사용하면 된다 이렇게 명령어를 입력하면 해당 파일에 대한 값 생성 파일에 대한 해시 값만 생성 가능하며 폴더로 생..
[Linux] requirements.txt 생성하기 설치된 패키지에 대한 정보를 requirements.txt 파일 하나로 만들 수 있다. 새로운 가상환경을 생성하거나 할 때 한번의 명령어로 파일에 정의되어 있는 패키지를 설치할 수 있다. 0. requirements.txt 만들기 pip freeze > requirements.txt 가끔 이렇게 @file 형식으로 버전이 저장되는데, 그럴 땐 아래 명령어로 파일을 생성하면 된다 pip list --format=freeze > requirements.txt 1. requirements.txt 파일로 패키지 설치하기 해당 파일에 있는 패키지 설치시 아래 명령어를 입력하면 된다 pip install -r requirements.txt 설치가 되지않는 패키지는 뛰어넘고 설치 가능한 패키지만 모두 설치 시 (Li..
[Linux] Nvidia-Docker 설치하기 - 도커에서 TorchServe 모델 배포 (3) 도커에서 컨테이너를 띄우면 현재 호스트와 공유되지 않기 때문에 GPU 사용이 불가하다! 하지만 GPU를 사용하여 모델 inference를 해야하기 때문에, 호스트와 컨테이너를 연결하여 호스트 GPU 사용을 가능하게 해주는 Nvidia-Docker 설치는 필수다 공식 문서는 여기 Nvidia-Docker에서 지원하는 리눅스 목록 도커가 잘 돌아간다는 가정하에 아래 순서대로 설치를 하면 된다 0. 패키지 저장소 및 GPG 키 추가 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/..
[Linux] MAR 파일 생성하기 - 도커에서 TorchServe 모델 배포 (2) 먼저 도커 설치가 필요하다면 아래 글 참고 2023.05.22 - [Dev] - [Linux] Docker 설치하기 - 도커에서 TorchServe 모델 배포 (1) 이번 글에서는 .mar 파일 생성까지 다룰 예정 순서는 아래와 같다 1. 도커에 TorchServe 설치 2. Handler 작성 3. .mar 파일 생성 0. MAR 파일이란? Model Archive 의 줄임말로 TorchServe에서는 .mar 파일을 사용하여 파이토치 모델을 배포한다. .mar 파일은 모델의 가중치, 구조, 메타데이터 등을 포함한 모든 정보를 담고 있다. 1. 도커에 TorchServe 설치 가장 쉬운 방법은 이미지를 pull 하는 방법이다. docker pull pytorch/torchserve:latest 이 커맨..
[Linux] Docker 설치하기 - 도커에서 TorchServe 모델 배포 (1) 기존에 Flask 로 모델 배포를 하고 있었는데, 효율화를 위해 Docker 와 TorchServe 를 사용하여 모델 배포를 할 예정 각각 설정해야 할 것도 많고 기존에 gunicorn 과 엮어서 서빙했기 때문에 차근차근 단계별로 진행할 예정이다. Ubuntu 22.04 도커 설치하기 공식문서는 여기 0. OS requirements (05월 22일) Ubuntu Lunar 23.04 Ubuntu Kinetic 22.10 Ubuntu Jammy 22.04 (LTS) Ubuntu Focal 20.04 (LTS) Ubuntu Bionic 18.04 (LTS) compatible 한 버전의 우분투를 사용 중인지 확인 도커를 설치할 수 있는 방법은 여러가지가 있지만, 여기선 apt repository 로 설치 ..