리눅스 컴퓨터 스트레스 테스트 프로그램. 프로세서 스트레스 테스트를 수행하는 방법. 스트레스 - 종합적인 PC 부하 테스트 패키지

프로세서의 정격 속도 제한이 마음에 들지 않습니다. 프로세서를 해당 기능의 한계까지 오버클럭하는 것을 선호합니까? 프로세서가 더 빠르게 작동할 수 있다면 메모리의 경우 버스 클럭 주파수 및/또는 승수를 늘려서 이를 따라갈 수 있습니다. 프로세서를 오버클럭하는 것은 쉽습니다. 작동 주파수를 높여야 합니다. 프로세서 주파수를 오버클럭(오버클럭)하면 컴퓨터가 불안정하게 작동할 수 있으며, 때로는 아주 드물지만 컴퓨터 오류로 이어질 수도 있습니다. 글쎄, 결정하셨으니... 오버클러킹 시 프로세서의 올바른 작동을 확인하려면 최대, 최대 프로세서 사용률 및 RAM 부하에서 시스템 안정성 테스트를 수행하는 것이 유용할 것입니다. 즉, 컴퓨터 성능 향상 모드에서 프로세서 및 RAM 오류가 나타나는지 확인하십시오. LinX 프로그램은 CPU와 RAM 모두에 대한 스트레스 테스트입니다.

LinX 시스템 안정성 테스트

리소스 과부하를 사용하여 프로세서와 RAM을 테스트하기 전에 가능한 한 많은 여유 메모리를 사용하기 위해 모든 프로그램을 닫는 것이 좋습니다. LinX 시스템 안정성 테스트는 Intel Linpack 기술을 사용하여 구현됩니다. LinX 스트레스 테스트 유틸리티는 모든 Intel 및 AMD 프로세서에서 작동하며 Intel 프로세서용으로 Intel HyperThreading 기술을 지원합니다. LinX는 32비트 및 64비트 테스트 모드에서 시스템 안정성을 테스트할 수 있습니다.

LinX 설정 및 기능

  • 로딩을 위해 Intel Linpack 패키지 리소스 사용
  • Intel HyperThreading 기술 지원(Pentium IV, Atom, Core i7)
  • Intel 및 AMD 프로세서 지원;
  • 다중 스레드의 CPU 로드;
  • 우선순위 선택;
  • 테스트 후 설정 자동 저장;
  • 테스트를 위해 할당된 RAM 양을 선택합니다.
  • 스트레스 테스트 수행 시간의 예비 계산;
  • Lin32 작업의 최대 볼륨 설정
  • 오류가 발생하면 스트레스 테스트를 자동으로 중지하는 기능을 갖춘 오류 제어;
  • 테스트 보고서 자동 저장;
  • 소리와 함께 알림 알람;
  • Everest 및 Speedfan 프로그램에서 프로세서 온도 값, CPU 팬 속도 및 전압 값 가져오기
  • 음모를 꾸미는 것;
  • 명령줄 지원;
  • 스크린샷 생성 및 저장.

LinX 프로그램의 스크린샷



프로그램 CPU 소모로드를 최대화하고 중앙 프로세서를 예열하여 시스템의 스트레스 테스트를 수행하도록 설계되었습니다. 다양한 유형의 프로세서에 최적화되었습니다. ALU(산술 논리 장치) 및 FPU(부동 소수점 단위)에 대해 무한 루프를 실행하여 작동합니다. 모든 프로세서 명령을 테스트하지는 않습니다. 이 프로그램의 목표는 프로세서를 최대한 예열하여 프로세서 자체, 냉각 시스템, 마더보드(특히 전압 조정기) 및 전원 공급 장치에 스트레스를 가하는 것입니다.

이 프로그램은 다음 모듈로 구성됩니다.

화상P5- MMX 지침이 없는 Intel 프로세서에 최적화되었습니다.
화상P6- MMX 명령어를 지원하는 Intel 프로세서의 경우
화상K6- AMD K6 시리즈 프로세서용
화상K7- AMD Athlon, Duron 프로세서 등의 경우...;
화상MMX- MMX 명령어를 지원하는 모든 프로세서에 대한 캐시/메모리 인터페이스 테스트
번BX- Intel 프로세서에 대한 대체 캐시/메모리 테스트.

설치:

apt-get 설치 CPUburn

튀김 비율

모든 코어를 로드하기 위해 프로세서에 적합한 필요한 수의 테스트 인스턴스를 실행합니다(제 경우 Intel 프로세서에는 8개의 코어가 있습니다).

burnP6 & burnP6 & burnP6 & burnP6 & burnP6 & burnP6 & burnP6 & burnP6 &

Linpack 테스트를 실행하고 궁금했습니다. 이제 노트북의 열 페이스트를 교체해야 할 때가 아닌가?

예, 연속된 여러 테스트 결과(사진으로 기사를 복잡하게 만들지 않겠습니다)에 따르면 프로세서가 스로틀링(가열 시 클럭 사이클 건너뛰기 및 주파수 재설정)에 들어가는 것이 분명하지만 얼마나 빨리 수행됩니까? 이런 짓을 시작해?

Linux 터미널에서 CPU 스트레스 테스트

이 질문을 하고 인터넷에서 유틸리티를 검색한 결과, 제가 설정한 문제를 해결하는 데 있어 가장 큰 문제는 최소한 두 개의 유틸리티가 동시에 실행되고 두 개의 창에서 눈이 휘둥그레지는 것임을 깨달았습니다... 그리고 나는 나에게는 열려 있는 프로그램의 다채로운 창보다 콘솔 옵션이 더 적합하다는 결론입니다.

저는 sysbench로 시작했습니다.

sudo apt 설치 sysbench

sysbench --num-threads=4 --test=cpu --cpu-max-prime=100000 실행

  • --num-스레드=4- 이것은 스레드 수입니다. 저는 듀얼 코어, 4스레드 Intel® Core™ i7-640M을 사용하므로 4개입니다.
  • --cpu-최대-프라임=100000- 이것은 수행되는 최대 작업 수이므로 100,000으로 설정했습니다. 기본값은 10000이며 테스트가 너무 빨리 완료됩니다.

그런 다음 Linpack으로 전환했습니다. 내 프로세서는 Intel 제품이고 어느 정도 게으름이 있기 때문에(게으름은 발전의 원동력입니다) 이전에 내 홈 디렉토리에 linpack 디렉토리를 생성한 기성 Intel Linpack을 가져와 다운로드하고 압축을 풀었습니다.

mkdir ./linpack
CD ./linpack
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9752/l_mklb_p_2018.3.011.tgz
tar -xvzf ./l_mklb_p_2018.3.011.tgz

AMD 프로세서의 경우 이 옵션을 시도하지 않을 것입니다. Intel 컴파일러는 프로세서를 확인하는 북마크를 삽입하고 그것이 Intel이 아닌 경우... 글쎄요, 프로세서가 100개 또는 2개의 추가 명령을 실행하고 분명히 손실을 입을 것이기 때문입니다. 성능. AMD의 경우 예를 들어 다음과 같은 소스에서 Linpack을 빌드하는 것이 좋습니다. 이 기사에서는 소스 코드에서 어셈블리를 고려하지 않을 것입니다. 소스 코드의 README를 읽으십시오.

Intel의 Linpack으로 돌아가 보겠습니다. 필요하지 않은 불필요한 것들이 너무 많지만 2018.3.011 버전과 관련하여 필요한 사항을 고려해보겠습니다. 나중에 긴 명령을 입력할 필요가 없도록 즉시 원하는 디렉터리로 이동하겠습니다.

cd ./l_mklb_p_2018.3.011/benchmarks_2018/linux/mkl/benchmarks/linpack

기본적으로 Intel의 Linpack은 서버 Xeon을 테스트하기 위해 설계되었으므로 입력 옵션으로 사용할 자체 파일을 만들 것입니다. 테스트 횟수를 줄이면 됩니다. 완료하려면 테스트하세요. 저는 Linux Mint LMDE 3을 사용하고 있으므로 xed 텍스트 편집기를 사용합니다. 특히 루트로 실행할 때 색상이 빨간색으로 바뀌는 등 뛰어난 기능이 마음에 듭니다. 따라서 이동한 디렉터리와 동일한 디렉터리에 파일을 만듭니다(예: my_test).

그리고 생성된 파일에 다음 내용을 복사합니다.

LINPACK* 벤치마크용 인텔(R) 배포판의 공유 메모리 버전입니다. *다른 이름과 브랜드는 해당 회사의 자산일 수 있습니다.
샘플 데이터 파일 lininput_xeon64.
5 # 테스트 수
1000 2000 5000 10000 20000 # 문제 크기
1000 2000 5008 10000 20000 # 선행 치수
4 2 2 2 1 #회 테스트 실행
4 4 4 4 4 # 정렬 값(KB)

음, 실제로 생성된 파일을 사용하여 Linpack을 실행합니다.

./xlinpack_xeon64 -i ./my_test

./xlinpack_xeon64 ./my_test

Stress-ng나 Stress를 사용할 수도 있지만 그래도 내가 설정한 문제는 해결되지 않습니다. 이러한 유틸리티는 처음부터 온도, 주파수 및 시간의 출력을 표시하지 않습니다.

온도는 센서로 표시될 수 있습니다. 이 유틸리티 설치에 대해 자세히 알아보세요. 그리고 이 유틸리티는 내 질문을 더 자세히 고려하는 데 필요할 것입니다. Linux는 훌륭하고 강력합니다. 동일한 작업을 다른 방식으로 해결할 수 있습니다. C는 너무 게을러서 대사가 많지 않아서 BASH에서 부족한 부분을 썼습니다. 센서가 설치되지 않으면 스크립트가 작동하지 않습니다. 당연히 저는 조절 감지를 기록하지 않았습니다. 주파수 재설정 및 온도에서 이미 볼 수 있습니다. 스크립트 자체는 다음과 같습니다.

#!/bin/bash
out=0 # 테스트 프로세스 제어 변수
pid_test="tty" # 테스트 프로세스의 PID(인수 없이 실행하기 위해 기존 디렉터리에서 생성됨)
cpus_num=$(cat /proc/cpuinfo | grep -ci "processor") # 프로세서/코어/스레드 수
echo -en "\033[?25l" 1>&2 # 커서 숨기기
echo -en "\033[^:]*: //g" | sort -u # 출력 프로세서 모델
echo -en "\033=$(센서 | sed "/Core ""$i""/!d;s/.*crit = +\(.*\)[.]°C).*/\1/ ")
if [ -n "$(cpu_crit_temp[i])" ]
그 다음에
CPU_red_temp[i]=cpu_crit_temp[i]-10을 허용합니다.
CPU_yel_temp[i]=cpu_crit_temp[i]-30을 허용합니다.
CPU_최소_온도[$i]=1000
CPU_max_temp[$i]=0
fi
완료
start_time=$(cat /proc/uptime | sed "s/[.].*$//") # 시작 시간
if [ -n "$1" ]
그 다음에
script_pid="$$"
(if ! $@ > "$0_out" 2>&1 # 테스트 파일 실행
그 다음에
kill -s SIGABRT $script_pid # 실행에 실패했다는 신호를 메인 스크립트에 보냅니다.
fi 2>/dev/null)&
pid_test="$!" # 테스트 프로세스의 PID
fi
while (true) # 온도 제어
하다
((i=0; 나는<$cpus_num; i++))
하다
cpu_freq[$i]=$(cat /sys/devices/system/cpu/cpu$(i)/cpufreq/scaling_cur_freq | sed "s/...$//")
cpu_temp[$i]=$(센서 | sed "/Core ""$i""/!d;s/.*+\(.*\)[.]°C[ \t]*(.*/\ 1/")
if [ -n "$(cpu_temp[i])" ]
그 다음에
(($(cpu_temp[i])< ${cpu_min_temp[i]})) && cpu_min_temp[$i]=${cpu_temp[i]}
if (($(cpu_temp[i]) > $(cpu_max_temp[i])))
그 다음에
cpu_max_temp[$i]=$(cpu_temp[i])
time_max[$i]=$(cat /proc/uptime | sed "s/[.].*$//")
time_max[i]=time_max[i]-start_time을 허용하세요.
fi
if (($(cpu_temp[i]) > $(cpu_red_temp[i])))
그 다음에
echo -en "cpu$(i):\t"
echo -en "\033) "
echo -en "\033)"
echo -en "\033)"
echo -en "\033) > $(cpu_yel_temp[i])))
그 다음에
echo -en "cpu$(i):\t"
echo -en "\033) "
echo -en "\033)"
echo -en "\033)°C; 최대: "
echo -en "\033)"
echo -en "\033)초) "
또 다른
echo -en "cpu$(i):\t"
echo -en "\033) "
echo -en "\033)"
echo -en "\033)°C; 최대: "
echo -en "\033)"
echo -en "\033)초) "
fi
또 다른
echo -en "cpu$(i):\t"
echo -en "\033) "
echo -en "\033 .*$//")
시간=시간-시작_시간
echo -en "시간:\t$time 초."
[ ! -d "/proc/$(pid_test)" ] && break # 테스트가 끝나면 종료합니다(comm과 cmdline을 통해 제어하는 ​​가장 좋은 방법이지만...너무 게으르다)
[ "$out" != "0" ] && break # 테스트가 실패하면 종료합니다.
echo -en "\033[$(i)A\r" 1>&2 # 커서를 $i 줄 위로 이동하고 줄의 시작 부분으로 이동
sleep 0.1 # 주파수 출력이 너무 많이 점프하지 않도록 일시 중지
완료
에코 ""
echo -en "\033[?25h" 1>&2 # 커서 활성화
if [[ "$out" == "0" && -n "$1" ]]
그 다음에

rm -fR "$0_out"
0번 출구
elif [[ "$out" == "1" && -n "$1" ]]
그 다음에
kill -9 "$pid_test" 1>/dev/null 2>/dev/null
고양이 "$0_out" | sed "/^$/d;/샘플 데이터/d;/CPU 주파수/d;/매개변수가 설정됨/,/데이터 정렬 값/d"
rm -fR "$0_out"
1번 출구
elif [ "$out" == "1" ]
그 다음 1번 출구
elif [ "$out" == "2" ]
그 다음에
echo -en "\033)

질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: