7
Bootchart 송형주

Bootchart 송형주

Embed Size (px)

Citation preview

Page 1: Bootchart 송형주

Bootchart

송형주

Page 2: Bootchart 송형주

Bootchart

Page 3: Bootchart 송형주

Bootchart 원리?

부팅 정보

Analyzer

차트 생성

부팅

시작 Boot logger 부팅

Page 4: Bootchart 송형주

부팅 정보 수집에 대한 의문

• 부팅 정보 수집을 어떻게 시작하고, 끝낼까?

• 프로세스 및 시스템 자원에 대한 정보는 어떻게

얻을 수 있는가?

• 수집된 부팅 정보는 어떻게 저장되는가?

Page 5: Bootchart 송형주

부팅 정보 수집 방법

• 리눅스의 부팅 과정 변경

– init 프로세스가 실행되기 전에 logger를 띄워 부팅 정

보를 수집하게 한다.

– 커널 logger init 부팅 프로세스 순서로 변경

• 부팅이 종료된 건 어떻게 알 수 있나?

– 부팅에 관련된 마지막 프로세스를 체크한다.

– (예) 리눅스가 run-level 5(멀티유저/그래픽모드)로 동

작하는 경우, gdmgreeter, kdm_greet와 같은 프로세스

를 발견하면 부팅이 종료된 걸로 간주

Page 6: Bootchart 송형주

어떤 정보를 수집하는가?

/proc/stat system-wide CPU statistics: user, system, IO and idle times

/proc/diskstatssystem-wide disk statistics: disk utilization and throughput

(only available in 2.6 kernels)

/proc/[PID]/statinformation about the running processes: start time, parent PI

D, process state, CPU usage, etc.

• proc 파일 시스템을 활용커널에서 생성

• logger는 0.2초마다 아래 파일 내용을 로그 파일에추가

Page 7: Bootchart 송형주

수집된 부팅 정보 저장은?

• 부팅 중에는 루트 파티션은 read-only로 마

운트된다. --> 저장 x

• logger는 tmpfs을 이용해서 메모리에 우선

저장한 후, 부팅이 모두 완료되면 /var/log/b

ootchart.tgz 파일로 디스크에 저장된다.