Upload
iamhjoo-
View
1.593
Download
6
Embed Size (px)
Citation preview
Bootchart
송형주
Bootchart
Bootchart 원리?
부팅 정보
Analyzer
차트 생성
부팅
시작 Boot logger 부팅
끝
부팅 정보 수집에 대한 의문
• 부팅 정보 수집을 어떻게 시작하고, 끝낼까?
• 프로세스 및 시스템 자원에 대한 정보는 어떻게
얻을 수 있는가?
• 수집된 부팅 정보는 어떻게 저장되는가?
부팅 정보 수집 방법
• 리눅스의 부팅 과정 변경
– init 프로세스가 실행되기 전에 logger를 띄워 부팅 정
보를 수집하게 한다.
– 커널 logger init 부팅 프로세스 순서로 변경
• 부팅이 종료된 건 어떻게 알 수 있나?
– 부팅에 관련된 마지막 프로세스를 체크한다.
– (예) 리눅스가 run-level 5(멀티유저/그래픽모드)로 동
작하는 경우, gdmgreeter, kdm_greet와 같은 프로세스
를 발견하면 부팅이 종료된 걸로 간주
어떤 정보를 수집하는가?
/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초마다 아래 파일 내용을 로그 파일에추가
수집된 부팅 정보 저장은?
• 부팅 중에는 루트 파티션은 read-only로 마
운트된다. --> 저장 x
• logger는 tmpfs을 이용해서 메모리에 우선
저장한 후, 부팅이 모두 완료되면 /var/log/b
ootchart.tgz 파일로 디스크에 저장된다.