1. 서버 관리
- AI, ML 엔지니어가 만든 모델은 대부분 서버에서 동작하므로, 서버를 어떻게 관리할 수 있는지에 대해 배울 필요가 있음
- 서버
- 클라이언트에게 네트워크를 통해 서비스하는 컴퓨터
- 우리가 어딘가에 있는 컴퓨터에 접속해서 사용할 때 ‘서버’를 사용한다고 함
- 서버 관리를 위한 배경 지식
- 쉘 커맨드
- 파일 시스템
- 네트워크
- 패키지 관리
- 성능 모니터링
- Docker, 컨테이너
2. 파일 시스템과 디스크
- Linux의 파일 시스템 구성
- /: 계층 구조의 최상단 디렉토리
- /bin : 단일 사용자나 다중 사용자에게 모두 기본적으로 필요한 유틸리티 프로그램들이 있는 디렉토리. ls, cp 등
- /sbin : 시스템 관리를 유틸리티 프로그램들이 있는 디렉토리
- /boot : 운영 체제 부팅에 필요한 파일들이 있는 디렉토리
- /opt : 소프트웨어 패키지가 설치되는 디렉토리
- /dev : 하드 드라이브, USB 등 하드웨어 장치들이 저장된 디렉토리
- /etc : 시스템 구성 파일, HOSTNAME 설정 등 리눅스 설정을 위한 각종 파일들이 있는 디렉토리
- /home : 사용자 홈 디렉토리. 사용자별 개인 파일, 개인 설정
- /lib : 시스템 프로그램, 라이브러리에서 사용하는 파일들이 있는 디렉토리
- /mnt : 외장 하드 드라이브, USB 마운트할 때 등 파일 시스템을 임시로 연결하는 디렉토리
- /usr : 사용자 응용 프로그램이 저장된 디렉토리
- /var : 시스템 운영 중에 발생한 데이터와 로그가 저장되는 디렉토리
- 용량 확인 커맨드
- df: 파티션 단위로 용량 확인. 시스템 전체의 디스크 공간을 확인
- du: 파일 및 폴더 단위로 용량 확인. 특정 디렉토리를 기준으로 디스크 공간을 확인
- -h (human-readable): 사람이 보기 좋게 출력
- -d (Depth): 현재 디렉토리 기준 출력할 Depth 설정
3. 네트워크
- IP: 네트워크에 연결된 다른 컴퓨터의 주소
- ex. 16.144.223.21
- 도메인 (Domain): 웹 브라우저를 통해 특정 사이트에 진입할 때, IP 주소를 대신하여 사용하는 주소
- ex. www.amazon.com
- DNS(Domain Name System): IP와 도메인을 매칭
- 포트 (Port): IP 주소가 가리키는 PC에 접속할 수 있는 통로
- ex. 127.0.0.1:3000 → 3000: 포트 번호
- 방화벽: 네트워크의 출입을 모니터링하고 제어하는 네트워크 보안 시스템
- ACL(Access Control List)를 설정함으로써 OS가 특정 IP 및 포트에만 접속할 수 있도록 설정
- 네트워크 진단 시 사용하는 커맨드
- ping [IP 주소 / 도메인 이름]
- 서버 연결 여부 및 데이터 전송 속도를 테스트
- 네트워크 상에서 서버에 작은 패킷을 보내고, 서버가 이를 받았다는 신호를 받는 것으로 동작
- nslookup [도메인 이름]
- name server와 관련한 조회
- 특정 도메인을 찾을 수 있는지 확인 가능
- netstat (network statistics)
- 현재 연결된 포트 정보를 확인
- ping [IP 주소 / 도메인 이름]
4. 성능 모니터링
- AI 모델을 학습하는 과정에서 사용되는 리소스를 확인해야 할 수 있음
- 성능 모니터링에 사용되는 커맨드
- top
- CPU, Memory, Process 정보 확인
- -b: 순간의 정보 확인
- -n: top 실행 주기 설정
- us: dbwj
- glance
- CPU, Memory, Disk, GPU, Docker 컨테이너 상태 모니터링
- nvidia-smi
- GPU 코어별로 각각의 상태 및 사용량 확인
- top
'Engineering > Engineering' 카테고리의 다른 글
Poetry: Python 패키지 의존성 관리 tool (0) | 2023.07.11 |
---|---|
[Engineering Basic] 리눅스 Linux (0) | 2023.04.30 |
[Engineering Basic] 파이썬 버전 관리 (0) | 2023.04.24 |
[Engineering Basic] 소프트웨어 엔지니어링 (0) | 2023.04.24 |
댓글