# KyTune **Repository Path**: ZXYsybs/kytune ## Basic Information - **Project Name**: KyTune - **Description**: Kytune后端仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-03 - **Last Updated**: 2025-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KyTune ## 项目介绍 KyTune 是一个用于麒麟操作系统调优和资源管理的工具,旨在通过优化系统参数和基准测试来提升服务器性能。项目分为 `backend` 和 `host` 两部分,分别负责后端算法和服务端配置。以下是项目的详细介绍: ### 组件 - **backend**:后端和算法模块,负责系统调优、资源监控、参数配置等功能。 - **host**:部署在测试服务器上,包含基准测试和参数配置模块,负责处理系统配置、资源监控和基准测试。 ## backend `backend` 包含项目的核心后端代码,负责系统调优、资源监控、参数配置等功能。以下是各个核心文件的功能描述: ### recongize_bottleneck.py recongize_bottleneck.py用于监控服务器资源使用情况并识别系统瓶颈。通过Prometheus获取资源数据,并结合SSH远程执行psutil脚本进行进程监控,最终返回瓶颈、资源使用情况、进程信息和应用场景。 ### config.py config.py用于接收、应用和回滚系统配置请求,通过HTTP请求将配置发送到多个主机。它使用MongoDB获取默认配置值,并将配置结果返回给客户端。 ### domain.py domain.py用于管理调优域的创建和获取操作,支持通过MongoDB进行域参数的存储和查询。提供了接口来获取所有域、创建新域以及根据记录创建域。 ### general.py general.py用于获取主机信息和调优记录,并通过Optuna和MongoDB进行调优参数和重要性分析的存储和查询。提供了接口来获取所有主机、获取所有调优记录以及根据参数名称获取参数信息。 ### tune_cluster.py tune_cluster.py用于接收系统调优的请求并启动优化进程,通过Optuna进行参数调优和性能基准测试。它支持多种测试类型(CPU、内存、文件IO、MySQL、Wrk),并通过MongoDB获取参数信息。 ### tune.py(已废弃) tune.py用于接收系统调优请求并启动单机优化进程,通过Optuna进行参数调优和性能基准测试。它通过MongoDB获取参数信息,并使用不同的优化策略进行性能测试和评估。 ## host `host` 包含项目中部署在host1和host2上的服务,负责处理系统配置、资源监控和基准测试等功能。以下是各个核心文件的功能描述: ### configurator.py configurator.py用于接收系统配置请求并更新MySQL和Nginx的配置文件,同时应用sysctl系统参数配置。通过解析和处理传入的配置数据,动态更新对应服务的配置文件并重启服务。 ### monitor.py monitor.py通过psutil库获取系统中占用CPU、内存、网络和磁盘资源最多的前五个进程。然后,它将这些信息打印为JSON格式。 ### sysbench.py sysbench.py用于接收和执行Sysbench基准测试请求。根据提供的测试类型(CPU、内存、文件IO、MySQL),它会执行相应的基准测试并返回测试结果。 ### wrk.py wrk.py用于接收和执行Wrk基准测试请求。它包含Wrk测试参数的数据模型,执行测试并解析测试结果,最终返回测试得分。 ## 构建安装 > backend请在项目根目录运行命令 > host端请在`/host/`文件夹下运行命令 ```bash >> pip3 install -r requirements.txt ``` ## 启动项目 > backend请在项目根目录运行命令 ```bash >> uvicorn main:app --host 0.0.0.0 --port 8000 > ./log.txt 2>&1 ``` > host端请在`/host/`文件夹下运行命令 ```bash >> uvicorn main:app --host 0.0.0.0 --port 8001 > ./log.txt 2>&1 ``` ## 代码结构 ```bash KYTUNE/ │ ├── backend/ # 后端和算法模块 │ ├── config.py # 配置管理 │ ├── domain.py # 调优域管理 │ ├── example-study.db # 调优SQLite数据库 │ ├── general.py # 通用接口 │ ├── recongize_bottleneck.py # 资源监控 │ ├── tune_cluster.py # 集群调优 │ └── tune.py # 单机调优 │ ├── param_engineering/ # 保存参数工程实例及调优参数 │ ├── host/ # host服务器上的服务 │ ├── bench/ # 基准测试模块 │ ├── configurator.py # 配置管理 │ ├── main.py # host主程序入口 │ ├── monitor.py # 系统监控 │ ├── requirements.txt │ ├── sysbench.py # Sysbench基准测试 │ ├── wrk_test.py │ └── wrk.py # Wrk基准测试 │ ├── domain.dbf ├── main.py # backend主程序入口 ├── mongo_demo.ipynb # MongoDB示例 ├── README.md ├── requirements.txt └── sysctl.conf # 内核参数配置 ``` ## 前端 KyTune 的前端部分由 [Vue.js](https://vuejs.org/) 框架开发,提供了用户友好的界面来进行系统调优等操作。前端与后端进行通信,以执行配置管理、资源监控和基准测试等功能。 前端项目代码托管在 [Gitee](https://gitee.com/nie-jingyi/kytune.git),你可以通过以下链接访问和克隆项目: [KyTune 前端项目 - Gitee](https://gitee.com/nie-jingyi/kytune.git) ## 基于ebpf的IO栈监测和基于火焰图的cpu性能分析 该项目代码托管在 [Gitee](https://gitee.com/aggshsjs/ebpf-cpuflame),你可以通过以下链接访问和克隆项目: [KyTune 基于ebpf的IO栈监测和基于火焰图的cpu性能分析 - Gitee](https://gitee.com/aggshsjs/ebpf-cpuflame)