อะไรคือวิธีที่ดีที่สุดในการวัดประสิทธิภาพ RAM (no-ECC) ภายใต้ linux / arm?


19

ฉันต้องการทดสอบความสมบูรณ์และสมรรถนะระดับโลกของชิปหน่วยความจำ no-ECC บนกระดานที่กำหนดเอง

มีเครื่องมือบางอย่างที่ทำงานภายใต้ linux หรือไม่เพื่อให้ฉันสามารถตรวจสอบระบบและอุณหภูมิโลกในเวลาเดียวกันได้หรือไม่?

มีการทดสอบเฉพาะแบบไม่มี ECC ให้ทำโดยทั่วไปหรือไม่?

แก้ไข 1:

ฉันรู้วิธีตรวจสอบอุณหภูมิแล้ว (ฉันใช้คุณสมบัติแพลตฟอร์มพิเศษ /sys/devices/platform/......../temp1_input)

สำหรับตอนนี้ :

  • wazoox: ใช้งานได้ แต่ฉันต้องเขียนรหัสการทดสอบของตัวเอง
  • Jason Huntley:
    • ramspeed: ไม่ทำงานบนแขน
    • มาตรฐานการสตรีม: ใช้งานได้และเร็วมากดังนั้นฉันจะดูว่ามันแม่นยำและสมบูรณ์หรือไม่
    • memtest: ฉันจะลองใหม่ในภายหลังเพราะมันไม่ทำงานโดยตรงจาก linux
    • ความเครียดสำหรับ fedora: ฉันจะลองใหม่ในภายหลังเช่นกันมันเป็นปัญหาสำหรับฉันที่จะติดตั้ง fedora ตอนนี้

ฉันพบการแจกจ่ายนี้: http://www.stresslinux.org/sl/

ฉันจะตรวจสอบเครื่องมือที่ทำงานภายใต้ linux โดยตรงโดยไม่ต้องพึ่งพาใครมากเกินไปหลังจากนั้นฉันอาจลองใช้วิธีแก้ปัญหาเช่น stresslinux, memtest, ความเครียดสำหรับ fedora

ขอบคุณสำหรับคำตอบของคุณฉันจะตรวจสอบต่อไป


มันจะช่วยถ้าคุณให้การแจกจ่ายลินุกซ์กับคุณ คุณใช้เซิร์ฟเวอร์หรือเดสก์ท็อปกระจายอยู่หรือไม่? มันรวม XServer หรือไม่
Jason Huntley

ฉันใช้ linux 3.0 โลหะเปลือยกับ busybox, rootfs อยู่บน nfs ดังนั้นฉันจึงรวบรวมเครื่องมือจากโฮสต์อื่นที่มี arm cross compiler ไม่มี XServer
moul

คำตอบ:


13

นี่คือวิธีที่ฉันทดสอบ RAM ในบางครั้ง: เมานต์สอง tmpfs แรก (โดยค่าเริ่มต้น tmpfs คือครึ่งหนึ่งของ ram):

# 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

ตอนนี้คุณสามารถทำการทดสอบต่าง ๆ ได้เช่นตรวจสอบว่าไฟล์ temp เหมือนกันโดยตรงหรือเรียกใช้ md5sum, sha1sum ฯลฯ :

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

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

เกี่ยวกับการตรวจสอบอุณหภูมิฉันรู้จักเซ็นเซอร์ lm เท่านั้น ฉันไม่รู้ว่ามันจัดการฮาร์ดแวร์เฉพาะของคุณหรือไม่ แต่คุณอาจลองดูก็ได้


4
เกณฑ์มาตรฐานนี้จะได้รับผลกระทบจากแคชของ CPU แต่เป็นความคิดที่ดี
Mircea Vutcovici

2
ไม่ได้ทดสอบตัวเอง แต่ Mircea อาจจะถูกต้อง: ดังนั้นฉันจะ "echo 3> / proc / sys / vm / drop_caches" เพื่อกำจัด pagecache, dentries และ inodes ที่ควรทำ
Manuel

สิ่งเหล่านี้คือแคชระบบไฟล์ไม่ใช่แคช CPU
Mircea Vutcovici

1
+1 ddวิธีการนี้(บน AMD Athlon 64 3200+) ให้ผลลัพธ์แก่ฉันอย่างสม่ำเสมอสัดส่วนกับการเปลี่ยนแปลงของความเร็วสัญญาณนาฬิกาหน่วยความจำซึ่งฉันใช้หมายความว่ามันดีพอ แต่ไม่แน่ใจว่าทำไมคุณถึงต้องการอุดตันหน่วยความจำระบบทั้งหมดด้วย/dev/zero- ระบบของฉันค้างเมื่อฉันพยายามทำเช่นนั้น
Lumi

3
ฉันได้ดัดแปลงสิ่งนี้ในสคริปง่ายๆที่ฉันใช้กับผู้ให้บริการ VPS มาตรฐาน - bitbucket.org/snippets/danielsokolowski/G5oeA
Daniel Sokolowski

7

อะไรคือวิธีที่ดีที่สุดในการวัดประสิทธิภาพ RAM (no-ECC) ภายใต้ linux / arm?

RamSpeed ​​เป็นเครื่องมือเปรียบเทียบหน่วยความจำแบบหลายแพลตฟอร์มเพียงหนึ่งเดียวที่ฉันรู้ คุณอาจจะสามารถรวบรวมมันสำหรับแขนถ้าได้รับการสนับสนุน:

http://alasir.com/software/ramspeed/ ลิงก์เก่าไม่ทำงานใช้:

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

หากไม่รองรับคุณอาจเปรียบเทียบมาตรฐานโดยใช้สตรีม:

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

ต้องการทดสอบความสมบูรณ์และสมรรถนะระดับโลกของชิปหน่วยความจำ no-ECC บนกระดานที่กำหนดเอง

ที่นี่ฉันได้ใช้ memtest หลายครั้งสำหรับการตรวจสอบความสมบูรณ์และใช้งานได้ดี:

http://www.memtest.org/

* หมายเหตุฉันอ่านได้แค่นี้เท่านั้นที่รองรับ Arm อย่างไรก็ตามฉันยังไม่ได้ทดสอบแขน

มีเครื่องมือบางอย่างที่ทำงานภายใต้ linux หรือไม่เพื่อให้ฉันสามารถตรวจสอบระบบและอุณหภูมิโลกในเวลาเดียวกันได้หรือไม่?

หากการแจกจ่ายที่คุณใช้รองรับ yum คุณสามารถติดตั้ง lm_sensors ได้อย่างง่ายดาย:

ยำติดตั้ง lm_sensors

นอกจากนี้คุณยังสามารถดาวน์โหลดและรวบรวมจาก: ที่นี่http://www.lm-sensors.org/

อย่างไรก็ตามฉันไม่แน่ใจว่าจะให้ข้อมูลอุณหภูมิเกี่ยวกับหน่วยความจำของคุณ เมนบอร์ดของคุณจะต้องมีเซ็นเซอร์สำหรับอ่านอุณหภูมิ mem

มีการทดสอบเฉพาะแบบไม่มี ECC ให้ทำโดยทั่วไปหรือไม่?

memtest จะรวมการทดสอบสำหรับทั้ง ECC และไม่ใช่ ECC

ฉันจำสิ่งสุดท้ายที่คุณสามารถลองได้ รับ fedora สำหรับสถาปัตยกรรมแขนหรือรอบต่อนาที คุณสามารถเรียกใช้แพคเกจความเครียดซึ่งจะทดสอบความเครียดซีพียูและหน่วยความจำของคุณ:

ความเครียด 1.0.4-4.fc13.armv5tel.rpm

หาก busybox มีตัวติดตั้ง rpm พร้อมด้วยคุณอาจสามารถปรับใช้หนึ่งใน rpms แขนหนึ่งจากการแจกจ่าย fedora


น่าสนใจว่าลิงก์ RAMspeed จะเปลี่ยนเส้นทางไปยังเว็บไซต์สแปมได้อย่างไร
Ciro Santilli 新疆改造中心法轮功六四事件

ใช่ดูเหมือนว่าเว็บไซต์ของพวกเขาหายไปอัปเดตลิงก์ไปยัง GitHub
Jason Huntley

1

เขียนไฟล์ลงใน tmpfs ที่มีอยู่เช่น / tmp ด้วย dd ตามที่แนะนำโดย wazoox แต่ จำกัด ขนาดไฟล์ให้เหลือน้อยกว่าครึ่งหนึ่งของหน่วยความจำที่ว่างของคุณ

ก่อนอื่นดูว่ามีหน่วยความจำเท่าใด:

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

จากนั้นเขียนไฟล์ในกรณีนี้ 4GB ทั้งหมดใช้ 4000 บล็อก 1MB:

> 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 ของฉัน ฉันได้รับ 4GB / s เดียวกันกับคุณไม่ว่าฉันจะรันคำสั่งนี้กับเครื่อง quad channel DDR3-1866, เครื่อง quad channel DDR4-2666 หรือเครื่องเดียวกันที่มีช่องหน่วยความจำเพียงสองช่องเท่านั้น สิ่งเหล่านี้ควรจะเขียนลงในหน่วยความจำที่ 60, 85 และ 42GB / s อย่างเคารพไม่ใช่ 4GB / s
Mark Booth

อาจเป็นวันที่กำลังทำลูปด้วย intervall ที่รอคอยอย่างต่อเนื่องดังนั้นจึง จำกัด ความเร็วของการกระทำทั้งหมด ลองวิธีอื่น ๆ : dd if = / dev / zero of = / tmp / testfile bs = 4000M count = 1
baldrianbandit

มันแปลกมากฉันได้ลองกับหลากหลายbsและcounts และชุดที่ดีที่สุดคือด้วยbs=512Kแต่มันไม่เคยเกิน 4.2GB / s บนเครื่องซึ่งให้ 43GB / s กับมาตรฐาน STREAM
Mark Booth

0

ฉันใช้ memtest ของ u-boot มีการทดสอบสองแบบ (ดู u-boot / common / cmd_mem.c):

การทดสอบครั้งแรกนั้นง่าย (เขียน, ตรวจสอบ), การทดสอบครั้งที่สองถูกเปิดใช้งาน#define CONFIG_SYS_ALT_MEMTEST 1และเพิ่มการทดสอบเพิ่มเติม

ดูแลผ่านการเริ่มต้นชดเชย (argv [1]) หลังจากที่พื้นที่หน่วยความจำ mtest 0x200000U-บูตคือ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.