From 10117d6455929f8d82b89fe61dbb2f05ffed7750 Mon Sep 17 00:00:00 2001 From: hongrongxuan <389817374@qq.com> Date: Mon, 29 Aug 2022 21:57:42 +0800 Subject: [PATCH] init fix changelog version fix changelog version --- README.en.md | 36 ------------------ README.md | 88 ++++++++++++++++++++++++++++++++------------ astream-v1.0.tar.gz | Bin 0 -> 47932 bytes astream.spec | 37 +++++++++++++++++++ 4 files changed, 102 insertions(+), 59 deletions(-) delete mode 100644 README.en.md create mode 100644 astream-v1.0.tar.gz create mode 100644 astream.spec diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 799902b..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# astream - -#### Description -This package contains a tool to allocate multi-stream on NVMe SSD. - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md index 22f3d9e..900e410 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,79 @@ # astream +## 介绍 +astream是一款支持用户自定义配置目标文件的流信息,以使能NVMe SSD磁盘的多流(multi-stream)特性,从而延长磁盘寿命的便捷工具。 + +### 编译安装 +- 下载astream源码 + ``` + git clone https://gitee.com/openeuler/astream.git + ``` +- 编译 + ``` + cd src && make && make install + ``` +### 安装验证 +`astream`默认安装在`/usr/bin`下,安装后可直接使用`astream`命令,即表示软件安装成功。 + +## 使用说明 + +### 流分配规则文件介绍与示例 #### 介绍 -This package contains a tool to allocate multi-stream on NVMe SSD. -#### 软件架构 -软件架构说明 +流分配规则文件中,每一行表示定义的一条规则,每条规则示例如下: `^/path/xx/undo 1` +它表示为路径/path/xx/下的所有以`undo`为前缀的文件都分配流信息1。 -#### 安装教程 +#### 示例 -1. xxxx -2. xxxx -3. xxxx +如下示例一个具体的MySQL的流分配规则文件。 -#### 使用说明 +``` +^/data/mysql/data/ib_logfile 2 +^/data/mysql/data/ibdata1$ 3 +^/data/mysql/data/undo 4 +^/data/mysql/data/mysql-bin 5 +``` -1. xxxx -2. xxxx -3. xxxx +该规则文件定义了如下四条规则: -#### 参与贡献 +- 以`/data/mysql/data/ib_logfile`为前缀的文件绝对路径对应的文件配置流信息2 -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request +- 以`/data/mysql/data/ibdata1`为文件绝对路径对应的文件配置流信息3 +- 以`/data/mysql/data/undo`为前缀的文件绝对路径对应的文件配置流信息4 -#### 特技 +- 以`/data/mysql/data/mysql-bin`为前缀的文件绝对路径对应的文件配置流信息5 +### 命令行参数说明 -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +​ `astream [options]` + +| 参数 | 参数含义 | 示例说明 | +| ---- | ------------------------------------------------------------ | ------------------------------------------------ | +| -h | 显示astream使用说明 | `astream -h` | +| -l | 设置astream监控过程的显示日志级别, debug(1), info(2), warn(3), error(4) | `astream -i /path/xx/ -r /path/to/rule.txt -l 2` | +| -i | 指定当前需要监控的目录,多个目录可以以空格间隔输入 | 该参数配合-r使用, 示例见下 | +| -r | 指定监控目录对应的流分配规则文件,传入的个数取决于-i,且互相对应 | `astream -i /path/xx -r rule_file.txt` | +| stop | 正常停止astream守护进程 | astream stop | +### 启动astream守护进程 + +- 监控单目录 + + `astream -i /path/xx/ -r /path/to/stream_rule1.txt` + +- 监控多目录 + + 本工具支持同时监控多个目录,意味着每个监控目录都需要传入适配的流分配规则文件,支持同时监控两个目录的工具使用示例如下: + + `astream -i /path/xx/ /path/yy/ -r /path/to/stream_rule1.txt /path/to/stream_rule2.txt ` + + 命令中监控两个目录,目录1`/path/xx`,对应的流分配规则文件为`/path/to/stream_rule1.txt`,目录2`/path/yy`,对应的流分配规则文件为`/path/to/stream_rule1`。 +### NVMe SSD磁盘的写放大WA计算 +- 安装`nvme-cli`软件包 + `yum install nvme-cli` +- 执行`calculate_wa.sh`脚本计算WA + 由于磁盘WA的收益需要长稳测试才能相对明显,因此,我们利用定时器crontab,每隔1小时执行计算当前磁盘的WA,具体操作如下: + + 假设脚本位于`/root`下,则执行`crontab -e`,加入定时任务 + `0 */1 * * * bash /root/calculate.sh nvme0` + 其中,若所测的`NVMe`磁盘盘符名为`/dev/nvme0n1`,则定时任务中脚本的参数传入`nvme0`即可,其它依此类推。 \ No newline at end of file diff --git a/astream-v1.0.tar.gz b/astream-v1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a7ec576eb4de2d9211ebd2003f30bc1a0916f5f3 GIT binary patch literal 47932 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

I+k5LkGBzNR+5+lMONx1|M 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«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 jMQGn@7;_8*q}!?~E-F?mYMPB+f1Z?{u# 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 - v1.0-1 +- Type:Init +- ID:NA +- SUG:NA +- DESC:Automatic multi-stream implementation tool \ No newline at end of file