title: Computer Testing
breadcrumbs:
- title: Configuration
- title: General
---
{% include header.md %}
Information Gathering
Linux
- Show CPU vulnerabilities:
tail -n +1 /sys/devices/system/cpu/vulnerabilities/*
CPU
Prime95
- For stress testing.
- For most OSes.
- Install: Download.
RAM
MemTest86 (Standalone)
- Runs multiple tests and passes over (almost) all the memory to test for errors.
- Useful for testing bad DIMMs and overclocking stability.
- Install: Download
- Use v4 for systems without UEFI support.
- Not the same as "Memtest86+". Memtest86+ is an old fork of Memtest86.
stress-ng (Linux)
- Among other usages, it can test a part of the memory (since the OS is running it obviously can't use everything).
- Useful for quickly finding severe memory errors without e.g. rebooting into MemTest.
Example usage:
# 1 stressor, 75% of memory, with verification, for 10 minutes
stress-ng --vm 1 --vm-bytes 75% --vm-method all --verify -t 10m -v
Storage
Fio (Linux)
- "Flexible I/O tester".
- For file-based disk benchmarking.
- Install (Debian):
apt install fio
- Usage:
- Add
--fsync=1
for synchronous IO.
- Add
--time_based --runtime=<seconds>
to repeat the test for the provided duration.
- Configuration arguments may be placed in a config file instead, specified as a positional argument to fio.
- Note that write performance may sharply degrade after a while when the hardware write cache(s) fill up, so make sure the tests are run for long enough.
- Examples: See below.
Examples usage:
# Sequential, asynchronous, 4kiB, random write
fio --name=random-write --ioengine=posixaio --rw=randwrite --bs=4k --size=4G --numjobs=1 --iodepth=1 --runtime=60 --time_based --end_fsync=1
# 16 parallel, asynchronous, 64kiB, random write
fio --name=random-write --ioengine=posixaio --rw=randwrite --bs=64k --size=256M --numjobs=16 --iodepth=16 --runtime=60 --time_based --end_fsync=1
# Sequential, asynchronous, 1MiB, random write
fio --name=random-write --ioengine=posixaio --rw=randwrite --bs=1m --size=16G --numjobs=1 --iodepth=1 --runtime=60 --time_based --end_fsync=1
smartmontools (Linux)
{% include footer.md %}