WSL2 内部查看

openclaw openclaw解答 1

磁盘空间管理

检查磁盘使用情况

du -sh ~/*
du -sh /var/lib/docker/* 2>/dev/null
# Windows 查看 WSL2 磁盘
wsl --shutdown
optimize-vhd -Path "C:\Users\用户名\AppData\Local\Packages\...\ext4.vhdx" -Mode Full

清理系统缓存

# 清理 apt 缓存
sudo apt clean
sudo apt autoremove --purge
# 清理 pip 缓存
pip cache purge
# 或指定目录
rm -rf ~/.cache/pip
# 清理 Docker
docker system prune -a --volumes
# 清理 conda 缓存
conda clean --all

扩展虚拟硬盘

# PowerShell 管理员运行
# 1. 关闭 WSL
wsl --shutdown
# 2. 找到 VHDX 文件路径
Get-ChildItem -Recurse "ext4.vhdx" | % { $_.FullName }
# 3. 调整大小(例如扩展到 100GB)
Resize-VHD -Path "C:\...\ext4.vhdx" -SizeBytes 100GB
# 4. 重启 WSL,然后在 Linux 内扩展分区
sudo mount -t devtmpfs none /dev
mount | grep ext4
sudo resize2fs /dev/sdX  # 替换为实际分区

性能优化配置

WSL2 配置文件 (%USERPROFILE%\.wslconfig)

[wsl2]
memory=8GB           # 限制内存使用
processors=6         # CPU核心数
swap=4GB             # 交换空间
localhostForwarding=true
# 磁盘性能优化
kernelCommandLine = "sysctl.vm.max_map_count=262144"

Linux 内核参数优化

# 编辑 /etc/sysctl.conf
sudo tee -a /etc/sysctl.conf << EOF
# 提高文件系统缓存
vm.swappiness=10
vm.vfs_cache_pressure=50
# 网络性能
net.core.rmem_max=134217728
net.core.wmem_max=134217728
EOF
sudo sysctl -p

禁用 Windows Defender 扫描(可选)

# 在 PowerShell 管理员运行
Add-MpPreference -ExclusionPath "\\wsl$\"

AI 环境专用维护

CUDA/cuDNN 清理

# 查看 GPU 驱动版本
nvidia-smi
# 清理旧的 CUDA 版本
sudo apt purge cuda-* 
sudo apt autoremove
# 清理 NVIDIA 驱动缓存
sudo rm -rf /usr/local/cuda-*/lib64
sudo rm -rf ~/.nv/

PyTorch/TensorFlow 缓存清理

# PyTorch 缓存
rm -rf ~/.cache/torch
rm -rf ~/.torch
# TensorFlow 缓存
rm -rf ~/.keras
rm -rf /tmp/tensorflow*
# Jupyter 清理
jupyter lab clean
jupyter notebook clean

Docker 镜像管理

# 查看磁盘占用
docker system df
# 清理无用镜像
docker image prune -a
# 保留最近使用的镜像,清理其余
docker images --format "{{.Repository}}:{{.Tag}}" | grep -v "latest" | xargs docker rmi
# 使用 dive 分析镜像
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive:latest <image_id>

备份与恢复

导出 WSL2 环境

# 导出到 tar 文件
wsl --export Ubuntu-20.04 D:\wsl_backup\ai_environment.tar
# 压缩备份
wsl --export Ubuntu-20.04 - | gzip > ai_env_backup.tar.gz

定期备份脚本 (backup_wsl.sh)

#!/bin/bash
BACKUP_DIR="/mnt/d/wsl_backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/wsl_ai_${TIMESTAMP}.tar"
# 导出当前环境
wsl.exe --export $(wsl.exe -l -q | head -1) "${BACKUP_FILE}"
# 保留最近7个备份
ls -t "${BACKUP_DIR}"/*.tar | tail -n +8 | xargs rm -f

迁移到其他磁盘

# 1. 导出
wsl --export Ubuntu-20.04 D:\temp\ubuntu.tar
# 2. 注销原实例
wsl --unregister Ubuntu-20.04
# 3. 导入到新位置
wsl --import Ubuntu-20.04 D:\WSL\Ubuntu D:\temp\ubuntu.tar
# 4. 设置默认用户
ubuntu2004 config --default-user <username>

网络与开发环境

端口转发配置

# 创建端口转发脚本 forward_ports.ps1
$ports = @(8888, 6006, 8501)  # Jupyter, TensorBoard, Streamlit
foreach ($port in $ports) {
    netsh interface portproxy add v4tov4 listenport=$port connectaddress=127.0.0.1
}

SSH 配置优化

# ~/.ssh/config
Host wsl
    HostName localhost
    Port 2222
    User yourname
    ForwardAgent yes
    ServerAliveInterval 60

监控与诊断

资源监控脚本 (monitor_wsl.sh)

#!/bin/bash
echo "=== WSL2 系统状态 ==="
echo "内存使用:"
free -h
echo "磁盘使用:"
df -h /mnt/c /home
echo "GPU 状态:"
nvidia-smi --query-gpu=memory.used,memory.total --format=csv
echo "Docker 状态:"
docker stats --no-stream

性能基准测试

# 磁盘 IO 测试
fio --name=randwrite --ioengine=libaio --iodepth=1 \
    --rw=randwrite --bs=4k --direct=1 --size=256M --numjobs=1 --runtime=60
# 网络测试
iperf3 -c <host> -p 5201

常见问题解决

WSL2 启动失败

# 重置网络
netsh winsock reset
netsh int ip reset all
ipconfig /flushdns
# 重启 LxssManager 服务
Restart-Service LxssManager

Docker 容器无法启动

# 重启 Docker 服务
sudo service docker restart
# 检查 WSL2 集成
docker context ls
docker context use default

GPU 不可用

# 检查 CUDA 可用性
python -c "import torch; print(torch.cuda.is_available())"
# 重新安装 NVIDIA 驱动
# 从官网下载对应版本驱动

自动化维护脚本示例

创建 wsl_maintenance.py

WSL2 内部查看-第1张图片-官方openclaw下载|openclaw官网-国内ai小龙虾下载

#!/usr/bin/env python3
import subprocess
import json
from datetime import datetime
def run_cmd(cmd):
    return subprocess.run(cmd, shell=True, capture_output=True, text=True)
def maintenance_report():
    report = {
        "timestamp": datetime.now().isoformat(),
        "disk_usage": run_cmd("df -h").stdout,
        "docker_status": run_cmd("docker system df").stdout,
        "gpu_status": run_cmd("nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv").stdout
    }
    # 清理操作
    run_cmd("docker system prune -f")
    run_cmd("sudo apt autoclean")
    return json.dumps(report, indent=2)
if __name__ == "__main__":
    print(maintenance_report())

最佳实践建议

  1. 定期维护计划

    • 每周:清理缓存和日志
    • 每月:备份环境状态
    • 每季度:检查并更新所有依赖
  2. 项目环境隔离

    # 使用 conda 创建独立环境
    conda create -n xiaolongxia python=3.8
    # 或使用 virtualenv
    python -m venv ~/projects/xiaolongxia
  3. 使用 Docker 开发

    # Dockerfile.example
    FROM nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu20.04
    WORKDIR /app
    COPY requirements.txt .
    RUN pip install -r requirements.txt
    CMD ["python", "main.py"]
  4. 监控告警设置

    • 设置磁盘使用率超过80%时发送通知
    • 监控 GPU 温度和使用率
    • 记录异常重启事件

这样维护可以确保 WSL2 环境为 AI 项目提供稳定高效的运行平台。

标签: a

抱歉,评论功能暂时关闭!