67 lines
1.8 KiB
Bash
67 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
# 设置测试目录
|
|
TEST_DIR="/var/lib/docker/"
|
|
# 设置大文件和小文件的大小
|
|
LARGE_FILE_SIZE=3G # 1GB
|
|
SMALL_FILE_SIZE=10M # 1MB
|
|
LARGE_FILE="${TEST_DIR}/large_test_file"
|
|
SMALL_FILE="${TEST_DIR}/small_test_file"
|
|
|
|
# 创建测试目录,如果不存在
|
|
mkdir -p "$TEST_DIR"
|
|
|
|
# 测试大文件读写速度
|
|
echo "开始大文件读写测试..."
|
|
|
|
# 写入大文件并测量时间
|
|
start_time=$(date +%s.%N)
|
|
dd if=/dev/zero of="$LARGE_FILE" bs=1M count=1024 conv=fdatasync
|
|
end_time=$(date +%s.%N)
|
|
write_time=$(echo "$end_time - $start_time" | bc)
|
|
write_speed=$(echo "scale=2; 1024 / $write_time" | bc)
|
|
|
|
echo "大文件写入速度: ${write_speed} MB/s"
|
|
|
|
# 读取大文件并测量时间
|
|
start_time=$(date +%s.%N)
|
|
dd if="$LARGE_FILE" of=/dev/null bs=1M
|
|
end_time=$(date +%s.%N)
|
|
read_time=$(echo "$end_time - $start_time" | bc)
|
|
read_speed=$(echo "scale=2; 1024 / $read_time" | bc)
|
|
|
|
echo "大文件读取速度: ${read_speed} MB/s"
|
|
|
|
# 清理大文件
|
|
rm -f "$LARGE_FILE"
|
|
|
|
# 测试小文件读写速度
|
|
echo "开始小文件读写测试..."
|
|
|
|
# 写入小文件并测量时间
|
|
start_time=$(date +%s.%N)
|
|
for i in $(seq 1 3); do
|
|
dd if=/dev/zero of="${TEST_DIR}/small_test_file_$i" bs=1M count=1 conv=fdatasync
|
|
done
|
|
end_time=$(date +%s.%N)
|
|
write_time=$(echo "$end_time - $start_time" | bc)
|
|
write_speed=$(echo "scale=2; 1024 / $write_time" | bc)
|
|
|
|
echo "小文件写入速度: ${write_speed} MB/s"
|
|
|
|
# 读取小文件并测量时间
|
|
start_time=$(date +%s.%N)
|
|
for i in $(seq 1 3); do
|
|
dd if="${TEST_DIR}/small_test_file_$i" of=/dev/null bs=1M
|
|
done
|
|
end_time=$(date +%s.%N)
|
|
read_time=$(echo "$end_time - $start_time" | bc)
|
|
read_speed=$(echo "scale=2; 1024 / $read_time" | bc)
|
|
|
|
echo "小文件读取速度: ${read_speed} MB/s"
|
|
|
|
# 清理小文件
|
|
rm -f "${TEST_DIR}/small_test_file_"*
|
|
|
|
echo "测试完成!"
|