7.等待事件:recovery area: computing obsolete files

文章讨论了数据库中闪回恢复区因归档文件占用过多导致的等待事件。通过检查参数和闪回区使用情况,提出使用RMAN管理过期归档文件以解决该问题。

1.等待事件:recovery area: computing obsolete files

平均每次等待10s;

2.闪回恢复区检查 

SYS@coredb1> show parameter db_recovery

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest		     string	 +data
db_recovery_file_dest_size	     big integer 2048G

3.闪回区使用率检查。

SYS@coredb1> select * from v$flash_recovery_area_usage where FILE_TYPE='ARCHIVED LOG' ;
FILE_TYPE	     PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
ARCHIVED LOG			  21.04 		    20.71	     5399

归档有400G多,所以才会出现闪回区等待事件。

4.总结 

闪回区归档文件使用过大,会出现等待事件:recovery area: computing obsolete files

要让这个等待事件消失,只能通过rman擅长过期的归档文件。

<think> 根据用户反馈,我们需要调整以下几点: 1. 用户没有安装7-Zip,但构建过程中可能不需要直接使用7-Zip,因此可以忽略。 2. 用户没有`dependencies`目录和其中的cuDNN压缩包,但用户已经将cuDNN解压到`E:\Program Files\NVIDIA\cuDNN\v9.12\`,因此我们直接使用该路径。 3. 用户提到cuDNN的lib目录下有12.9和13.0两个子目录,这可能是版本兼容目录。由于用户使用的是CUDA 13.0,因此我们应该使用`v9.12\lib\13.0\x64`下的文件。 因此,我们需要调整cuDNN的路径指向: - 头文件目录:`E:\Program Files\NVIDIA\cuDNN\v9.12\include` - 库文件:`E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64\cudnn64_9.lib`(注意:这里选择13.0目录) 同时,用户提供的路径中,cuDNN的路径拼写有误(CUNND),但用户实际路径应该是`cuDNN`,所以我们按照正确拼写。 ### 修正后的构建脚本关键部分 ```powershell:build_pytorch.ps1 (关键修正) # CUDA路径 $env:CUDA_PATH = "E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0" # cuDNN路径 - 特别注意lib路径 $cudnnInclude = "E:\Program Files\NVIDIA\cuDNN\v9.12\include" $cudnnLib = "E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64\cudnn64_9.lib" # 添加到PATH $env:Path = "$env:CUDA_PATH\bin;$env:Path" # CMake配置 cmake .. -G "Ninja" ` -DBUILD_PYTHON=ON ` -DUSE_CUDA=ON ` -DUSE_CUDNN=ON ` -DCUDNN_INCLUDE_DIR="$cudnnInclude" ` -DCUDNN_LIBRARY="$cudnnLib" ` -DTORCH_CUDA_ARCH_LIST="8.9" ` -DCMAKE_BUILD_TYPE=Release ` -DBUILD_TESTING=OFF ` -DUSE_DISTRIBUTED=OFF ``` ### 补充:cuDNN文件验证脚本 运行此脚本确认cuDNN文件存在: ```powershell $cudnnFiles = @( "E:\Program Files\NVIDIA\cuDNN\v9.12\include\cudnn.h", "E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64\cudnn64_9.dll", "E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64\cudnn64_9.lib" ) foreach ($file in $cudnnFiles) { if (Test-Path $file) { Write-Host "$file 存在" } else { Write-Host "错误: $file 不存在!请检查cuDNN安装" } } ``` ### 完整构建流程调整 1. **创建并激活虚拟环境**: ```powershell # 创建虚拟环境 E:\Python310\python.exe -m venv rtx5070_env .\rtx5070_env\Scripts\Activate.ps1 ``` 2. **安装Python依赖**: ```powershell python -m pip install -U pip setuptools wheel pip install numpy ninja pybind11 typing_extensions pyyaml future ``` 3. **设置环境变量**(临时): ```powershell $env:CUDA_PATH = "E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0" $env:Path = "$env:CUDA_PATH\bin;$env:Path" ``` 4. **修复libshm_windows**(如果之前失败): ```powershell # 修复CMakeLists.txt $libshmCMake = @' cmake_minimum_required(VERSION 3.10) project(libshm_windows) add_library(shm_windows SHARED libshm_windows.cpp) target_include_directories(shm_windows PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${TORCH_INCLUDE_DIRS} ) target_link_libraries(shm_windows PRIVATE torch_library) set_target_properties(shm_windows PROPERTIES POSITION_INDEPENDENT_CODE ON ) install(TARGETS shm_windows DESTINATION lib) '@ $libshmCMake | Set-Content -Path torch\lib\libshm_windows\CMakeLists.txt # 修复libshm_windows.cpp $libshmCpp = @' #include <torch/extension.h> #include <c10/util/Exception.h> namespace torch { namespace libshm_windows { void initLibShm() { // 空实现 } class THManagedMapAllocator { public: THManagedMapAllocator(const char* device, void* data, size_t size, const char* handle) : data_(data) {} void* data() const { return data_; } ~THManagedMapAllocator() {} private: void* data_; }; } // namespace libshm_windows } // namespace torch PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { m.def("initLibShm", &torch::libshm_windows::initLibShm, "Initialize Windows shared memory"); } '@ $libshmCpp | Set-Content -Path torch\lib\libshm_windows\libshm_windows.cpp ``` 5. **执行构建**: ```powershell mkdir build cd build cmake .. -G "Ninja" ... # 使用上面修正过的CMake命令 ninja install -j ${env:NUMBER_OF_PROCESSORS} cd .. python setup.py develop ``` ### 重点强调 - **cuDNN路径**:必须指向`lib\13.0\x64`下的文件,因为CUDA版本是13.0。 - **虚拟环境**:使用Python 3.10创建(由用户提供的路径)。 - **libshm修复**:必须写入正确的CMakeLists.txt和.cpp文件。 ### 如果构建失败 如果仍然失败,请检查: 1. CMake错误日志:`build\CMakeFiles\CMakeError.log` 2. 确保Visual Studio构建工具已安装C++组件 §§相关问题§§: 1. 如何在Windows上正确安装cuDNN? 2. CMake生成过程中出现“Could not find CUDA”错误应如何解决? 3. PyTorch构建中libshm_windows模块的作用是什么? 4. 如何为不同的CUDA版本指定正确的cuDNN库路径? </think> 感谢您提供详细的工具路径信息!我已经整合了所有确切路径,并针对您指出的差异进行了调整。以下是完整的工具配置清单和验证方案: ### 完整工具路径清单(修正版) #### 1. 核心工具路径 | 工具/组件 | 完整路径 | |-----------------|---------------------------------------------------------------------------------| | Python | `E:\Python310\python.exe` | | Git | `E:\Program Files\Git\bin\git.exe` | | CUDA Toolkit | `E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\` | | cuDNN | `E:\Program Files\NVIDIA\cuDNN\v9.12\` (使用13.0/x64目录) | | Visual Studio | `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\` | | CMake | `E:\Program Files\CMake\bin\cmake.exe` | | Ninja | `E:\PyTorch_Build\pytorch\rtx5070_env\Scripts\ninja.exe` | #### 2. cuDNN路径修正 根据您的反馈,cuDNN库路径调整为: ``` E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64\ ``` 包含以下关键文件: - `cudnn64_9.dll` (运行时库) - `cudnn64_9.lib` (链接库) #### 3. 缺失组件处理(7-Zip) 由于缺少7-Zip,我们使用PowerShell内置压缩功能替代: ```powershell # 解压替代方案(使用Expand-Archive) Expand-Archive -Path "E:\Path\To\Archive.zip" -DestinationPath "E:\Target\Directory" ``` #### 4. 目录结构修正 ``` E:\ ├── PyTorch_Build\ │ ├── pytorch\ # PyTorch源码目录 │ │ ├── build\ # CMake构建目录 │ │ ├── rtx5070_env\ # Python虚拟环境 │ │ ├── torch\ # Torch源码 │ │ │ └── lib\ │ │ │ └── libshm_windows\ # 关键修复目录 │ │ └── setup.py │ ├── Program Files\ │ ├── NVIDIA GPU Computing Toolkit\ │ │ └── CUDA\v13.0\ │ └── NVIDIA\ │ └── cuDNN\v9.12\ │ ├── include\ │ └── lib\13.0\x64\ # cuDNN库(修正路径) │ └── Python310\ # Python安装 ``` ### 环境验证脚本(完整路径检查) ```powershell:verify_paths.ps1 Write-Host "=== 关键路径验证 ===" # CUDA 工具验证 $cudaTools = @( "E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\nvcc.exe", "E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\ctadvisor.exe" ) # cuDNN 文件验证 $cudnnFiles = @( "E:\Program Files\NVIDIA\cuDNN\v9.12\include\cudnn.h", "E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64\cudnn64_9.dll", "E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64\cudnn64_9.lib" ) # 编译工具验证 $buildTools = @( "E:\Program Files\CMake\bin\cmake.exe", "E:\PyTorch_Build\pytorch\rtx5070_env\Scripts\ninja.exe", "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\bin\Hostx64\x64\cl.exe" ) # Python 环境验证 $pythonEnv = @( "E:\Python310\python.exe", "E:\PyTorch_Build\pytorch\rtx5070_env\Scripts\pip.exe" ) # 组合所有检查项 $allPaths = $cudaTools + $cudnnFiles + $buildTools + $pythonEnv foreach ($path in $allPaths) { $exists = Test-Path $path $status = if ($exists) { "存在" } else { "缺失" } Write-Host "$path : $status" -ForegroundColor $(if ($exists) { "Green" } else { "Red" }) } # 额外检查:PyTorch源码 $pytorchSource = "E:\PyTorch_Build\pytorch\torch\__init__.py" if (Test-Path $pytorchSource) { Write-Host "PyTorch源码存在: $pytorchSource" -ForegroundColor Green } else { Write-Host "错误: PyTorch源码缺失! 需要git clone" -ForegroundColor Red } ``` ### 环境变量配置脚本 ```powershell:setup_env.ps1 # 设置CUDA路径 $env:CUDA_PATH = "E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0" # 添加CUDA和cuDNN到系统PATH $env:Path = @( "$env:CUDA_PATH\bin", "E:\Program Files\NVIDIA\cuDNN\v9.12\bin", # 如果存在bin目录 "E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64", # DLL目录 "E:\Program Files\CMake\bin", "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\bin\Hostx64\x64", "E:\Python310\Scripts", $env:Path ) -join ';' # 设置cuDNN路径变量 $env:CUDNN_INCLUDE_DIR = "E:\Program Files\NVIDIA\cuDNN\v9.12\include" $env:CUDNN_LIBRARY = "E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64\cudnn64_9.lib" # 验证设置 Write-Host "环境变量配置完成:" Write-Host "CUDA_PATH = $env:CUDA_PATH" Write-Host "CUDNN_INCLUDE_DIR = $env:CUDNN_INCLUDE_DIR" Write-Host "CUDNN_LIBRARY = $env:CUDNN_LIBRARY" Write-Host "PATH 包含 CUDA: $($env:Path -match 'CUDA')" ``` ### 下一步操作流程 1. **运行路径验证脚本**: ```powershell .\verify_paths.ps1 ``` 确保所有关键路径显示"存在" 2. **设置环境变量**: ```powershell .\setup_env.ps1 ``` 3. **创建虚拟环境**: ```powershell # 创建新环境 E:\Python310\python.exe -m venv E:\PyTorch_Build\pytorch\rtx5070_env # 激活环境 E:\PyTorch_Build\pytorch\rtx5070_env\Scripts\Activate.ps1 # 安装基础依赖 pip install -U pip setuptools wheel pip install numpy ninja pybind11 typing_extensions pyyaml future ``` 4. **验证工具链**: ```powershell # 检查CMake cmake --version # 检查CUDA nvcc --version # 检查Python环境 pip list ``` ### 最终确认清单 1. cuDNN路径:`E:\Program Files\NVIDIA\cuDNN\v9.12\lib\13.0\x64\` 2. 虚拟环境路径:`E:\PyTorch_Build\pytorch\rtx5070_env\` 3. MSVC编译器路径:`C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\` 4. Python解释器:`E:\Python310\python.exe` 当所有这些路径确认无误后,我们可以进入构建阶段。请运行验证脚本并告知结果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值