I' ve just bought new RAM and I'd like to benchmark and compare with my old. How can I do that?
How to benchmark RAM memory with a Linux Distro
benchmarkram
Related Solutions
I'd say fio would have no trouble producing those workloads. Note that despite its name CrystalDiskMark is actually a benchmark of a filesysystem on a particular disk - it can't do I/O raw to the disk alone. As such it will always have filesystem overhead in it (not necessarily a bad thing but something to be aware of e.g. because the filesystems being compared might not be the same).
An example based on replicating the output in the screenshot above supplemented by information from the CrystalDiskMark manual (this isn't complete but should give the general idea):
fio --loops=5 --size=1000m --filename=/mnt/fs/fiotest.tmp --stonewall --ioengine=libaio --direct=1 \
--name=Seqread --bs=1m --rw=read \
--name=Seqwrite --bs=1m --rw=write \
--name=512Kread --bs=512k --rw=randread \
--name=512Kwrite --bs=512k --rw=randwrite \
--name=4kQD32read --bs=4k --iodepth=32 --rw=randread \
--name=4kQD32write --bs=4k --iodepth=32 --rw=randwrite
rm -f /mnt/fs/fiotest.tmp
BE CAREFUL - this example permanently destroys the data in /mnt/fs/fiotest.tmp
!
A list of fio parameters can be seen on http://fio.readthedocs.io/en/latest/fio_doc.html .
In summary, one of two things generally happens. The memory works, but is limited to the maximum amount supported by the motherboard, or the memory doesn't work at all.
Let me be a bit detail to you.
On every motherboard, there is a controller for accessing the RAM. The limiting factor is how much memory can be accessed (or addressed) by that memory controller. Theoretically, a 64-bit CPU can access 2^64 bytes of RAM. For practical reasons, however, the number of addresses lines actually etched into a motherboard is much smaller, and the controller is created to be able to access up to a specific number of addresses. It can address fewer memory locations just fine as well. That determines the range and maximum amount of memory.
So when memory is installed with more addressable bytes than the controller understands, the best outcome is that only the lower portion of the RAM is used. However, because of the way memory is constructed, it's also possible that the larger memory won't work at all as that's the case with yours.
But again, it depends on the motherboard on how it handles memory errors.
This stackexchange site gives more detailed information concerning your RAM issue. What happens when more RAM is installed than the motherboard supports?
You can also read this: RAM.
Best Answer
The package hardinfo (http://sourceforge.net/projects/hardinfo.berlios/) is a pretty decent system benchmarker with a nice GUI. The simplest way to compare the two would be to benchmark one save the results and then compare it to your benchmarking of the other.
EDITDepending on your distro, you may already have hardinfo installed, for example on Lubuntu it is called "System Profiler and Benchmark".