Linux에서 CPU 사용량 확인
· Version : ubuntu
SQL Server Linux 버전 출시로 MS SQL DBA분들이 Linux에 대한 관심이 많이 높아졌다. 이번 팁에서는 Linux에서 SQL Server를 사용할때 알아두면 좋은 리눅스 팁을 공유한다.
CPU 사용량을 확인하기 위한 가장 기본 적인 방법은 콘솔에서 top 명령을 실행하는 것이다.
각 부분에서 어떤 정보를 표시하는지 살펴 본다. 우선 상단의 정보를 살펴보면 아래와 같다.
[Top]
· 09:59:47 up : 현재 시스템 시간
· 8:42 : 시스템의 전원이 켜진 시간
· 1 user : 로그온 한 사용자 수
· Load average : 0.00, 0.03, 0.05 : 부하 평균 측정 값(평균값은 5분, 10분, 15분 간격으로 측정된다)
리눅스 시스템에서 로드 평균은 특정 시간대에 대기중인 작업 (CPU 또는 IO)의 비율을 측정한다. 이 값은 CPU 코어 수에 따라 다르다. 예를 들어 로드 평균이 1인 코어가 하나 있는 시스템에서 최대로드가 100일 경우, 2 코어 CPU 경우 로드가 절반으로 줄어든다. 일반적으로 로드가 시스템 코어 수보다 큰 경우 시스템에 부하가 가중됨을 의미한다. 부하 평균은 대기중인 작업으로 인해 시스템 코어 수보다 월씬 많은 수를 나타낸다.
[Tasks]
· 187 total : 총 작업 수
· 2 running : 실제 실행 중인 작업 수
· 185 sleeping : 이벤트가 계속 실행되기를 기다리는 프로세스 수
· 0 stopped : 중지된 작업 수
· 0 zombie : 좀비 상태의 프로세스 수
좀비 프로세스란 Linux 시스템에서 하위 프로세스가 완료되면 프로세스 ID가 프로세스 테이블에 기록되어 상위 프로세스가 하위 프로세 종료 상태를 확인할 수 있다. 이때의 자식 프로세스를 좀비라 한다. 부모 프로세스가 자식 종료 상태를 확인하면 좀비가 제거된다. 좀비 문제는 리눅스가 /proc/sys/kernel/pid_max 파일을 읽음으로써 찾을 수 있는 제한된 개수의 프로세스 ID를 가지며 아주 드물게 자원 부족을 초래할 수 있다.
[%Cpu(s)]
· 2.6 us : 사용자 모드의 CPU 시간 백분율
· 0.2 sy : 시스템 모드의 CPU 시간 백분율
· ni : 우선 순위가 낮은 사용자 모드에서의 CPU 시간 백분율 (Linux 호출은 우선순위가 좋음)
· 97.2 id : CPU 유휴시간 백분율
· wa : I/O 대기 CPU 시간 백분율
· hi : 하드웨어 중단을 처리하는 CPU 시간 비율 백분율
· si : CPU 시간 서비스 소프트웨어 인터럽트 백분율
· st : 실제 CPU에서 하이퍼바이저가 다른 프로세스를 서비스하는 동인 기다리는 가상 CPU의 백분율
[KiB Mem]
· 4045800 total : 전체 메모리
· 776368 free : 사용가능한 메모리
· 1645996 used : 사용중인 메모리
· 1623436 buff/cache : 버커 캐시에서 사용중인 메모리
[KiB Swap]
· 4191228 total : 총 스왑 파티션 공간
· 4191228 free : 사용 가능한 스왑 파티션 공간
· 0 used : 사용 된 스왑 공간
· 2118016 avail Mem : 사용 가능한 물리 메모리
· PID : 프로세스 ID
· USER : 사용자
· PR : 프로세스 우선 순위, 이 열에서 RT가 표시되면 프로세스가 실시간으로 실행중임을 의미
· NI : 좋은 우선 순위. 음수 값이면 프로세스가 우선 순위가 높은것을 의미. 양수값은 프로세서의 우선순위가 낮은것을 의미.
· VIRT : 프로세스가 사용하는 가상 메모리의 양(KB)
· RES : 프로세스에 사용되는 실제 메모리양(KB)
· SHR : 공유 메모리의 양 (KB)
· S : 프로세스 상태
ü D = uninterruptible sleep
ü R = running
ü S = sleeping
ü T = stopped by job control signal
ü t = stopped by debugger during trace
ü Z = zombie
· %CPU : Task별 CPU 사용량. 스레드 모드에서 실행 중이 아니기 때문에 간혹 100% 보다 큰 숫자가 표시 될 수 있다.
· %MEM : 프로세스가 사용하는 실제 메모리의 백분율
· TIME+ : 프로세스에 사용된 CPU 시간
· COMMAND : 프로세스를 시작한 명령
2017-06-07 / 강성욱 / http://sqlmvp.kr
SQL Linux, Linux CPU, 리눅스에서 CPU 사용량 체크, SQL 2017, check CPU usage on Linux
강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp