시스템 성능 엔지니어링 (시스템 성능 분석과 문제 해결을 위해 알아야 할 거의 모든 것)

시스템 성능 엔지니어링 (시스템 성능 분석과 문제 해결을 위해 알아야 할 거의 모든 것)

$62.00
Description
《시스템 성능 엔지니어링》은 운영 체제와 애플리케이션의 성능을 이해하고 최적화하기 위한 개념, 전략, 도구 및 튜닝 기법을 종합적으로 다룹니다. 개발자에게 이러한 도구와 기법에 대한 깊은 이해는 필수적이며, 이 책에서 제시하는 전략은 사용자 경험 향상과 비용 절감으로 직결됩니다. 특히 인스턴스 단위로 과금되는 클라우드 환경에서는 이러한 개선 효과가 더 크게 나타납니다. 저자는 운영 체제, 하드웨어, 애플리케이션 이론을 간결하게 정리하여 성능 분석 경험이 없는 독자라도 빠르게 핵심을 이해할 수 있도록 안내합니다. 확장 BPF(eBPF)를 포함한 최신 분석 도구와 기법을 심도 있게 설명하며, 클라우드·웹·엔터프라이즈 시스템에서 최상의 성능을 이끌어내는 실질적인 방법을 제시합니다.
저자

브렌던그레그

저자:브렌던그레그
컴퓨팅성능과클라우드컴퓨팅분야의세계적인전문가입니다.현재인텔펠로우(IntelFellow)로서AI·클라우드성능엔지니어링을이끌고있으며,이전에는넷플릭스의시니어성능아키텍트로성능설계·평가·분석·튜닝을총괄했습니다.≪BPF성능분석도구≫(인사이트,2021)를비롯해여러기술서를집필했으며,USENIXLISA공로상을받았습니다.또한커널엔지니어와성능책임자로활동했으며,USENIXLISA2018컨퍼런스의프로그램공동의장을맡은바있습니다.플레임그래프(flamegraph)를비롯해여러운영체제에포함된성능도구와시각화기법을고안해보급한성과로도널리인정받고있습니다.

역자:이호연
SUSE의BPF시스템엔지니어로,리눅스커널BPF서브시스템개발과엔터프라이즈리눅스배포판의BPF기능을담당하고있습니다.2018년부터BPF/XDP와uftrace등다양한오픈소스프로젝트에꾸준히기여하며,커널내부동작분석과성능최적화에집중해왔습니다.또한스토리지와네트워크성능분석을주제로USENIXVault19와SOSCON2019에서발표한경험이있습니다.집필서로는《Kong:BecomingaKingofAPIGateways》(BleedingEdgePress,2018),번역서로는《BPF성능분석도구:BPF트레이싱을통한리눅스시스템관측가능성과성능향상》(인사이트,2021)이있습니다.

목차


1장소개
1.1시스템성능
1.2역할
1.3활동
1.4관점
1.5성능분석의어려움
__1.5.1주관성
__1.5.2복잡성
__1.5.3복합원인
__1.5.4여러성능문제
1.6지연시간
1.7관측가능성
__1.7.1카운터,통계,지표
__1.7.2프로파일링
__1.7.3트레이싱
1.8실험
1.9클라우드컴퓨팅
1.10방법론
__1.10.160초리눅스성능분석
1.11사례연구
__1.11.1느린디스크
__1.11.2소프트웨어변경
__1.11.3추가자료
1.12참고자료

2장방법론
2.1용어
2.2모델
__2.2.1테스트중인시스템
__2.2.2큐시스템
2.3개념
__2.3.1지연시간
__2.3.2시간스케일
__2.3.3트레이드오프
__2.3.4튜닝을위한노력
__2.3.5적합성의수준
__2.3.6분석을언제중단할것인가
__2.3.7성능개선의한시성
__2.3.8부하vs.아키텍처
__2.3.9규모확장성
__2.3.10지표
__2.3.11사용률
__2.3.12포화도
__2.3.13프로파일링
__2.3.14캐싱
__2.3.15모른다는것을아는것들
2.4관점
__2.4.1자원분석
__2.4.2워크로드분석
2.5방법론
__2.5.1가로등반방법론
__2.5.2임의변경반방법론
__2.5.3다른사람비난반방법론
__2.5.4전용체크리스트방법론
__2.5.5문제내역서
__2.5.6과학적방법론
__2.5.7진단사이클
__2.5.8도구방법론
__2.5.9USE방법론
__2.5.10RED방법론
__2.5.11워크로드특성화
__2.5.12드릴다운분석
__2.5.13지연시간분석
__2.5.14R방법론
__2.5.15이벤트트레이싱
__2.5.16기준통계
__2.5.17정적성능튜닝
__2.5.18캐시튜닝
__2.5.19마이크로벤치마킹
__2.5.20성능최적화를위한지침
2.6모델링
__2.6.1엔터프라이즈환경vs.클라우드환경
__2.6.2시각적성능식별
__2.6.3암달의확장성법칙
__2.6.4일반확장성법칙
__2.6.5큐이론
2.7수용량계획
__2.7.1리소스한계
__2.7.2요인분석
__2.7.3스케일링솔루션
2.8통계
__2.8.1성능향상정량화
__2.8.2평균
__2.8.3표준편차,백분위,중앙값
__2.8.4변동계수
__2.8.5다봉분포
__2.8.6극단값
2.9모니터링
__2.9.1시간에따른패턴
__2.9.2모니터링제품
__2.9.3부팅시점부터의요약
2.10시각화
__2.10.1꺾은선차트
__2.10.2산점도
__2.10.3히트맵
__2.10.4타임라인차트
__2.10.5표면도
__2.10.6시각화도구
2.11연습문제
2.12참고자료

3장운영체제
3.1용어
3.2배경지식
__3.2.1커널
__3.2.2커널및사용자모드
__3.2.3시스템콜
__3.2.4인터럽트
__3.2.5클럭과유휴상태
__3.2.6프로세스
__3.2.7스택
__3.2.8가상메모리
__3.2.9스케줄러
__3.2.10파일시스템
__3.2.11캐싱
__3.2.12네트워킹
__3.2.13장치드라이버
__3.2.14멀티프로세서
__3.2.15선점
__3.2.16자원관리
__3.2.17관측가능성도구
3.3커널
__3.3.1유닉스
__3.3.2BSD
__3.3.3솔라리스
3.4리눅스
__3.4.1리눅스커널개발
__3.4.2systemd
__3.4.3KPTI(멜트다운)
__3.4.4확장BPF(ExtendedBPF)
3.5기타주제
__3.5.1PGO커널
__3.5.2유니커널
__3.5.3마이크로커널및하이브리드커널
__3.5.4분산운영체제
3.6커널비교
3.7연습문제
3.8참고자료
__3.8.1추가자료

4장관측가능성도구
4.1도구적용범위
__4.1.1정적성능분석도구
__4.1.2비상도구
4.2도구유형
__4.2.1고정카운터
__4.2.2프로파일링
__4.2.3트레이싱
__4.2.4모니터링
4.3관측가능성소스
__4.3.1/proc
__4.3.2/sys
__4.3.3지연어카운팅
__4.3.4netlink
__4.3.5tracepoint
__4.3.6kprobe
__4.3.7uprobe
__4.3.8USDT
__4.3.9하드웨어카운터(PMC)
__4.3.10기타관측가능성소스
4.4sar
__4.4.1sar(1)적용범위
__4.4.2sar(1)모니터링
__4.4.3sar(1)실시간모니터링
__4.4.4sar(1)관련문서
4.5트레이싱도구
4.6관측가능성도구관찰하기
4.7연습문제
4.8참고자료

5장애플리케이션
5.1애플리케이션기초
__5.1.1목표
__5.1.2일반적인경우최적화하기
__5.1.3관측가능성
__5.1.4빅오(BigO)표기법
5.2애플리케이션성능기법
__5.2.1I/O크기변경
__5.2.2캐싱
__5.2.3버퍼링
__5.2.4폴링
__5.2.5동시성과병렬성
__5.2.6논블로킹I/O
__5.2.7프로세서바인딩
__5.2.8성능최적화를위한지침
5.3프로그래밍언어
__5.3.1컴파일언어
__5.3.2인터프리터언어
__5.3.3가상머신
__5.3.4가비지컬렉션
5.4방법론
__5.4.1CPU프로파일링
__5.4.2Of-CPU분석
__5.4.3시스템콜분석
__5.4.4USE방법론
__5.4.5스레드상태분석
__5.4.6락분석
__5.4.7정적성능튜닝
__5.4.8분산트레이싱
5.5관측가능성도구
__5.5.1perf
__5.5.2profle
__5.5.3ofcputime
__5.5.4strace
__5.5.5execsnoop
__5.5.6syscount
__5.5.7bpftrace
5.6유의사항
__5.6.1누락된심벌
__5.6.2누락된스택
__5.7연습문제
__5.8참고자료

6장CPU
6.1용어
6.2모델
__6.2.1CPU아키텍처
__6.2.2CPU메모리캐시
__6.2.3CPU실행큐
6.3개념
__6.3.1클럭속도
__6.3.2명령어
__6.3.3명령어파이프라인
__6.3.4명령어너비
__6.3.5명령어크기
__6.3.6SMT
__6.3.7IPC,CPI
__6.3.8CPU사용률
__6.3.9사용자시간/커널시간비율
__6.3.10포화상태
__6.3.11선점
__6.3.12우선순위역전
__6.3.13멀티프로세스,멀티스레드
__6.3.14워드크기
__6.3.15컴파일러최적화
6.4아키텍처
__6.4.1하드웨어
__6.4.2소프트웨어
6.5방법론
__6.5.1도구방법론
__6.5.2USE방법론
__6.5.3워크로드특성화
__6.5.4프로파일링
__6.5.5사이클분석
__6.5.6성능모니터링
__6.5.7정적성능튜닝
__6.5.8우선순위튜닝
__6.5.9리소스제어
__6.5.10CPU바인딩
__6.5.11마이크로벤치마킹
6.6관측가능성도구
__6.6.1uptime
__6.6.2vmstat
__6.6.3mpstat
__6.6.4sar
__6.6.5ps
__6.6.6top
__6.6.7pidstat
__6.6.8time,ptime
__6.6.9turbostat
__6.6.10showboost
__6.6.11pmcarch
__6.6.12tlbstat
__6.6.13perf
__6.6.14profle
__6.6.15cpudist
__6.6.16runqlat
__6.6.17runqlen
__6.6.18softirqs
__6.6.19hardirqs
__6.6.20bpftrace
__6.6.21기타도구
6.7시각화
__6.7.1사용률히트맵
__6.7.21초미만오프셋히트맵
__6.7.3플레임그래프
__6.7.4FlameScope
6.8실험
__6.8.1임의부하생성
__6.8.2SysBench
6.9튜닝
__6.9.1컴파일러옵션
__6.9.2스케줄링우선순위및클래스
__6.9.3스케줄러옵션
__6.9.4스케일링거버너
__6.9.5프로세서전원상태
__6.9.6CPU바인딩
__6.9.7배타적CPU셋
__6.9.8리소스제어
__6.9.9보안부팅옵션
__6.9.10프로세스옵션(BIOS튜닝)
6.10연습문제
6.11참고자료

7장메모리
7.1용어
7.2개념
__7.2.1가상메모리
__7.2.2페이징
__7.2.3요구페이징
__7.2.4메모리오버커밋
__7.2.5프로세스스와핑
__7.2.6파일시스템캐시사용
__7.2.7사용률및포화도
__7.2.8메모리할당자
__7.2.9공유메모리
__7.2.10워킹셋크기
__7.2.11워드크기
7.3아키텍처
__7.3.1하드웨어
__7.3.2소프트웨어
__7.3.3프로세스가상주소공간
7.4방법론
__7.4.1도구방법론
__7.4.2USE방법론
__7.4.3사용특성파악
__7.4.4사이클

출판사 서평


[이책에서다루는내용]

하드웨어,커널,애플리케이션내부구조와성능특성
복잡한시스템을신속하게진단하기위한성능분석방법론
CPU,메모리,파일시스템,디스크,네트워크자원사용최적화
perf,Ftrace,BPF(BCC및bpftrace)를활용한정밀프로파일링과트레이싱
클라우드하이퍼바이저환경에서직면하는성능문제
더효과적인벤치마킹기법

추천사

강진우(당근마켓인프라실리더)
《시스템성능엔지니어링》은시스템을이루는핵심요소들이어떻게동작하는지를깊이있게다루며,성능문제를진단하고해결할수있는기반을마련해줍니다.단순한도구사용법이아닌시스템을보는눈을길러주는안내서로서더멀리,더깊이가고싶은분들에게추천합니다.-

박상헌(카카오인프라개발조직리더)
SRE로일하면서성능이슈를다루다보면,원인을파악하는데가장큰도움이되는건시스템의내부를들여다볼수있는도구들입니다.이책은BPF를활용해그과정을체계적으로안내해주는탁월한자료입니다.

윤종민(라인플러스개발자)
이책은CPU,메모리,디스크,네트워크같은핵심자원이어떻게동작하는지알기쉽게풀어주고,실제로성능문제가생겼을때어떤도구와방법을써야하는지도구체적으로보여줍니다.특히클라우드환경과컨테이너운영에서흔히겪는문제들을예시로다루어,실무경험이부족한사람도상황을그려볼수있게돕습니다.

이호성(CIQPrincipleSolutionArchitect(기술총괄상무),한국리눅스사용자그룹운영자)
참고용매뉴얼을넘어서엔지니어로서의사고체계를근본적으로변화시키는책입니다.복잡한문제를구조적으로분석하고,근본원인을찾아내며,올바른최적화전략을세우는능력을키워줍니다.클라우드·분산환경에서도이책에서배운원리와분석기법은강력한무기가될것입니다.