리눅스 장애 대응 · 부하와 CPU · 퀴즈
퀴즈: 부하와 CPU
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
8코어 서버의 부하 평균이 24 인데 CPU 유휴가 60% 입니다. 가장 먼저 확인할 것은?
- 모니터링 에이전트가 잘못 재는 버그
- D 상태(중단 불가 대기) 프로세스 수와 스토리지 지표
- CPU 온도와 동작 클럭 저하 여부
- 전체 메모리 사용량과 스왑
부하 평균이 산술평균이 아니라 지수감쇠 평균이라는 사실에서 따라오는 실무적 결론은?
- 장애 종료 직후 15분 평균만 높은 것은 정상이므로 그 값으로 알람을 걸면 안 된다
- 짧은 스파이크가 실제보다 훨씬 크게 보인다
- 1분 평균이 가장 부정확하다
- 값이 코어 수를 넘을 수 없다
CPU limit 1코어인 컨테이너에서 스레드 8개가 도는 애플리케이션이 느립니다. 사용률은 12% 로 보입니다. 확인할 곳은?
- /proc/loadavg 가 보여 주는 부하 평균 세 값
- cgroup 의 cpu.stat 에 있는 nr_throttled 와 nr_periods
- top 이 보여 주는 steal time 값
- /proc/meminfo 의 가용 메모리
top 의 steal time 이 지속적으로 15% 입니다. 올바른 대응은?
- 게스트를 다른 물리 호스트로 재배치한다(클라우드 API 의 stop/start)
- 게스트 안에서 도는 애플리케이션 코드를 최적화한다
- 게스트 안에서 reboot 한다
- vCPU 개수를 두 배로 늘린다
PSI(/proc/pressure)가 부하 평균에 더해 주는 정보는?
- 얼마나 오래 멈춰 있었는지(시간 비율)
- 어떤 프로세스가 원인인지
- CPU 코어별 사용률
- 메모리 누수 여부
nproc 이 16 을 보여 줍니다. 부하 16 이면 딱 포화라고 볼 수 있나요?
- 그렇다. nproc 이 처리 능력을 정확히 나타낸다
- 아니다. 부하는 항상 코어 수의 절반에서 포화된다
- 그렇다. 다만 컨테이너에서만 예외다
- 아니다. SMT 라면 물리 코어는 8개일 수 있고, D 상태 오염도 남아 있다