Linux 154

[ssh] REMOTE HOST IDENTIFICATION HAS CHANGED!

리눅스 서버에서 ssh 명령으로 다른 서버에 접속을 시도할 때 아래와 같은 경고 문구가 출력하면서 접속이 불가능한 경우가 있다. $ ssh -i ~/.ssh/PEM.pem -p USER@IP @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-midd..

Linux 2021.11.18

[gpustat] GPU 사용량 확인

GPU graphics processing unit; 그래픽 처리 장치 컴퓨터 시스템에서, 그래픽 연산을 빠르게 처리하여 결괏값을 모니터에 출력하는 연산 장치VPU(visual processing unit)라고도 한다. 이 글에서는 GPU 사용량을 모니터링하는 방법 중 gpustat에 대해 정리한다. gpustat NVIDIA 그래픽 장치에서만 동작하며, AMD는 지원하지 않는다고 한다. 설치 pip install gpustat 실행 gpustat # --color : 글자색으로 출력문 강조 # --no-color : 흑백으로 출력 # -u, --show-user : 프로세스 소유자 표시 # -c, --show-cmd : 프로세스 표시 # -f, --show-full-cmd : 실행 중인 프로세스의 명령..

Linux 2021.11.07

[ps/sort] 물리 메모리 사용량 순으로 프로세스 정렬

2021.10.23 - [ps] 프로세스의 CPU/MEM 사용량 확인 위 글에서는 ps 명령어의 출력 포맷을 조절하는 방법을 다뤘다. 이 글에서는 sort 옵션을 사용해 결과를 원하는 정보 값을 기준으로 정렬하고자 한다. 명령어 ps -eo --sort [+|-] # 예시 ps -eo pid,pcpu,pmem,cmd,rss --sort rss # 물리 메모리 사용량 기준으로 오름차순 ps -eo pid,pcpu,pmem,cmd,rss --sort -rss # 물리 메모리 사용량 기준으로 내림차순 실행 결과 물리 메모리 사용량 기준으로 오름차순 +/- 기호 생략 시 오름차순으로 정렬한다. 아래 사진에는 head 명령을 이용해 실행 결과의 상위 15개까지만 표시하도록 했다. 물리 메모리 사용량 기준으로 내림..

Linux 2021.10.30

[Ubuntu 20.04 LTS] Oracle JDK 1.8.0_202 설치

Ubuntu 20.04 LTS에서 apt을 이용하지 않고 Oracle Java(JDK)를 직접 설치하는 방법을 적어둔다. Oracle에서 제공하는 Java(JDK) 8은 202 버전까지가 무상이기 때문에 해당 버전을 설치해야 하는데, apt 등의 패키지 관리자를 이용하면 최신 버전의 Java가 설치될 수 있기 떄문이다. 물론 반드시 Oracle JAVA를 사용하지 않아도 괜찮다면 OpenJDK를 설치하면 된다. 참고로 AWS EC2에 설치할 것이다. 방법 1. Java 설치 파일 다운로드 https://www.oracle.com/java/technologies/downloads/archive/ Oracle에 접속하여 OS에 따라 적절하게 설치할 자바 버전 파일을 다운로드 받는다. Oracle 계정이 있어..

Linux 2021.10.24

[ps] 프로세스의 CPU/MEM 사용량 확인

프로세스 리스트를 확인할 때 제일 많이 쓰는 ps -ef 명령은 리소스 사용량을 출력하진 않는다. 당연하다. 옵션을 주지 않았기 때문이다. 별도로 출력하고자 하는 정보가 있다면 -o 옵션을 이용해 출력 포맷을 설정할 수 있다. ps -o # -o : format에 지정된 형식 스펙에 따라 정보 표시 # 예시 ps -eo cmd # -e : 출력에 활성 프로세스 포함 FORMAT에는 아래와 같은 옵션이 올 수 있다. FORMAT 설명 pid 프로세스 ID pcpu CPU 사용률 pmem 메모리 사용률 rss 물리 메모리 사용량 vsz 가상 메모리 사용량 cmd 커맨드 또한 여러 옵션을 동시에 지정할 수 있다. 여러 옵션을 지정할 때는 쉼표로 옵션을 구분하여 적는다. 공백을 포함하면 안 된다. ps -eo ..

Linux 2021.10.23

ulimit 설정

ulimit 접속하는 쉘이나 프로세스가 사용할 수 있는 자원을 조절한다. 즉, 실행시킨 프로세스가 동시에 사용할 수 있는 파일 수 등을 조절할 수 있다. Hard Limit : -H. 한 번 설정되면 root 권한으로만 값을 증가시킬 수 있다. Soft Limit : -S. hard limit까지 조절될 수 있다. 옵션을 명시하지 않으면, 두 값이 동시에 설정된다. 설정 확인 ulimit -a # -a : 모든 값 출력 # -n : open file descriptor의 최대 수 # hard 설정 확인 ulimit -a -H # soft 설정 확인 ulimit -a -S 설정 ulimit # 예시 : max user process 값을 2048로 설정 ulimt -u 2048 명령어를 이용한 설정은 휘발..

Linux 2021.09.13

[Shell Script] 반복문

매번 구글링 해서 찾기 때문에 적어둔다. FOR 문 1. 리스트 내 요소에 대해 반복적으로 작업을 실행한다. for var in val1 val2 val3 do # CMD done var는 변수 이름이며, 값은 공백을 구분된다. foreach 문과 유사하다고 생각하면 된다. 예시) #! /bin/bash for var in 1 2 3 4 5 do echo $var done 2. 리스트가 숫자인 경우에는 중괄호를 이용하여 시작 값과 종료 값을 지정할 수 있다. # start값부터 end값까지 반복. 1 씩 증가. for var in {start..end} do # CMD done # start값부터 end값까지 반복. gap값 씩 증가. for var in {start..end..gap} do # CMD ..

Linux/Shell Script 2021.09.12

vm.overcommit 허용 설정

리눅스 서버의 vm.overcommit 허용 설정 확인과 설정 방법을 정리해둔다. 설정 확인 cat /proc/sys/vm/overcommit_memory 값 의미 0 기본값. 적당히(hueristic) overcommit 허용 1 항상 overcommit. 항상 메모리 할당에 성공한다. 2 제한적으로 overcommit 허용. 가용 메모리 내에서만 할당 가능 설정 변경 echo 1 > /proc/sys/vm/overcommit_memory echo 명령으로 값을 설정할 수 있다. 시스템 설정을 변경하는 작업이기 때문에 root 권한이 필요하다. memory commit 프로세스는 시스템 콜을 사용해 커널에 메모리를 요청한다. 커널을 시스템 콜을 받고 해당하는 메모리 영역의 주소를 전달자로 반환하는데, ..

Linux 2021.09.11

THP(Transparent Huge Pages) 비활성화

THP 리눅스는 Page 단위로 메모리를 관리하고 사용하는데, 기본적으로 페이지 크기는 4096 Bytes (4K)이다. THP는 페이지 크기를 MB, GB 등으로 할당하여 사용하는 기능 RHEL 6 이후 기본적으로 활성화되어 있다. 성능 이슈로 인해 리눅스 서버의 THP 설정을 변경하고자 한다. THP 설정 확인 cat /sys/kernel/mm/transparent_hugepage/enabled cat /sys/kernel/mm/transparent_hugepage/defrag 대괄호로 표시된 값이 현재 설정된 값이다. THP 설정 변경 (비활성화) echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/..

Linux 2021.09.09

홈 디렉터리 수동 생성

useradd 명령으로 사용자를 생성하다, 깜박하고 -m 옵션을 사용하지 않았더니 홈 디렉터리 없이 사용자가 생성되었다. 홈 디렉터리가 없으면, alias나 PATH 정보가 저장되는 사용자 설정 파일도 없어 꽤 불편하다. 사용자가 서버를 정상적으로 이용할 수 있도록 홈 디렉터리를 수동으로 생성해본다. 홈 디렉터리 생성 작업에는 root 권한이 필요하다. 방법 1. 홈 디렉터리 생성 mkdir /home/ 일반적으로 홈 디렉터리 경로는 /home 경로 아래에 사용자 이름과 같게 경로가 설정된다. 정확한 경로를 확인하고 싶다면, /etc/passwd 내용을 확인하는 것이 좋다. 일단 디렉터리를 생성하기만 해도 cd 명령 사용 시 에러는 발생하지 않게 된다. 2. 사용자 정보 복사 새로 생성한 홈 디렉터리에는..

Linux 2021.09.08