Why is my L2 cache not working in benchmarks?

Benchmark tools such as CrystalDiskMark, AS SSD Benchmark, ATTO Disk Benchmark, etc. will write a test file of a certain size (usually 1GB) to the disk before performing the read test, and then measure the read speed by reading the test file multiple times. The L1 cache space is set to "read-write sharing" by default, so when the tool writes the test file to disk, the file will be fully cached (assuming the cache space size exceeds the test file size). When the tool reads the test file for speed measurement, it directly reads the file from the cache, so the test result fully reflects the cache read speed.

Unlike the L1 cache, the L2 cache space is set to "100% read" by default, so when the tool writes the test file, the file will not be cached. When the tool reads the test file for measurement, it needs to read the file from disk. And since the L2 cache is filled with read-data asynchronously (by default, read-data is collected when the system is idle), and since the system is busy during the test, even if the tool reads the test file multiple times, the L2 cache still doesn't cache the file. Therefore, the L2 cache is not involved in the test and shows no effect in the test results.

If you want to see the L2 cache in effect in benchmarks, you can uncheck the "Individual Read/Write Cache Space" option in the Advanced L2 Cache Options dialog before testing. See How to configure cache space. In actual scenarios, if the L2 cache is only needed to speed up disk reading, it is recommended to set the cache space to "100% read". This enables read acceleration while reducing write wear on the L2 cache device.

The above are all for the read speed test in the benchmark. For the write speed test, whether it is the L1 cache or the L2 cache, Defer-Write needs to be turned on (which also means that the write cache space must be set) to improve the write performance and show the effect in the benchmark test.
Tags