Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
4.1 리눅스 단일 호스트 부하의 진상규명
단일 호스트의 성능 끌어내기- 1~3장 부하분산- 단일 호스트의 성능 측정- 추측하지 말라, 계측하라- ps, top, sar
병목 규명작업의 기본적인 흐름- Load Average확인- CPU, I/O중 병목원인 조사
Load Average- Load Average확인시스템 전체의 부하상황을 나타내는 지표(어느 정도의 태스크가 대기상태로 있었는지)/proc/cpuinfo
Load Average
Load AverageWhat about Multi-processors? Myload says 3.00, but things arerunning fine!1.00 on a single-core system2.00, on...
CPU부하가 높은 경우- 사용자 프로그램의 처리가 병목인지- 시스템 프로그램이 원인인지 확인(top,sar)- ps로 프로세스 상태,cpu사용시간으로 체크- 상세하게 조사할 때는 straceCPU 바운드한 프로그램
I/O부하가 높은 경우- 프로그램으로부터 입출력이 많아서- 스왑이 빈번하게 발생했을 때- sar, vmstat로 확인- 메모리 증설(캐시영역)- 데이터 분산, 캐시서버 도입I/O 바운드한 프로그램
프로세스 스케쥴링과 프로세스 상태
프로세스 스케쥴링과 프로세스 상태TASK_RUNNINGTASK_INTERRUPTIBLETASK_UNINTERRUPTIBLETASK_STOPPEDTASK_ZOMBIE
프로세스 상태변화 정리
Load Average가 보고하는 부하란?- 커널이 일정주기(4ms)로 CPU에타이머 인터럽트를 보낸다- 타이머 인터럽트를 받을 때 마다,Load Average가 계산된다.- CPU의 실행권한이 부여되기를 기다리는 프로...
PS(proces state)
CPU사용률이 계산되는 원리- Load Average와 마찬가지, 타이머 인터럽트이용- 커널은 프로세스 전환을 위해 각 프로세스가생성된 후 부터 어느정도 CPU시간을 이용했는지 프로세스 별로 기록(process acco...
SAR(System Activity Reporter)- CPU사용률, I/O대기율 확인을 위한툴<설치방법>1. sudo apt-get install sysstat2. vi /etc/default/sysstatENABLE...
SAR(System Activity Reporter)
SAR(System Activity Reporter)CPU바운드인 경우
SAR(System Activity Reporter)I/O바운드인 경우
SAR(System Activity Reporter)멀티 CPU
쓰레드와 프로세스
쓰레드와 프로세스-prework(multi-process)-worker(multi-thread)-single process event driven-커널내부에서는 프로세스와 쓰레드는 동일한로직으로 스케쥴링 된다.(LWP ...
쓰레드와 프로세스
PS의 사용법p193페이지
PS의 사용법p193페이지
PS의 사용법VSZ(Virtual Set Size)프로세스가 확보한 가상 메모리의 크기RSS(Resident Set Szie)물리 메모리 영역의 크기
PS의 사용법스왑이 발생할 경우, RSS가 큰 프로세스를체크해본다.
PS의 사용법Time은 실제로(?) CPU를 사용한 시간- 무한루프 / Blocking
SAR의 사용법- sadc라는 백그라운드 프로그램이 커널로부터레포트를 수집해서 저장- sar은 얻어진 레포트로부터 정보 출력
SAR의 사용법CPU사용률 확인(sar -u)
SAR의 사용법Load Average확인(sar -q)
SAR의 사용법메모리 사용 현황 확인(sar -r)
메모리 사용 현황 확인(sar -r)SAR의 사용법
SAR의 사용법
VMSTAT(Report Virtual Memory Statics)- SAR과는 다르게 실시간으로 가상메모리 정보참조- I/O대기의 절대치 참조하기 좋음
정리- 단일 호스트의 튜닝은 병목현상을 발견하고 제거하는 작업- 부하의 종류는 2가지CPU부하, I/O부하- top, ps, sar, vmstat를 사용해서 원인을 찾자- 메모리 증설, 캐시서버 증설, 데이터 분산I/O...
Upcoming SlideShare
Loading in …5
×

4.1 단일호스트의 부하

1,988 views

Published on

4.1 단일호스트의 부하

Published in: Technology
  • Be the first to comment

4.1 단일호스트의 부하

  1. 1. 4.1 리눅스 단일 호스트 부하의 진상규명
  2. 2. 단일 호스트의 성능 끌어내기- 1~3장 부하분산- 단일 호스트의 성능 측정- 추측하지 말라, 계측하라- ps, top, sar
  3. 3. 병목 규명작업의 기본적인 흐름- Load Average확인- CPU, I/O중 병목원인 조사
  4. 4. Load Average- Load Average확인시스템 전체의 부하상황을 나타내는 지표(어느 정도의 태스크가 대기상태로 있었는지)/proc/cpuinfo
  5. 5. Load Average
  6. 6. Load AverageWhat about Multi-processors? Myload says 3.00, but things arerunning fine!1.00 on a single-core system2.00, on a dual-core4.00 on a quad-core, etc.
  7. 7. CPU부하가 높은 경우- 사용자 프로그램의 처리가 병목인지- 시스템 프로그램이 원인인지 확인(top,sar)- ps로 프로세스 상태,cpu사용시간으로 체크- 상세하게 조사할 때는 straceCPU 바운드한 프로그램
  8. 8. I/O부하가 높은 경우- 프로그램으로부터 입출력이 많아서- 스왑이 빈번하게 발생했을 때- sar, vmstat로 확인- 메모리 증설(캐시영역)- 데이터 분산, 캐시서버 도입I/O 바운드한 프로그램
  9. 9. 프로세스 스케쥴링과 프로세스 상태
  10. 10. 프로세스 스케쥴링과 프로세스 상태TASK_RUNNINGTASK_INTERRUPTIBLETASK_UNINTERRUPTIBLETASK_STOPPEDTASK_ZOMBIE
  11. 11. 프로세스 상태변화 정리
  12. 12. Load Average가 보고하는 부하란?- 커널이 일정주기(4ms)로 CPU에타이머 인터럽트를 보낸다- 타이머 인터럽트를 받을 때 마다,Load Average가 계산된다.- CPU의 실행권한이 부여되기를 기다리는 프로세스- 디스크 I/O가 완료하기를 기다리는 프로세스
  13. 13. PS(proces state)
  14. 14. CPU사용률이 계산되는 원리- Load Average와 마찬가지, 타이머 인터럽트이용- 커널은 프로세스 전환을 위해 각 프로세스가생성된 후 부터 어느정도 CPU시간을 이용했는지 프로세스 별로 기록(process accounting)- CPU사용률이나 I/O대기율은 종류별, CPU별로 계산된 결과
  15. 15. SAR(System Activity Reporter)- CPU사용률, I/O대기율 확인을 위한툴<설치방법>1. sudo apt-get install sysstat2. vi /etc/default/sysstatENABLED=false를 true로 설정3. sudo service sysstat restart4. sar실행
  16. 16. SAR(System Activity Reporter)
  17. 17. SAR(System Activity Reporter)CPU바운드인 경우
  18. 18. SAR(System Activity Reporter)I/O바운드인 경우
  19. 19. SAR(System Activity Reporter)멀티 CPU
  20. 20. 쓰레드와 프로세스
  21. 21. 쓰레드와 프로세스-prework(multi-process)-worker(multi-thread)-single process event driven-커널내부에서는 프로세스와 쓰레드는 동일한로직으로 스케쥴링 된다.(LWP = Light Weight Process)
  22. 22. 쓰레드와 프로세스
  23. 23. PS의 사용법p193페이지
  24. 24. PS의 사용법p193페이지
  25. 25. PS의 사용법VSZ(Virtual Set Size)프로세스가 확보한 가상 메모리의 크기RSS(Resident Set Szie)물리 메모리 영역의 크기
  26. 26. PS의 사용법스왑이 발생할 경우, RSS가 큰 프로세스를체크해본다.
  27. 27. PS의 사용법Time은 실제로(?) CPU를 사용한 시간- 무한루프 / Blocking
  28. 28. SAR의 사용법- sadc라는 백그라운드 프로그램이 커널로부터레포트를 수집해서 저장- sar은 얻어진 레포트로부터 정보 출력
  29. 29. SAR의 사용법CPU사용률 확인(sar -u)
  30. 30. SAR의 사용법Load Average확인(sar -q)
  31. 31. SAR의 사용법메모리 사용 현황 확인(sar -r)
  32. 32. 메모리 사용 현황 확인(sar -r)SAR의 사용법
  33. 33. SAR의 사용법
  34. 34. VMSTAT(Report Virtual Memory Statics)- SAR과는 다르게 실시간으로 가상메모리 정보참조- I/O대기의 절대치 참조하기 좋음
  35. 35. 정리- 단일 호스트의 튜닝은 병목현상을 발견하고 제거하는 작업- 부하의 종류는 2가지CPU부하, I/O부하- top, ps, sar, vmstat를 사용해서 원인을 찾자- 메모리 증설, 캐시서버 증설, 데이터 분산I/O알고리즘 변경

×