Performance test method and device for hmb feature of cover solid state disk

CN116701232BActive Publication Date: 2026-10-09SUZHOU UNIONMEMORY INFORMATION SYST LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310926103.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-07-26
Publication Date
2026-10-09
Estimated Expiration
2043-07-26

AI Technical Summary

Technical Problem

这些测试软件不能直接检测和控制HMB的状态,且对Block size,队列深度和线程的遍历范围不够灵活,每次只能测试一小部分的配置组合

Benefits of technology

[0043] The aforementioned performance testing methods, apparatus, computer equipment, and storage media covering the HMB characteristics of solid-state drives enable testing and verification of initial performance, disk filling performance, and TLC performance under different block sizes, queue depths, threads, LBA ranges, and random mixed read/write operations, both with and without HMB enabled. The performance results of various configuration combinations are presented graphically, providing an objective performance evaluation and effectively improving the coverage and efficiency of HMB performance testing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116701232B_ABST
    Figure CN116701232B_ABST
Patent Text Reader

Abstract

The application relates to a performance test method, device, computer equipment and storage medium for covering the HMB feature of a solid state disk, wherein the method comprises the following steps: judging whether a to-be-tested solid state disk supports HMB; if the solid state disk does not support HMB, setting an HMB support variable to 0; if the solid state disk supports HMB, setting the HMB support variable to 1 and checking the HMB state of the to-be-tested solid state disk; judging whether the HMB state of the to-be-tested solid state disk is open or closed; if the HMB state is open, performing performance tests on initial performance and disk filling performance under different block sizes, different queue depths, different threads, different LBA ranges, different threads and random mixed reading and writing; after the tests are completed, judging whether the HMB support variable is 1; if the HMB support variable is 1, closing the HMB and re-executing the performance test; and outputting a graphical test report after the test is completed. The application effectively improves the coverage and test efficiency of HMB performance tests.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of solid-state drive (SSD) testing technology, and in particular to a performance testing method, apparatus, computer equipment, and storage medium covering the HMB (Hardware Module) characteristics of SSDs. Background Technology

[0002] In the consumer storage industry, solid-state drives (SSDs) are demanding high performance while prioritizing low cost. To minimize performance impact while reducing costs, HMB (host memory buffer) technology has been gradually introduced into entry-level and mainstream consumer SSDs. This technology allows the SSD controller to utilize a small portion of the host's main memory as a write cache for loading critical data such as mapping tables, thereby eliminating the need for DRAM chips on the SSD and reducing costs while minimizing performance impact. The introduction of HMB technology has brought new challenges to performance testing of consumer SSDs. For example, how to test the performance of SSDs supporting and not supporting HMB using the same testing environment, or for SSDs supporting HMB, how to test sequential and random read / write performance with HMB enabled and disabled under different configurations, identify bottlenecks, and assess future scalability.

[0003] Currently, the industry practice is to use performance testing software such as Crystal Disk Mark and ATTO to evaluate the sequential and random read / write performance of HMB when it is opened. These evaluations mainly cover specific block sizes, queue depths, and threads for specific file sizes. However, these testing software programs cannot directly detect and control the state of the HMB, and their traversal range for block size, queue depth, and threads is not flexible enough, allowing only a small portion of configuration combinations to be tested at a time. Summary of the Invention

[0004] Therefore, it is necessary to provide a performance testing method, apparatus, computer equipment, and storage medium that covers the HMB characteristics of solid-state drives to address the aforementioned technical problems.

[0005] A performance testing method covering the HMB (Hardware Memory) feature of solid-state drives, the method comprising:

[0006] Determine if the solid-state drive under test supports HMB;

[0007] If HMB is not supported, set the HMB support variable to 0; if HMB is supported, set the HMB support variable to 1 and check the HMB status of the current SSD under test.

[0008] Determine whether the HMB (Hardware Module) of the SSD under test is currently on or off;

[0009] If it is in the open state, perform initial performance and disk filling performance tests for different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read and write.

[0010] After the test is completed, check if the HMB support variable is 1;

[0011] If the HMB support variable is 1, then disable HMB and re-execute the initial performance and disk filling performance tests for different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read / write. After the test is completed, output a graphical test report.

[0012] In one embodiment, after the step of determining whether the current HMB status of the solid-state drive under test is on or off, the following method is further included:

[0013] If the HMB is in a closed state, a reset command must first be sent via the NVME tool. If the number of resets is greater than or equal to 1 and the current state of HMB is still closed, the HMB state is determined to have failed to be enabled, and all subsequent tests will end.

[0014] In one embodiment, after the step of determining whether the HMB support variable is 1 after the test is completed, the method further includes:

[0015] If the HMB-supported variable is 0, a graphical test report will be output directly.

[0016] In one embodiment, the steps of performing initial performance and disk filling performance tests for different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read / write operations include:

[0017] Test the queue depth that the SSD under test can support starting with an offset of 10% within the 1GB LBA range;

[0018] The test was conducted on the sequential and random read / write performance of the SSD under test starting from offset = 10% and at different block sizes within a 1GB LBA range.

[0019] The test was conducted on the sequential and random read / write performance of the SSD under test starting from offset = 10% and within a 1GB LBA range under different threads.

[0020] The sequential and random read / write performance of the SSD under test was tested starting from offset = 10% within different LBA ranges;

[0021] The random mixed read and write performance of the solid-state drive under test was tested from offset=10% within a 1GB LBA range, with 70% read and 30% write.

[0022] Test the sequential and random read / write performance of the TLC or QLC solid-state drive under test.

[0023] A performance testing device covering the HMB (High-bandwidth MB) characteristics of solid-state drives, the device comprising:

[0024] The first judgment module is used to determine whether the solid-state drive under test supports HMB.

[0025] The variable setting module is used to set the HMB support variable to 0 if HMB is not supported, and to set the HMB support variable to 1 if HMB is supported, and to check the HMB status of the current solid-state drive under test.

[0026] The second judgment module is used to determine whether the HMB status of the solid-state drive under test is on or off.

[0027] The performance testing module is used to perform initial performance and disk filling performance tests under different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read / write operations, if it is in the open state.

[0028] The third judgment module is used to determine whether the HMB support variable is 1 after the test is completed;

[0029] The result output module is used to disable HMB and re-execute the initial performance and disk filling performance tests for different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read / write if the HMB support variable is 1. After the test is completed, a graphical test report is output.

[0030] In one embodiment, the device further includes a reset command module, the reset module command being used to:

[0031] If the HMB is in a closed state, a reset command must first be sent via the NVME tool. If the number of resets is greater than or equal to 1 and the current state of HMB is still closed, the HMB state is determined to have failed to be enabled, and all subsequent tests will end.

[0032] In one embodiment, the result output module is further configured to:

[0033] If the HMB-supported variable is 0, a graphical test report will be output directly.

[0034] In one embodiment, the performance testing module is used for:

[0035] Test the queue depth that the SSD under test can support starting with an offset of 10% within the 1GB LBA range;

[0036] The test was conducted on the sequential and random read / write performance of the SSD under test starting from offset = 10% and at different block sizes within a 1GB LBA range.

[0037] The test was conducted on the sequential and random read / write performance of the SSD under test starting from offset = 10% and within a 1GB LBA range under different threads.

[0038] The sequential and random read / write performance of the SSD under test was tested starting from offset = 10% within different LBA ranges;

[0039] The random mixed read and write performance of the solid-state drive under test was tested from offset=10% within a 1GB LBA range, with 70% read and 30% write.

[0040] Test the sequential and random read / write performance of the TLC or QLC solid-state drive under test.

[0041] A computer device includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the steps of any of the methods described above.

[0042] A computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of any of the above methods.

[0043] The aforementioned performance testing methods, apparatus, computer equipment, and storage media covering the HMB characteristics of solid-state drives enable testing and verification of initial performance, disk filling performance, and TLC performance under different block sizes, queue depths, threads, LBA ranges, and random mixed read / write operations, both with and without HMB enabled. The performance results of various configuration combinations are presented graphically, providing an objective performance evaluation and effectively improving the coverage and efficiency of HMB performance testing. Attached Figure Description

[0044] Figure 1 This is a flowchart illustrating a performance testing method covering the HMB feature of a solid-state drive in one embodiment;

[0045] Figure 2 This is a schematic diagram illustrating the output of solid-state drive HMB feature test results in one embodiment;

[0046] Figure 3 This is a flowchart illustrating a performance testing method covering the HMB feature of a solid-state drive in another embodiment;

[0047] Figure 4 This is a flowchart illustrating a performance testing method covering the HMB feature of a solid-state drive in another embodiment;

[0048] Figure 5 This is a structural block diagram of a performance testing apparatus covering the HMB feature of a solid-state drive in one embodiment.

[0049] Figure 6 This is a structural block diagram of a performance testing apparatus covering the HMB features of a solid-state drive in another embodiment;

[0050] Figure 7 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0051] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0052] Currently, the industry practice is to use performance testing software such as Crystal Disk Mark and ATTO to evaluate the sequential and random read / write performance of HMB when it is opened. These evaluations mainly cover specific block sizes, queue depths, and threads for specific file sizes. However, these testing software programs cannot directly detect and control the state of the HMB, and their traversal range for block size, queue depth, and threads is not flexible enough, only allowing testing of a small portion of configuration combinations at a time.

[0053] Based on this, this solution provides a performance testing method that covers the HMB characteristics of solid-state drives (SSDs). It aims to cover the initial performance and disk filling performance under different block sizes, queue depths, threads, LBA ranges, and random mixed read / write operations, as well as TLC performance testing and verification.

[0054] In one embodiment, such as Figure 1 As shown, a performance testing method covering the HMB feature of solid-state drives is provided, the method including:

[0055] Step 102: Determine whether the solid-state drive under test supports HMB;

[0056] Step 104: If HMB is not supported, set the HMB support variable to 0; if HMB is supported, set the HMB support variable to 1 and check the HMB status of the current SSD under test.

[0057] Step 106: Determine whether the HMB status of the SSD under test is currently on or off;

[0058] Step 108: If the state is open, perform initial performance and disk filling performance tests for different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read / write.

[0059] Step 110: After the test is completed, determine whether the HMB support variable is 1;

[0060] Step 112: If the HMB support variable is 1, then close the HMB and re-execute the initial performance and disk filling performance tests for different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read / write. After the test is completed, output a graphical test report.

[0061] In this embodiment, a performance testing method covering the HMB feature of solid-state drives is provided, and the specific testing environment includes:

[0062] Hardware Requirements: The computer under test is an ASUS Z790. The method described in this patent is applicable to desktops, laptops, and other computers supporting the M.2 PCIe interface, but the specific model is not mandatory. In this embodiment, the ASUS Z790 is preferred as the computer under test. The solid-state drive under test is a consumer-grade solid-state drive. The solid-state drive under test is located as a slave drive.

[0063] Software requirements: Operating system is Linux Ubuntu; tools and software include FIO, NVME, and Excel; test scripts are self-written shell scripts.

[0064] In this testing method, open-source tools FIO and NVME can be used to write shell scripts on a Linux system to automatically determine and control HMB support, and automatically iterate through various combinations of performance parameters such as block size, queue depth, and threads. After the test, the test data is automatically imported into Excel for processing, and the performance results of various configuration combinations are finally presented graphically. Specifically, the graphical test results are as follows: Figure 2 As shown.

[0065] In this embodiment, the initial performance, disk filling performance, and TLC performance of HMB with different block sizes, queue depths, threads, LBA ranges, and random mixed read / write were tested and verified under both HMB enabled and disabled states. Finally, the performance results of various combinations of configurations were presented in a graphical manner, which can provide an objective performance evaluation and effectively improve the coverage and efficiency of HMB performance testing.

[0066] In one embodiment, such as Figure 3 As shown, a performance testing method covering the HMB characteristics of solid-state drives is provided. The steps of this method for initial performance and disk-filling performance testing under different block sizes, queue depths, threads, LBA ranges, and random mixed read / write operations include:

[0067] Step 302: Test the queue depth that the SSD under test can support starting from offset = 10% within the 1GB LBA range;

[0068] Step 304: Test the sequential and random read / write performance of the SSD under test starting from offset = 10% and under different BlockSizes within the 1GB LBA range;

[0069] Step 306: Test the sequential and random read / write performance of the SSD under test starting from offset = 10% and within a 1GB LBA range under different threads;

[0070] Step 308: Test the sequential and random read / write performance of the SSD under test within different LBA ranges starting from offset = 10%;

[0071] Step 310: Test the random mixed read and write performance of the solid-state drive under test from offset = 10% and 1GB LBA range, with 70% read and 30% write.

[0072] Step 312: Test the sequential and random read / write performance of the TLC or QLC SSD under test.

[0073] Specifically, the test examines the queue depth supported by the tested SSD within a 1GB LBA (Logical Block Address) range, starting from 10% offset. The optimal performance queue depth and the maximum configurable queue depth are determined through the following process:

[0074] a) After performing a secure erase on the solid-state drive under test, leave it idle for 5 minutes to allow it to return to its initial state.

[0075] b) Use FIO to test the sequential read and write performance of a 1024k block large packet (test write first, then read). The queue depths are 1, 2, 4, 8, 16, and 32, and the number of threads is 1. Each model is tested for 10 seconds, and each model is idle for 5 seconds before testing. Observe the impact of queue depth on sequential performance and record the bandwidth and IOPs.

[0076] c) After filling the plate to 80%, idle for 5 minutes, then perform the steps in b) above.

[0077] d) After performing a secure erase on the solid-state drive under test, leave it idle for 5 minutes to allow it to return to its initial state.

[0078] e) Use FIO to test the random read and write performance of 4K block small packets (test write first, then read). The queue depths are 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, and 1024, and the number of threads is 1. Each model is tested for 10 seconds, and each model is idle for 5 seconds before testing. Observe the impact of queue depth on sequential performance and record bandwidth, IOPs, and latency.

[0079] f) After filling the plate to 80%, idle for 5 minutes, then perform the steps in e) above.

[0080] The test of the tested SSD started from offset = 10% and tested its sequential and random read / write performance at different block sizes within a 1GB LBA range. The process is as follows:

[0081] a) After performing a secure erase on the solid-state drive under test, leave it idle for 5 minutes to allow it to return to its initial state.

[0082] b) Use FIO to perform sequence write tests with block sizes of 512B, 1K, 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K, and 1024K. The queue depth is 8, the number of threads is 1, and the alignment is 4K. Each model is tested for 10 seconds, with a 5-second idle period before each model is tested. Bandwidth, IOPs, and latency are recorded.

[0083] c) Use FIO to perform sequence read tests with block sizes of 512B, 1K, 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K, and 1024K. The queue depth is 8, the number of threads is 1, and 4K alignment is used. Each model is tested for 10 seconds, with a 5-second idle period before each model test. Bandwidth, IOPs, and latency are recorded.

[0084] d) Use FIO to perform sequence write tests with the following values: 512B, 1K, 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K, 1024K, 2048K, 4096k, 8192k, and 16384k, with a queue depth of 1, 1 thread, and 4K alignment.

[0085] e) Perform random write tests using FIO with values ​​of 512B, 1K, 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K, and 1024K, respectively, with a queue depth of 1, a thread count of 1, and 4K alignment.

[0086] f) Perform Random Write tests using FIO with values ​​of 512B, 1K, 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K, and 1024K, respectively, with a queue depth of 1, a thread count of 1, and 4K alignment.

[0087] g) Perform random write tests using FIO with the following values: 512B, 1K, 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K, and 1024K. The queue depth is 32, the number of threads is 8, and 4K alignment is used. Each model is tested for 10 seconds, with a 5-second idle period before each model test. Bandwidth, IOPs, and latency are recorded.

[0088] h) Random Read tests were performed using FIO with values ​​of 512B, 1K, 4K, 8K, 16K, 32K, 64K, 128K, 256K, 512K, and 1024K. The queue depth was 32, the number of threads was 8, and 4K alignment was used. Each model was tested for 10 seconds, with a 5-second idle period before each model test. Bandwidth, IOPs, and latency were recorded.

[0089] i) After filling the plate to 80%, idle for 5 minutes, then perform the steps (bh) above.

[0090] The test of the tested SSD started from offset = 10% and included sequential and random read / write performance under different threads within a 1GB LBA range. The process is as follows:

[0091] a) After performing a secure erase on the solid-state drive under test, leave it idle for 5 minutes to allow it to return to its initial state.

[0092] b) Use FIO with file size = 1G, offset = 10%, BS = 1024K, queue depth = 8, thread count = 1. Write sequentially once and then idle for 5 minutes. No test data needs to be collected.

[0093] c) Use FIO to test the sequential read and write performance of 128K blocks (test write first, then read), with a queue depth of 1 and threads of 1, 2, 4, 8, 16, and 32 respectively. Each model is tested for 10 seconds, and each model is idle for 5 seconds before testing. Record the bandwidth, IOPs, and latency.

[0094] d) Use FIO to test the sequential read and write performance of 256K blocks. The queue depth is 1, and the number of threads are 1, 2, 4, 8, 16 and 32 respectively. Each model is tested for 10 seconds, and each model is idle for 5 seconds before testing. Record the bandwidth, IOPs and latency.

[0095] e) Use FIO to test the sequential read and write performance of a 1024k block, with a queue depth of 1 and threads of 1, 2, 4, 8, 16, and 32 respectively. Each model is tested for 10 seconds, and each model is idle for 5 seconds before testing. Record the bandwidth, IOPs, and latency.

[0096] f) After filling the plate to 80%, idle for 5 minutes, then perform the steps (be) above.

[0097] g) After performing a secure erase on the solid-state drive under test, leave it idle for 5 minutes to allow it to return to its initial state.

[0098] h) Use FIO with file size = 1G, offset = 10%, BS = 1024K, queue depth = 8, thread count = 1. Write sequentially once and then idle for 5 minutes. No test data needs to be collected.

[0099] i) Use FIO to test the random read and write performance of 4k blocks. The queue depth is 1, and the number of threads are 1, 2, 4, 8, 16, 32, 64 and 128 respectively. Each model is tested for 10 seconds, and each model is idle for 5 seconds before testing. Record the bandwidth, IOPs and latency.

[0100] j) Use FIO to test the random read and write performance of 4k blocks. The queue depth is 8, and the number of threads are 1, 2, 4, 8, 16, and 32 respectively. Each model is tested for 10 seconds, and each model is idle for 5 seconds before testing. The bandwidth, IOPs, and latency are recorded.

[0101] k) Use FIO to test the random read and write performance of 4k blocks. The queue depth is 32, and the number of threads are 1, 2, 4, 8, 16 and 32 respectively. Each model is tested for 10 seconds, and each model is idle for 5 seconds before testing. The bandwidth, IOPs and latency are recorded.

[0102] l) After filling the plate to 80%, idle for 5 minutes, then perform the above steps (gk).

[0103] The sequential and random read / write performance of the tested SSD was tested starting from offset = 10% within different LBA ranges. The process is as follows:

[0104] a) After performing a secure erase on the solid-state drive under test, leave it idle for 5 minutes to allow it to return to its initial state.

[0105] b) Use FIO to perform sequence write / read tests (write first, then read), with LBA ranges of 256M, 512M, 1G, 4G, 8G, 16G, and 32G; block size 1024k, queue depth 8, number of threads 1, 4K alignment. Each model is tested for 10 seconds, with a 5-second idle period between each test. Before and after each test, different models are idle for 5 minutes, and bandwidth, IOPs, and latency are recorded.

[0106] c) After filling the plate to 80%, idle for 5 minutes, then perform the steps in (b) above.

[0107] d) After performing a secure erase on the solid-state drive under test, leave it idle for 5 minutes to allow it to return to its initial state.

[0108] e) Use FIO to perform Random Write / Read tests (write first, then read), with LBA ranges of 512M, 1G, 4G, 8G, 16G, and 32G; block size 4K, queue depth 1, number of threads 1, 4K alignment, 10 seconds for each model test, and 5 seconds of idle time between each test; each model was idle for 5 minutes before and after the test, and bandwidth, IOPs, and latency were recorded.

[0109] f) Use FIO to perform Random Write / Read tests (write first, then read), with LBA ranges of 512M, 1G, 4G, 8G, 16G, and 32G; block size 4K, queue depth 32, number of threads 1, 4K alignment, 10 seconds for each model test, with a 5-second idle time between each test; each model was idle for 5 minutes before and after the test, and bandwidth, IOPs, and latency were recorded.

[0110] g) After filling the plate to 80%, idle for 5 minutes, then perform the steps (ef) above.

[0111] The random mixed read and write performance of the tested SSD was tested from offset = 10% within a 1GB LBA range, with 70% read and 30% write. The process is as follows:

[0112] a) After performing a secure erase on the solid-state drive under test, leave it idle for 5 minutes to allow it to return to its initial state.

[0113] b) Use FIO with file size = 1G, offset = 10%, BS = 1024K, queue depth = 8, thread count = 1. Write sequentially once and then idle for 5 minutes. No test data needs to be collected.

[0114] c) Change the R / W ratio to 70:30. Block size is 4k, queue depth is 32, number of threads is 1, 4K alignment, test for 10 seconds, idle for 5 seconds before the test, and record bandwidth, IOPs, and latency.

[0115] d) Change the R / W ratio to 70:30. Block size is 1024k, queue depth is 1, number of threads is 1, 4K alignment, test for 10 seconds, idle for 5 seconds before the test, and record bandwidth, IOPs, and latency.

[0116] e) After filling the plate to 80%, idle for 5 minutes, then perform the steps (bd) above.

[0117] The process for testing the sequential and random read / write performance of the TLC or QLC drive under test is as follows:

[0118] a) After performing a secure erase on the solid-state drive under test, leave it idle for 5 minutes to allow it to return to its initial state.

[0119] b) Use FIO for full-disk sequence write, block size 1024k, queue depth 8, number of threads 1, performance not recorded.

[0120] c) Use FIO to perform a full-disk sequence write test with a block size of 1024k, a queue depth of 8, a thread count of 1, and 4K alignment. Take the last 21 records minus 1 (discard the last record) and use the average value as the bandwidth, IOPs, and latency of the second TLC.

[0121] d) A full-disk sequence read test was performed using FIO with a block size of 1024k, a queue depth of 8, a thread count of 1, and 4K alignment. It was verified that the bandwidth, IOPs, and latency of the final values ​​in the FIO log can be used directly.

[0122] e) Use FIO to perform a 1GB range Random Write / Read test with a block size of 4K, a queue depth of 32, a thread count of 8, and 4K alignment. The test lasts for 30 seconds. The first 5-25 records are taken and the average value is used as the bandwidth, IOPs, and latency of TLC.

[0123] f) Use FIO to perform a 1GB range of Random Write / Read test, with block sizes of 32K and 64K, queue depth of 64, 4K alignment, and 1 thread. The test lasts for 30 seconds. The first 5-25 records are taken and the average value is used as the bandwidth, IOPs, and latency of TLC.

[0124] In this embodiment, specific tests and verifications were performed on the disk under test for initial performance, disk filling performance, and TLC performance under different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read / write operations.

[0125] In one embodiment, after determining whether the HMB status of the current solid-state drive under test is on or off, the method further includes: if it is off, a reset command must be sent through the NVME tool first; if the number of resets is greater than or equal to 1 and the current HMB status is still off, the HMB status is determined to have failed to be enabled, and all subsequent tests are terminated.

[0126] In one embodiment, after determining whether the HMB support variable is 1 after the test is completed, the method further includes: if the HMB support variable is 0, then directly output a graphical test report.

[0127] Specifically, refer to Figure 4 The performance testing method for covering the HMB feature of solid-state drives is shown below, and the testing procedure is as follows:

[0128] First, use the NVMe tool to send the `get-feature` command to read the contents of configuration 0XC. If the returned content contains "not support", it means that the SSD does not support HMB, and the variable for HMB support needs to be set to 0 for subsequent testing. Then, perform the performance testing steps as described in the above embodiment.

[0129] When the test results support HMB, the variable for HMB support needs to be set to 1 for subsequent testing; then check whether the current SSD's HMB is enabled or disabled.

[0130] When the current state of HMB is off, an NVME reset command must be sent through the NVME tool first. If the number of resets is greater than or equal to 1 and the current state of HMB is still off, it is determined that the HMB has failed to be enabled, and all subsequent tests end.

[0131] In this embodiment, a Shell script can quickly and efficiently detect anomalies and bottlenecks in the performance of the solid-state drive HMB under different block sizes, queue depths, threads, and LBA ranges, and provide an objective performance evaluation.

[0132] It should be understood that, although Figures 1-4 The steps in the flowchart are shown sequentially as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order in which these steps are executed, and they can be performed in other orders. Figures 1-4 At least some of the steps in the process may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least some of the sub-steps or stages of other steps.

[0133] In one embodiment, such as Figure 5 As shown, a performance testing device 500 covering the HMB characteristics of solid-state drives is provided. The device includes:

[0134] First judgment module 501, the first judgment module is used to determine whether the solid-state drive under test supports HMB;

[0135] The variable setting module 502 is used to set the HMB support variable to 0 if HMB is not supported, and to set the HMB support variable to 1 if HMB is supported and to check the current HMB status of the solid-state drive under test.

[0136] The second judgment module 503 is used to determine whether the current HMB status of the solid-state drive under test is on or off.

[0137] The performance testing module 504 is used to perform initial performance and disk filling performance tests under different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read / write operations if it is in the open state.

[0138] The third judgment module 505 is used to determine whether the HMB support variable is 1 after the test is completed;

[0139] The result output module 506 is used to close the HMB and re-execute the initial performance and disk filling performance tests for different block sizes, different queue depths, different threads, different LBA ranges, different threads, and random mixed read and write if the HMB support variable is 1. After the test is completed, a graphical test report is output.

[0140] In one embodiment, such as Figure 6As shown, a performance testing device 500 covering the HMB characteristics of solid-state drives is provided. This device also includes a reset command module 507, the reset module command being used for:

[0141] If the HMB is in a closed state, a reset command must first be sent via the NVME tool. If the number of resets is greater than or equal to 1 and the current state of HMB is still closed, the HMB state is determined to have failed to be enabled, and all subsequent tests will end.

[0142] In one embodiment, the result output module 506 is further configured to:

[0143] If the HMB-supported variable is 0, a graphical test report will be output directly.

[0144] In one embodiment, the performance testing module 504 is used for:

[0145] Test the queue depth that the SSD under test can support starting with an offset of 10% within the 1GB LBA range;

[0146] The test was conducted on the sequential and random read / write performance of the SSD under test starting from offset = 10% and at different block sizes within a 1GB LBA range.

[0147] The test was conducted on the sequential and random read / write performance of the SSD under test starting from offset = 10% and within a 1GB LBA range under different threads.

[0148] The sequential and random read / write performance of the SSD under test was tested starting from offset = 10% within different LBA ranges;

[0149] The random mixed read and write performance of the solid-state drive under test was tested from offset=10% within a 1GB LBA range, with 70% read and 30% write.

[0150] Test the sequential and random read / write performance of the TLC or QLC solid-state drive under test.

[0151] For specific limitations on the performance testing equipment covering the HMB feature of solid-state drives, please refer to the limitations on the performance testing methods covering the HMB feature of solid-state drives mentioned above, which will not be repeated here.

[0152] In one embodiment, a computer device is provided, the internal structure of which can be shown as follows: Figure 7As shown, the computer device includes a processor, memory, and a network interface connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The network interface is used for communication with external terminals via a network connection. When the computer program is executed by the processor, it implements a performance testing method covering the characteristics of a solid-state drive (HMB).

[0153] Those skilled in the art will understand that Figure 7 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0154] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the steps in the various method embodiments described above.

[0155] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the steps in the various method embodiments described above.

[0156] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, storage, databases, or other media used in the embodiments provided in this application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), dual data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), RAMbus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and RAMbus dynamic RAM (RDRAM), etc.

[0157] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0158] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the invention patent. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this patent application should be determined by the appended claims.

Claims

1. A performance testing method covering the HMB (Hardware Memory) feature of a solid-state drive, the method comprising: Determine if the solid-state drive under test supports HMB; If HMB is not supported, set the HMB support variable to 0; if HMB is supported, set the HMB support variable to 1 and check the HMB status of the current SSD under test. Determine whether the HMB (Hardware Module) of the SSD under test is currently on or off; If it is in the open state, perform initial performance and disk filling performance tests under different block sizes, different queue depths, different threads, different LBA ranges, and random mixed read and write. After the test is completed, check if the HMB support variable is 1; If the HMB support variable is 1, then disable HMB and re-execute the initial performance and disk filling performance tests for different block sizes, different queue depths, different threads, different LBA ranges, and random mixed read / write. After the test is completed, output a graphical test report. The steps for conducting initial performance and disk filling performance tests under different block sizes, queue depths, threads, LBA ranges, and random mixed read / write operations include: Test the queue depth that the SSD under test can support starting with an offset of 10% within the 1GB LBA range; The sequential and random read / write performance of the SSD under test was tested starting from offset=10% and under different block sizes within a 1GB LBA range. The test was conducted on the sequential and random read / write performance of the SSD under test starting from offset=10% and within a 1GB LBA range under different threads. The sequential and random read / write performance of the SSD under test was tested starting from offset=10% within different LBA ranges. The random mixed read and write performance of the SSD under test was tested from offset=10% and within the 1GB LBA range, with 70% read and 30% write. Test the sequential and random read / write performance of the TLC or QLC solid-state drive under test.

2. The performance testing method covering the HMB characteristics of a solid-state drive according to claim 1, characterized in that, Following the step of determining whether the HMB status of the current solid-state drive under test is on or off, the following is also included: If the HMB is in a closed state, a reset command must first be sent via the NVME tool. If the number of resets is greater than or equal to 1 and the current state of HMB is still closed, the HMB state is determined to have failed to be enabled, and all subsequent tests will end.

3. The performance testing method covering the HMB characteristics of a solid-state drive according to claim 2, characterized in that, After the step of determining whether the HMB support variable is 1 after the test is completed, the following steps are also included: If the HMB-supported variable is 0, a graphical test report will be output directly.

4. A performance testing device covering the HMB characteristics of solid-state drives, characterized in that, The device includes: The first judgment module is used to determine whether the solid-state drive under test supports HMB. The variable setting module is used to set the HMB support variable to 0 if HMB is not supported, and to set the HMB support variable to 1 if HMB is supported, and to check the HMB status of the current solid-state drive under test. The second judgment module is used to determine whether the HMB status of the solid-state drive under test is on or off. The performance testing module, when enabled, performs initial performance and disk filling performance tests under different block sizes, queue depths, thread counts, LBA ranges, and random mixed read / write operations; including: Test the queue depth that the SSD under test can support starting with an offset of 10% within the 1GB LBA range; The sequential and random read / write performance of the SSD under test was tested starting from offset=10% and under different block sizes within a 1GB LBA range. The test was conducted on the sequential and random read / write performance of the SSD under test starting from offset=10% and within a 1GB LBA range under different threads. The sequential and random read / write performance of the SSD under test was tested starting from offset=10% within different LBA ranges. The random mixed read and write performance of the SSD under test was tested from offset=10% and within the 1GB LBA range, with 70% read and 30% write. Test the sequential and random read / write performance of the TLC or QLC solid-state drive under test; The third judgment module is used to determine whether the HMB support variable is 1 after the test is completed; The result output module is used to disable HMB and re-execute the initial performance and disk filling performance tests for different block sizes, different queue depths, different threads, different LBA ranges, and random mixed read / write if the HMB support variable is 1. After the test is completed, a graphical test report is output.

5. The performance testing device covering the HMB characteristics of solid-state drives according to claim 4, characterized in that, The device further includes a reset command module, the reset command module being used for: If the HMB is in a closed state, a reset command must first be sent via the NVME tool. If the number of resets is greater than or equal to 1 and the current state of HMB is still closed, the HMB state is determined to have failed to be enabled, and all subsequent tests will end.

6. The performance testing apparatus covering the HMB characteristics of solid-state drives according to claim 5, characterized in that, The result output module is also used for: If the HMB-supported variable is 0, a graphical test report will be output directly.

7. A computer device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 3.

8. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 3.

Citation Information

Patent Citations

  • Total bandwidth test method and device based on solid state disk and computer device

    CN110347540A

  • HMB switch implementation method and device based on Linux system and computer equipment

    CN114913912A