반응형
부하 발생 커맨드
stress-ng --cpu 4 --cpu-method matrixprod --vm 2 --vm-bytes 1G --timeout 60s
CPU 행렬 연산과 메모리 대역폭을 동시에 압박하는 시나리오
- --cpu 4: 4개의 CPU 워커 실행
- --cpu-method matrixprod: 행렬 곱셈 연산 방식으로 CPU 부하 생성
- --vm 2: 2개의 가상 메모리 워커 실행
- --vm-bytes 1G: 각 워커당 1GB의 메모리 할당 및 접근
- --timeout 60s: 60초 후 자동으로 테스트 종료
stress-ng --hdd 2 --hdd-bytes 512M --fork 4 --timeout 60s
디스크 I/O와 과도한 프로세스 생성(Fork)을 유발하는 시나리오
- --hdd 2: 2개의 디스크 I/O 워커 실행
- --hdd-bytes 512M: 워커당 512MB 파일에 읽기/쓰기 수행
- --fork 4: 4개의 프로세스 생성 및 종료 반복 워커 실행
- --timeout 60s: 60초 후 자동으로 테스트 종료
stress-ng --sock 4 --cpu 2 --timeout 60s
TCP 소켓 폭증과 CPU 컨텍스트 스위칭 경합을 발생시키는 시나리오
- --sock 4: 4개의 TCP 소켓 통신 워커 실행
- --cpu 2: 2개의 CPU 워커 실행
- --timeout 60s: 60초 후 자동으로 테스트 종료
sudo stress-ng --cpu 4 --vm 1 --vm-bytes 1.5G --hdd 1 --sock 2 --timeout 60s
CPU, 메모리, 디스크, 네트워크를 모두 극한으로 갈구는 종합 장애 시나리오
- --cpu 4: 4개의 CPU 워커 실행
- --vm 1: 1개의 가상 메모리 워커 실행
- --vm-bytes 1.5G: 1.5GB의 메모리 할당 및 접근
- --hdd 1: 1개의 디스크 I/O 워커 실행
- --sock 2: 2개의 TCP 소켓 통신 워커 실행
- --timeout 60s: 60초 후 자동으로 테스트 종료
성능 측정
vmstat
procs ----memory--- ----swap----- -----io---- ---system---- ------cpu--------
r b swpd free buff cache si so bi bo in cs us sy id wa st
- r: 실행 대기 중이거나 현재 CPU를 사용 중인 프로세스 수
- b: I/O 작업 등으로 대기(Uninterruptible Sleep) 상태에 있는 프로세스 수
- swpd: 사용 중인 가상 메모리(Swap) 양 (KB)
- free: 완전히 비어 있는 여유 메모리 양 (KB)
- buff: 파일 시스템 메타데이터를 저장하는 버퍼 메모리 양 (KB)
- cache: 파일 내용을 캐싱하는 페이지 캐시 메모리 양 (KB)
- si: 디스크에서 메모리로 가져오는 스왑 양 (Swap In, 초당 KB)
- so: 메모리에서 디스크로 밀어내는 스왑 양 (Swap Out, 초당 KB)
- bi: 디스크로부터 읽어 들인 블록 수 (Blocks In, 블록/초)
- bo: 디스크로 내보낸 블록 수 (Blocks Out, 블록/초)
- in: 초당 발생하는 인터럽트 수 (하드웨어/타이머 등)
- cs: 초당 발생하는 컨텍스트 스위치(프로세스/스레드 전환) 횟수
- us: 유저 스페이스(일반 프로그램)의 CPU 사용률 (%)
- sy: 커널 스페이스(시스템 콜 등)의 CPU 사용률 (%)
- id: CPU가 유휴 상태(아무것도 안 함)인 비율 (%)
- wa: 디스크 I/O 대기 때문에 CPU가 멈춰 있던 비율 (%)
- st: 가상 머신(VM) 환경에서 하이퍼바이저가 빼앗아 간 CPU 비율 (%)
iperf
iperf3 -c 192.168.1.100 -i 1 -t 10
- -s (Server): 서버 모드로 실행 (클라이언트의 접속 대기)
- -c <IP> (Client): 클라이언트 모드로 실행 및 접속할 서버 IP 지정
- -t <초> (Time): 테스트를 진행할 총 시간 설정 (기본값: 10초)
- -i <초> (Interval): 실시간 결과 출력 주기 설정 (예: -i 1은 1초마다 출력)
- -p <포트> (Port): 사용할 포트 번호 지정 (기본값: 5201)
1분 성능 측정
| 1 | uptime | 시스템 부하 추세 확인 | Load Average(1분, 5분, 15분)가 급증하는 추세인지 확인 |
| 2 | dmesg | tail | 커널 및 하드웨어 로그 확인 | OOM(Out-Of-Memory) Killer 발동 여부, 드라이버 에러 탐색 |
| 3 | vmstat 1 | 메모리, 프로세스, CPU 대기 상태 모니터링 | r(실행 대기), wa(I/O 대기), si/so(스왑) 수치 확인 |
| 4 | mpstat -P ALL 1 | 멀티코어별 CPU 사용률 분석 | 특정 코어만 100% 치솟는 부하 불균형(Skew) 여부 확인 |
| 5 | pidstat 1 | 프로세스별 자원 사용량 추적 | 시스템 리소스를 범죄적으로 소모하는 특정 프로세스 식별 |
| 6 | iostat -xz 1 | 디스크 I/O 성능 및 병목 진단 | %util(디스크 사용률)과 await(응답 대기 시간) 확인 |
| 7 | free -m | 물리 메모리 및 스왑 잔여량 확인 | 가용 메모리 부족 여부 및 스왑 영역 점유 상태 파악 |
| 8 | sar -n DEV 1 | 네트워크 인터페이스 대역폭 분석 | 초당 송수신 패킷량(Rx/Tx) 및 에러(drop/err) 발생 여부 확인 |
| 9 | sar -n TCP,ETCP 1 | TCP 네트워크 상태 및 에러 확인 | 초당 접속(Active/Passive) 및 재전송(Retransmit) 비율 확인 |
| 10 | top | 전체 시스템 종합 현황 재확인 | 리소스를 가장 많이 먹는 상위 프로세스들의 최종 크로스체크 |
반응형
'Engineering' 카테고리의 다른 글
| 실험 : RTSP 기반 스트리밍 파이프라인 레이턴시 및 QoE 분석 (0) | 2026.09.25 |
|---|---|
| zero-copy frame processing (0) | 2026.09.21 |
| QoS (Quality of Service) (0) | 2026.09.13 |
| Multimedia Systems (0) | 2026.09.10 |
| latency optimization in interactive multimedia streaming (0) | 2026.09.10 |