본문 바로가기
Engineering/Engineering

[Engineering Basic] 서버 관리 basic

by iamzieun 2023. 4. 30.

1. 서버 관리

  • AI, ML 엔지니어가 만든 모델은 대부분 서버에서 동작하므로, 서버를 어떻게 관리할 수 있는지에 대해 배울 필요가 있음
  • 서버
    • 클라이언트에게 네트워크를 통해 서비스하는 컴퓨터
    • 우리가 어딘가에 있는 컴퓨터에 접속해서 사용할 때 ‘서버’를 사용한다고 함
  • 서버 관리를 위한 배경 지식

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 주소를 대신하여 사용하는 주소
  • 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)
      • 현재 연결된 포트 정보를 확인

4. 성능 모니터링

  • AI 모델을 학습하는 과정에서 사용되는 리소스를 확인해야 할 수 있음
  • 성능 모니터링에 사용되는 커맨드
    • top
      • CPU, Memory, Process 정보 확인
      • -b: 순간의 정보 확인
      • -n: top 실행 주기 설정
      • us: dbwj
    • glance
      • CPU, Memory, Disk, GPU, Docker 컨테이너 상태 모니터링
    • nvidia-smi
      • GPU 코어별로 각각의 상태 및 사용량 확인
    •  

댓글