35장. stress-ng를 사용하여 실시간 시스템을 테스트하는 응력 테스트
강조 표시는
시스템의 기능을 측정하여 불합리한 조건에서 적절한 수준의 효율성을 유지합니다. stress-ng
툴은 모든 커널 인터페이스를 로드하고 과부하할 수 있는 stress 워크로드 생성기입니다. 여기에는 스트레스 요인으로 알려진 광범위한 응력 메커니즘이 포함되어 있습니다. 과부하 테스트는 시스템이 과도하게 작동할 때 발생하는 열 오버런 및 운영 체제 버그와 같은 머신 작업 및 트립 하드웨어 문제를 만듭니다.
1000개 이상의 다양한 테스트가 있습니다. 여기에는 부동 소수점, 정수, 비트 조작, 제어 흐름 및 가상 메모리 테스트를 실행하는 CPU 특정 테스트가 포함됩니다.
테스트 중 일부가 잘못 설계 된 하드웨어에서 시스템의 열 영역 이동 지점에 영향을 줄 수 있으므로 강조
표시 된 도구를 사용하십시오. 이로 인해 시스템 성능에 영향을 미치고 과도한 시스템 제한으로 인해 중단하기 어려울 수 있습니다.
35.1. CPU 부동 소수점 단위 및 프로세서 데이터 캐시 테스트
부동 소수점 단위는 부동 소수점 연산을 수행하는 프로세서의 기능 부분입니다.A floating-point unit is the functional part of the processor that performs floating-point arithmetic operations. 부동 소수점 단위는 수치화 작업을 처리하고 부동 숫자 또는 10진수 계산을 더 간단하게 만듭니다.
--matrix-method
옵션을 사용하면 CPU 부동 소수점 작업 및 프로세서 데이터 캐시를 테스트하는 데 어려움을 겪을 수 있습니다.
사전 요구 사항
- 시스템에 대한 root 권한이 있어야 합니다.
절차
한 CPU에서 60초 동안 부동 소수점을 테스트하려면
--matrix
옵션을 사용합니다.stress-ng --matrix 1 -t 1m
# stress-ng --matrix 1 -t 1m
Copy to Clipboard Copied! 60초 동안 두 개 이상의 CPU에서 여러 리모터를 실행하려면
--times
또는-t
옵션을 사용합니다.stress-ng --matrix 0 -t 1m
# stress-ng --matrix 0 -t 1m stress-ng --matrix 0 -t 1m --times stress-ng: info: [16783] dispatching hogs: 4 matrix stress-ng: info: [16783] successful run completed in 60.00s (1 min, 0.00 secs) stress-ng: info: [16783] for a 60.00s run time: stress-ng: info: [16783] 240.00s available CPU time stress-ng: info: [16783] 205.21s user time ( 85.50%) stress-ng: info: [16783] 0.32s system time ( 0.13%) stress-ng: info: [16783] 205.53s total time ( 85.64%) stress-ng: info: [16783] load average: 3.20 1.25 1.40
Copy to Clipboard Copied! stressors가 0인 특수 모드에서는 실행할 사용 가능한 CPU를 쿼리하여 CPU 번호를 지정할 필요가 없습니다.
필요한 총 CPU 시간은 4 x 60 초 (240 초)입니다.이 중 0.13 %는 사용자 시간에 85.50%이며,
stress-ng
는 모든 CPU의 85.64 %를 실행합니다.POSIX 메시지 큐를 사용하여 프로세스 간 메시지 전달을 테스트하려면
-mq
옵션을 사용합니다.stress-ng --mq 0 -t 30s --times --perf
# stress-ng --mq 0 -t 30s --times --perf
Copy to Clipboard Copied! mq
옵션은 POSIX 메시지 큐를 사용하여 컨텍스트 전환을 강제 적용하도록 특정 수의 프로세스를 구성합니다. 이 워크로드 테스트는 낮은 데이터 캐시 누락을 목표로 합니다.