当前位置: 首页 > news >正文

iozone的下载编译测试

下载和编译

点击查看代码
#!/bin/bash
#set -euo pipefail  # 严格模式:遇到错误立即退出、未定义变量报错、管道失败触发退出
if ! command -v wget >/dev/null 2>&1; thenecho "安装wget..."sudo apt update && sudo apt install -y wget
fi
if ! command -v make >/dev/null 2>&1; thenecho "安装make..."sudo apt update && sudo apt install -y make
fi
# ===================== 配置项 =====================DOWNLOAD_URL="http://www.iozone.org/src/current/"    # 目标文件URL
IOZONE_NAME="iozone3_508.tar"                        # iozone文件全名
TAR_IOZONE_NAME="iozone3_508"                        # 解压后iozone文件夹全名
DOWNLOAD_ADDRESS="${DOWNLOAD_URL}${IOZONE_NAME}"     # 最终下载地址
SAVE_PATH="./downloads"                              # 保存目录
RETRY_TIMES=5                                        # 重试次数
TIMEOUT=30                                           # 超时时间(秒)
LOG_FILE="./download.log"                            # 日志文件路径
MAKE_LOG="./make_log"                                # make日志                                               
downloads_iozone(){echo "开始下载:${DOWNLOAD_ADDRESS} -> ${SAVE_PATH}/${IOZONE_NAME}"# 2.2.1 执行wget下载(带核心保障参数)# -c 断点续传# --timeout 重试次数wget -c \--tries="${RETRY_TIMES}" \--timeout="${TIMEOUT}" \"${DOWNLOAD_ADDRESS}" \>> "${LOG_FILE}" 2>&1# 2.2.2 检查wget执行状态(核心:$? 是上一条命令的退出码,0=成功)if [ $? -ne 0 ]; thenecho "ERROR: 下载失败!查看日志:${LOG_FILE}"exit 1fi# 2.2.3 最终验证:文件是否存在且非空if [ ! -f "${IOZONE_NAME}" ] || [ ! -s "${IOZONE_NAME}" ]; thenecho "ERROR: 下载的文件为空或不存在!"exit 1fiecho "SUCCESS: 文件已成功下载到 ${SAVE_PATH}/${IOZONE_NAME}"
}
tar_iozone(){ # 3.解压程序echo "开始解压:${IOZONE_NAME} -> ${SAVE_PATH}"tar -xvf "${IOZONE_NAME}" >> "${LOG_FILE}" 2>&1if [ $? -ne 0 ]; thenecho "ERROR: 解压失败!查看日志:${LOG_FILE}"exit 1fiecho "解压成功:${IOZONE_NAME} -> ${SAVE_PATH}"cd "${TAR_IOZONE_NAME}/src/current" || { echo "ERROR: 无法进入目录 ${TAR_IOZONE_NAME}/src/  current"; exit 1; }echo "正在编译iozone!!!"# 4.编译make linux >> "${MAKE_LOG}" 2>&1if [ $? -ne 0 ]; thenecho "ERROR: 编译失败!查看日志:${MAKE_LOG}"exit 1fiecho "编译完成!!!"
}
# 1. 创建保存目录(不存在则创建)
mkdir -p "${SAVE_PATH}" || { echo "ERROR: 无法创建目录 ${SAVE_PATH}"; exit 1; }# 2.判断是否已经下载
# 2.1进入保存目录
cd "${SAVE_PATH}" || { echo "ERROR: 无法进入目录 ${SAVE_PATH}"; exit 1; }
# 2.2检验文件不存在则下载
if [ ! -f "${IOZONE_NAME}" ]; then# ==================================================downloads_iozonetar_iozone
# 2.3检验文件存在但为空,删除后继续下载
elif [ ! -s "${IOZONE_NAME}" ]; thenecho "ERROR: 文件为空,正在删除!!!"rm "${IOZONE_NAME}" || { echo "ERROR: 无法删除文件 ${IOZONE_NAME}"; exit 1; }downloads_iozonetar_iozone
#文件存在
elseecho "INFO: 下载的文件已存在,如需重新下载,请将源文件删除!!!"tar_iozone  
fi

测试0.5倍内存 内存获取模块可以修改,仅供参考

点击查看代码
#!/bin/bash
#set -euo pipefail  # 严格模式:遇到错误立即退出、未定义变量报错、管道失败触发退出
mem_total=$(grep MemTotal /proc/meminfo | awk '{printf "%d", ($2/1024/1024)+1}')
test_mem=`expr ${mem_total} / 2`
int=1
results="./downloads/iozone3_508/src/current/report/"
# 按下Ctrl+C则退出
cleanup() {echo -e "\n📢 脚本退出(原因:$1)"exit 0
}
trap 'cleanup "Ctrl+C/SIGINT"' SIGINT #检测用户是否按下Ctrl+C
mkdir -p "${results}" || { echo "ERROR: 无法创建目录 ${results}"; exit 1; }
while(( $int<=3 ))
doecho "==========开始第${int}轮测试=========="./downloads/iozone3_508/src/current/iozone -i 0 -i 1 -i 2 -s ${test_mem}g -r 16m -f /iozone.tmpfile -Rb ${results}iotest_${test_mem}g_${int}.xls 2> "${results}test.log"if [ $? -ne 0 ]; thenecho "ERROR: 测试失败!查看日志:${results}test.log"exit 1fiecho "SUCCESS: 测试成功!查看结果:${results}iotest_${test_mem}g_${int}.xls"let "int++"
done
exit 0

测试1倍内存 内存获取模块可以修改,仅供参考

点击查看代码
#!/bin/bash
#set -euo pipefail  # 严格模式:遇到错误立即退出、未定义变量报错、管道失败触发退出
mem_total=$(grep MemTotal /proc/meminfo | awk '{printf "%d", ($2/1024/1024)+1}')
test_mem=`expr ${mem_total} / 1`
int=1
results="./downloads/iozone3_508/src/current/report/"
# 按下Ctrl+C则退出
cleanup() {echo -e "\n📢 脚本退出(原因:$1)"exit 0
}
trap 'cleanup "Ctrl+C/SIGINT"' SIGINT #检测用户是否按下Ctrl+C
mkdir -p "${results}" || { echo "ERROR: 无法创建目录 ${results}"; exit 1; }
while(( $int<=3 ))
doecho "==========开始第${int}轮测试=========="./downloads/iozone3_508/src/current/iozone -i 0 -i 1 -i 2 -s ${test_mem}g -r 16m -f /iozone.tmpfile -Rb ${results}iotest_${test_mem}g_${int}.xls 2> "${results}test.log"if [ $? -ne 0 ]; thenecho "ERROR: 测试失败!查看日志:${results}test.log"exit 1fiecho "SUCCESS: 测试成功!查看结果:${results}iotest_${test_mem}g_${int}.xls"let "int++"
done
exit 0

测试2倍内存 内存获取模块可以修改,仅供参考

点击查看代码
#!/bin/bash
#set -euo pipefail  # 严格模式:遇到错误立即退出、未定义变量报错、管道失败触发退出
mem_total=$(grep MemTotal /proc/meminfo | awk '{printf "%d", ($2/1024/1024)+1}')
test_mem=`expr ${mem_total} \* 2`
int=1
results="./downloads/iozone3_508/src/current/report/"
# 按下Ctrl+C则退出
cleanup() {echo -e "\n📢 脚本退出(原因:$1)"exit 0
}
trap 'cleanup "Ctrl+C/SIGINT"' SIGINT #检测用户是否按下Ctrl+C
mkdir -p "${results}" || { echo "ERROR: 无法创建目录 ${results}"; exit 1; }
while(( $int<=3 ))
doecho "==========开始第${int}轮测试=========="./downloads/iozone3_508/src/current/iozone -i 0 -i 1 -i 2 -s ${test_mem}g -r 16m -f /iozone.tmpfile -Rb ${results}iotest_${test_mem}g_${int}.xls 2> "${results}test.log"if [ $? -ne 0 ]; thenecho "ERROR: 测试失败!查看日志:${results}test.log"exit 1fiecho "SUCCESS: 测试成功!查看结果:${results}iotest_${test_mem}g_${int}.xls"let "int++"
done
exit 0``
http://www.jsqmd.com/news/68272/

相关文章:

  • 2025 年 12 月压铸机厂家权威推荐榜:力劲/伊之密/锌合金/铝合金/热室/冷室二手压铸机买卖回收,实力甄选与高效方案解析
  • 2025香港留学中介机构哪家好
  • 2025 年 12 月镁碳砖厂家权威推荐榜:钢包/转炉/电炉专用耐火材料,高耐用性与热震稳定性深度解析
  • 2025香港留学中介机构推荐
  • Excel处理控件Aspose.Cells教程:使用C#在Excel中创建环形图
  • 2025 年 12 月钢结构工程实力厂家权威推荐榜:钢构桥梁、工业厂房、大跨度场馆等全领域施工,精选技术领先与项目口碑标杆企业!
  • 2025香港留学机构排名哪家口碑
  • C# ModBusCRC16校验
  • 2025香港留学中介机构南京有哪些
  • 2025 年 12 月沈阳油漆厂家权威推荐榜:环保工业漆、高端汽车漆、建筑外墙漆,实力工厂源头直供精选
  • 2025 年 12 月沈阳油漆厂家权威推荐榜:环保工业漆、高端汽车漆、建筑外墙漆,实力工厂源头直供精选
  • 2025 年口碑好的陕西树脂瓦实力厂家排行榜
  • 2025年萧山服务好的GEO品牌找哪家,短视频矩阵/GEO优化服务/广告全案策划、制作、发布/GEO优化AI工具排名GEO实力厂家怎么选择
  • 2025年南京高性价比包装盒厂家选择指南:有信誉的包装盒供应
  • MCTP overview - ENGINEER
  • 2025年污水处理集装箱定制设计哪家强?五大技术实力企业推荐
  • 【2025 最新】LocalSend 下载安装教程(Windows 版)|跨平台极速文件互传工具
  • 2025 年质量好的陕西树脂瓦实力厂家专业口碑排行榜
  • 回溯搜索法与梯度下降/牛顿迭代结合的MATLAB优化实现
  • 2025年上海口碑好的全屋定制全案木作公司推荐:看哪家工艺水
  • 2025年上海高定全屋定制品牌推荐,5家靠谱全屋定制品牌公司
  • 2025年评价高的重型平板车用户好评厂家排行
  • 关于python-基础-字典的for遍历-得到key与value
  • 2025年苏州高性价比玻璃贴膜公司推荐:靠谱的玻璃贴膜品牌机
  • 2025靠谱中央空调TOP5权威推荐:中央空调哪家品牌售后好
  • 2025年锅炉冷凝器生产厂排名推荐:锅炉冷凝器生产厂选哪家好
  • 2025年AI搜索优化公司推荐:解锁智能流量新密码
  • 2025上海好的留学中介有哪些地方
  • 2025 年 12 月燕窝品牌权威推荐榜:溯源码燕窝/干燕窝/燕窝衍生品/浓鲜燕窝/燕窝年礼,甄选滋补臻品与匠心美食之选
  • 用 AI 修补论文逻辑漏洞:论证严谨 + 过渡自然的实战途径