Metadata Performance Test
1. Test Environment Configuration
This test is based on a Curvine storage environment deployed on Alibaba Cloud ECS servers. All configurations have been verified to ensure the stability and consistency of the test environment and the reproducibility of the test results. The detailed configuration is as follows:
1.1 Server Configuration
- Test instance type: Alibaba Cloud ECS i5.8xlarge, configured with 32-core CPU and 256 GB memory, meeting the computing requirements of high-concurrency tests.
- Network bandwidth: 80 Gbps high-speed network, completely avoiding network transmission bottlenecks and ensuring that the test results reflect the performance of the storage itself.
1.2 Deployment Architecture
- Service node: 1 ECS server, independently deploying the core services
curvine-masterandcurvine-worker, ensuring service runtime independence. - Client node: 1 ECS server, deploying the FUSE client to simulate storage access requests in real business scenarios.
2. NNBench Test Configuration and Operations
2.1 Test Tool and Parameters
The HDFS NNBenchWithoutMR tool is used for metadata performance testing. The test parameters are fixed as follows to ensure consistent test pressure:
- Number of test threads: 40
- Number of files processed by a single thread: 10000
- Test path:
cv://default/fs-meta - Bytes written: 0, only metadata operations are tested and no actual data is written.
2.2 Test Script Modification
Modify the tests/meta-bench.sh script as follows. The following content can be directly copied to replace the original script to ensure that the script can execute normally:
# Load Curvine environment configuration
. "$(cd "`dirname "$0"`"; pwd)"/../conf/curvine-env.sh
# Configure the classpath and specify Curvine Hadoop dependencies
export CLASSPATH=$(echo $CURVINE_HOME/lib/curvine-hadoop-*shade.jar | tr ' ' ':')
# Test operation type. A parameter must be passed in. Optional values are as follows:
# createWrite: create write test
# openRead: open read test
# rename: rename test
# delete: delete test
# rmdir: remove directory test
ACTION=$1
# Execute the NNBenchWithoutMR test
java -Xms256m -Xmx256m \
io.curvine.bench.NNBenchWithoutMR \
-operation $ACTION \
-bytesToWrite 0 \
-confDir ${CURVINE_HOME}/conf \
-threads 40 \
-baseDir cv://default/fs-meta \
-numFiles 100002.3 Configuration Parameter Modification
Modify curvine-site.xml and change the master connection count to 3 to achieve the best performance:
<property>
<name>fs.cv.master_conn_pool_size</name>
<value>3</value>
</property>2.4 Supplementary Notes
- Script execution method: execute
sh meta-bench.sh [test operation type]in thetestsdirectory. For example, executesh meta-bench.sh createWriteto run the create write test. - JVM parameter description:
-Xms256m -Xmx256mfixes the JVM heap memory to avoid memory fluctuation affecting the test results. - Dependency description: ensure that the
CURVINE_HOMEenvironment variable is configured correctly and that the correspondingcurvine-hadoop-*shade.jardependency exists in thelibdirectory.
3. NNBench Test Results
Based on the above environment and parameters, this test executed four metadata operations: createWrite (create write), openRead (open read), rename (rename), and delete (delete). Each operation was repeated 3 times, and the average value was taken as the final result to ensure the accuracy of the test data.
3.1 Test Result Summary Table
| Test Operation Type | Average Operations per Second (QPS) |
|---|---|
createWrite (create write) | 21192 |
openRead (open read) | 60181 |
rename (rename) | 27776 |
delete (delete) | 30511 |