linux / arm에서 RAM을 벤치마킹하는 가장 좋은 방법은 무엇입니까?


19

맞춤형 보드에서 비 ECC 메모리 칩의 무결성 및 글로벌 성능을 테스트하고 싶습니다.

리눅스에서 실행되는 도구가 있습니까? 그래서 시스템과 지구 온도를 동시에 모니터링 할 수 있습니까?

일반적으로 수행 할 수있는 비 ECC 특정 테스트가 있습니까?

편집 1 :

온도를 모니터링하는 방법을 이미 알고 있습니다 (특수 플랫폼 기능 /sys/devices/platform/......../temp1_input을 사용합니다).

지금 :

  • wazoox : 작동하지만 자체 테스트를 코딩해야합니다.
  • 제이슨 헌 틀리 :
    • ramspeed : 팔에서 작동하지 않습니다
    • 스트림 벤치 마크 : 작동하고 매우 빠르므로 정확하고 완전한지 살펴 보겠습니다.
    • memtest : 나는 리눅스에서 직접 실행되지 않기 때문에 나중에 시도 할 것이다.
    • fedora에 대한 스트레스 : 나도 나중에 시도 할 것입니다. 지금 fedora를 설치하기에는 너무 문제가 많습니다.

이 배포판을 찾았습니다 : http://www.stresslinux.org/sl/

나는 스트레스 리눅스, memtest, 페도라에 대한 스트레스와 같은 솔루션을 시도한 후에 너무 큰 의존성없이 리눅스에서 직접 실행되는 도구를 계속 점검 할 것입니다.

답변 해 주셔서 감사합니다. 계속 조사하겠습니다.


작업중 인 Linux 배포판을 제공하면 도움이 될 것입니다. 서버 또는 데스크탑 배포를 실행 중입니까? XServer가 포함되어 있습니까?
Jason Huntley

busybox와 함께 Linux 3.0 베어 메탈을 사용하고 rootfs는 nfs에 있으므로 다른 호스트의 도구를 arm cross 컴파일러로 컴파일합니다. XServer가 없습니다.
moul

답변:


13

다음은 때때로 램을 테스트하는 방법입니다. 먼저 두 개의 tmpfs를 마운트하십시오 (기본적으로 tmpfs는 램의 절반 임).

# mount -t tmpfs /mnt/test1 /mnt/test1
# mount -t tmpfs /mnt/test2 /mnt/test2

여유 메모리 및 여유 공간을 확인하십시오.

# free
             total       used       free     shared    buffers     cached
Mem:        252076     234760      17316          0      75856      62328
-/+ buffers/cache:      96576     155500
Swap:      1048820        332    1048488

# df -h -t tmpfs
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
tmpfs                 124M     0  124M   0% /lib/init/rw
udev                   10M  104K  9,9M   2% /dev
tmpfs                 124M     0  124M   0% /dev/shm
/mnt/test1            124M     0  124M   0% /mnt/test1
/mnt/test2            124M     0  124M   0% /mnt/test2

이제 tmpfs를 dd로 채 웁니다 :

# dd if=/dev/zero of=/mnt/test1/test bs=1M 
dd: écriture de `/mnt/test1/test': Aucun espace disponible sur le périphérique
123+0 enregistrements lus
122+0 enregistrements écrits
128802816 octets (129 MB) copiés, 1,81943 seconde, 70,8 MB/s

# dd if=/dev/zero of=/mnt/test2/test bs=1M 
dd: écriture de `/mnt/test2/test': Aucun espace disponible sur le périphérique
123+0 enregistrements lus
122+0 enregistrements écrits
128802816 octets (129 MB) copiés, 5,78563 seconde, 22,3 MB/s

메모리가 실제로 가득 찼는 지 확인할 수 있습니다.

# free
             total       used       free     shared    buffers     cached
Mem:        252076     248824       3252          0       1156     226380
-/+ buffers/cache:      21288     230788
Swap:      1048820      50020     998800

이제 다양한 테스트를 실행할 수 있습니다. 예를 들어 두 임시 파일이 동일한 지 직접 확인하거나 md5sum, sha1sum 등을 실행 중인지 확인하십시오.

# time cmp /mnt/test1/test /mnt/test2/test 

real    0m4.328s
user    0m0.041s
sys     0m1.117s

온도 모니터링에 대해서는 필름 센서 만 알고 있습니다. 특정 하드웨어를 관리하는지 모르겠지만 어쨌든 시도해 볼 수 있습니다.


4
이 벤치 마크는 CPU 캐시의 영향을 받지만 좋은 생각입니다.
Mircea Vutcovici

2
직접 테스트하지는 않았지만 Mircea가 옳을 것입니다. 따라서 "echo 3> / proc / sys / vm / drop_caches"를 사용하여 페이지 캐시, 덴 트리 및 inode를 해제하십시오.
마누엘

CPU 캐시가 아닌 파일 시스템 캐시입니다.
Mircea Vutcovici

1
+1이 dd방법 (구 AMD Athlon 64 3200+에서)은 메모리 클럭 속도의 변화에 ​​지속적으로 비례하는 결과를 얻었습니다. 그럼에도 불구하고 왜 전체 시스템 메모리를 /dev/zero막으려 고합니까? 내가 그렇게하려고 할 때 시스템이 멈췄습니다.
Lumi

3
내가 벤치 마크에 사용하는 간단한 bash는 스크립트에서이 적응 제공 업체 VPS - bitbucket.org/snippets/danielsokolowski/G5oeA
다니엘 Sokolowski

7

linux / arm에서 RAM을 벤치마킹하는 가장 좋은 방법은 무엇입니까?

RamSpeed는 내가 아는 유일한 멀티 플랫폼 메모리 벤치 마크 도구입니다. 지원되는 경우 arm 용으로 컴파일 할 수 있습니다.

http://alasir.com/software/ramspeed/ , 이전 링크가 작동하지 않습니다.

https://github.com/cruvolo/ramspeed-smp

지원되지 않는 경우 스트림을 사용하여 벤치마킹 할 수 있습니다.

http://www.cs.virginia.edu/stream/ref.html

맞춤형 보드에서 ECC가없는 메모리 칩의 무결성 및 글로벌 성능을 테스트하려는 경우

여기에서는 무결성 검사를 위해 여러 차례 memtest를 사용했으며 훌륭하게 작동합니다.

http://www.memtest.org/

* 참고로이 지원 팔만 읽었습니다. 그러나 나는 팔을 테스트하지 않았습니다.

리눅스에서 실행되는 도구가 있습니까? 그래서 시스템과 지구 온도를 동시에 모니터링 할 수 있습니까?

사용중인 배포에서 yum을 지원하는 경우 lm_sensor를 쉽게 설치할 수 있습니다.

m 설치 lm_sensors

http://www.lm-sensors.org/ 에서 다운로드하여 컴파일 할 수도 있습니다 .

그러나 나는 그것이 당신의 기억에 관한 온도 데이터를 제공 할 것이라고 확신하지 않습니다. 또한 마더 보드에는 온도를 읽기위한 센서가 있어야합니다.

일반적으로 수행 할 수있는 비 ECC 특정 테스트가 있습니까?

memtest는 ECC 및 비 ECC에 대한 테스트를 포함합니다.

나는 당신이 시도 할 수있는 마지막 일을 기억했습니다. 팔 아키텍처 또는 rpm에 대한 페도라를 가져옵니다. CPU 및 메모리에 대한 스트레스 테스트를 수행하는 스트레스 패키지를 실행할 수 있습니다.

스트레스 -1.0.4-4.fc13.armv5tel.rpm

busybox에 rpm 설치 프로그램이 패키지 된 경우 fedora 배포에서 arm rpm 중 하나를 배포 할 수 있습니다.


RAMspeed 링크가 스팸성 웹 사이트로 리디렉션되는 방식에 흥미가 있습니다.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

네, 사이트가 사라진 것처럼 보이고 github에 대한 링크가 업데이트됩니다.
Jason Huntley

1

wazoox가 제안한대로 dd를 사용하여 / tmp와 같은 기존 tmpfs에 파일을 쓰지만 사용 가능한 메모리의 절반 이하로 크기를 제한하십시오.

먼저 사용 가능한 메모리 양을 확인하십시오.

> free -h                                                                       
              total        used        free      shared  buff/cache  available 
Mem:            15G        3.0G         11G        540M        1.0G         11G 
Swap:            9G        1.2M          9G                                     

그런 다음 1MB의 4000 블록을 사용하여 총 4GB의 파일을 작성하십시오.

> dd if=/dev/zero of=/tmp/testfile bs=1M count=4000 
4000+0 records in
4000+0 records out
4194304000 bytes (4.2 GB, 3.9 GiB) copied, 1.1395 s, 3.7 GB/s

이렇게하면 스와핑을 피할 수 있으며 마운트 할 필요가 없습니다.


tmpfsRHEL6 / 7 시스템 의 속도를 인위적으로 제한하는 것으로 보입니다 . 쿼드 채널 DDR3-1866 머신, 쿼드 채널 DDR4-2666 머신 또는 두 개의 메모리 채널 만 채워진 동일한 머신에서이 명령을 실행할 때와 동일한 4GB / s를 얻습니다. 이들은 4GB / s가 아니라 60, 85 및 42GB / s의 속도로 메모리에 기록해야합니다.
Mark Booth

dd는 일정한 대기 간격으로 루프를 수행하여 전체 작업의 속도를 제한합니다. 다른 방법으로 시도해보십시오 : dd if = / dev / zero of = / tmp / testfile bs = 4000M count = 1
baldrianbandit

그것은 내가의 다양한 매우 이상한 시도한 것 bscount함께 있었다의 최고의 조합 bs=512K하지만 / 43기가바이트을 제공하는 STREAM 벤치 마크와 s의 시스템에서 / 4.2GB 이상 간다이야 않습니다.
마크 부스

0

u-boot의 memtest를 사용했는데 두 가지 테스트가 있습니다 (u-boot / common / cmd_mem.c 참조).

첫 번째 테스트는 간단하고 (쓰기, 확인) 두 번째 테스트는 활성화되어 #define CONFIG_SYS_ALT_MEMTEST 1더 많은 테스트를 추가합니다.

u- 부트 메모리 공간 다음에 시작 오프셋 (argv [1])을 전달하십시오 mtest 0x200000.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.