Linux 서버 사용시 상태 체크에 필요한 명령어 및 플러그인들을 정리합니다.
우측에 나온 목차를 따라 확인하시길 바라며, 본인에게 적합한 명령어를 선택하시길 바랍니다.
: 현재 OS의 상태를 나타내주는 명령어
메모리 사용량, CPU 사용량 등을 나타내주며 주기적인 업데이트로 실시간 내용을 보여줌
실행 화면
top - 06:55:28 up 229 days, 18:11, 1 user
시스템의 현재 시간 → 06:55:28
이 시간은 GMT 기준으로 +9를 해야 한국 시간과 동일
OS가 살아있는 시간 → 229 days, 18:08
OS가 얼마나 살아있는지를 표시
유저 세션 수 → 1 user
현재 접속중인 유저 세션 수를 표시
: CPU Load(CPU가 수행하는 작업의 양)의 이동 평균를 표시
load average: 0.01, 0.02, 0.00
앞에서 부터 1분, 5분, 그리고 15분에 대한 평균값으로, 실행되거나 대기중인 프로세스의 평균
: 현재 프로세스들의 상태를 나태내주는 영역
Tasks: 103 total, 1 running, 60 sleeping, 0 stopped, 0 zombie
: CPU가 어떻게 사용되고 있는지 그 사용율을 보여주는 영역
%Cpu(s): 0.3 us, 1.0 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
: 첫번째 줄은 RAM의 메모리 영역으로 Mem이라 표시되어있는 부분
: 아랫줄은 디스크를 메모리 처럼 이용하는 Swap 메모리 영역
일반적으로 Mem의 사용량이 거의 가득 찼을때 Swap 메모리 영역을 사용
→ 이 영역은 디스크이기 때문에 RAM 메모리보다 속도가 많이 느리다.
KiB Mem : 975600 total, 267028 free, 296968 used, 411604 buff/cache
KiB Swap: 786428 total, 540156 free, 246272 used. 536232 avail Mem
: 기존 top보다 업그레이드 된 실시간 모니터링 툴
실행시 화면
각 코어 마다 색이 들어간 파이프가 나타냄
파이프 색 의미
사용된 메모리 양을 파이프로 표현
파이프 색 의미
파이프 색 의미
→ 위에서 설명한 top과 동일
F1 (Help) 클릭 시 보이는 화면 예시
: 리눅스 시스템에서 성능 모니터링을 위해 사용되는 유틸리티
# 사용하는 운영체제에 맞는 파일을 https://sourceforge.net/projects/nmon/files에서 다운로드
wget https://sourceforge.net/projects/nmon/files/nmon16g_x86.tar.gz
# 압축 해제
tar zxvf nmon16g_x86.tar.gz
# 압축 해제한 파일을 실행가능 하도록 변경
sudo cp ./nmon16g_x86_fedora25 /usr/local/bin/nmon
sudo chmod a+x /usr/local/bin/nmon
# 실행
nmon
첫 실행 화면 - 메뉴얼에서 원하는 통계 자료를 입력
원하는 정보를 클릭한 수집 정보 화면
: 오픈 소스의 실시간 시스템 모니터링 도구
# 설치 (이전에 python3 설치 필요)
pip install glances
# 실행
glances
실행 화면
: CPU와 메모리 사용량을 표시
: CPU 사용량을 표시
Memory & Swap
Load
: 네트워크 연결에 대한 확장 정보를 표시
Disk I/O
디스크 I/O 처리량을 표시하며, 장치는 동적으로 조정
File Sys
사용된 파일 시스템 디스크 공간과 전체 파일 시스템 디스크 공간을 표시
: top
에서 표시된 프로세스 정보와 동일
: 제조사를 비롯해서 RAM/CPU 관련 하드웨어 정보를 확인 가능
sudo dmidecode -t memory | more
실행 결과
sudo dmidecode -t processor | more
실행 결과
cat /proc/cpuinfo | more
실행 결과
: 메모리와 스왑(swap) 파티션의 전체 용량, 사용량, 남은 용량 등을 표시
: directory usage
: 파일과 디렉터리 용량을 계산하는 유틸리티로 용량을 계산
$ du -c /usr/local/
77936 /usr/local/bin
8 /usr/local/etc
1448 /usr/local/include
...
872 /usr/local/share
1204756 /usr/local/
1204756 total
============================
$ du -s /usr/local/
1204756 /usr/local/
============================
du -h /usr/local/
77M /usr/local/bin
8.0K /usr/local/etc
1.5M /usr/local/include
...
5.8M /usr/local/share
1.2G /usr/local/
============================
$ du -sh /usr/local/
1.2G /usr/local/
: directory free
: 리눅스 시스템 전체의 (마운트 된) 디스크 사용량을 확인
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 30302592 6310004 23976204 21% /
tmpfs 1964120 0 1964120 0% /dev/shm
tmpfs 785652 1008 784644 1% /run
tmpfs 5120 0 5120 0% /run/lock
/dev/nvme0n1p15 99800 6418 93383 7% /boot/efi
tmpfs 392824 4 392820 1% /run/user/1000
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 6.1G 23G 21% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 768M 1008K 767M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/nvme0n1p15 98M 6.3M 92M 7% /boot/efi
tmpfs 384M 4.0K 384M 1% /run/user/1000
======================================================
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/root ext4 29G 6.1G 23G 21% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 768M 1008K 767M 1% /run
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/nvme0n1p15 vfat 98M 6.3M 92M 7% /boot/efi
tmpfs tmpfs 384M 4.0K 384M 1% /run/user/1000
: 디스크 read/write 통계지표 / CPU 사용률을 실시간으로 보여줌
: 리눅스 시스템에서 자원의 한계 값을 확인하고 설정할 수 있는 명령어
# Soft Limit 조회
> ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-m: resident set size (kbytes) unlimited
-u: processes 15302
-n: file descriptors 1024
-l: locked-in-memory size (kbytes) 491028
-v: address space (kbytes) unlimited
-x: file locks unlimited
-i: pending signals 15302
-q: bytes in POSIX msg queues 819200
-e: max nice 0
-r: max rt priority 0
-N 15: unlimited
================================================
# Hard Limit 조회
> ulimit -Ha
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) unlimited
-c: core file size (blocks) unlimited
-m: resident set size (kbytes) unlimited
-u: processes 15302
-n: file descriptors 1048576
-l: locked-in-memory size (kbytes) 491028
-v: address space (kbytes) unlimited
-x: file locks unlimited
-i: pending signals 15302
-q: bytes in POSIX msg queues 819200
-e: max nice 0
-r: max rt priority 0
-N 15: unlimited
ulimit을 이용해 시스템 리소스 제한 수정하기
$ ulimit -n 2048 # 오픈 파일 갯수를 2048로 수정
/etc/security/limits.conf 파일을 수정하기
- nproc (number of processes) : 프로세스 최대 개수
- nofile (number of open files) : 파일 열기 최대 개수
#<domain> <type> <item> <value>
user soft nproc 4096
user hard nproc 4096
user soft nofile 4096
user hard nofile 4096
# 리눅스에서는 모든 개체를 파일로 보기에
# nproc를 높이면 nofile도 같이 높여주는 것이 맞다.
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
# End of file
: 다목적 벤치마킹 도구
주로 CPU, 메모리, 디스크 및 데이터베이스 성능을 테스트하고 평가하는 데 사용
CPU 성능 테스트 예시
sysbench cpu --events=10000 --cpu-max-prime=20000 --time=0 run
리눅스 참 재밌어요.