You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2中Playwright(Python)性能远逊于Win11,求解决办法?

问题描述

在Windows 11设备上使用Python 3.11搭配Playwright实现爬虫流程,迁移至WSL2环境后,所有浏览器的无头/有头模式性能极差:

  • page.goto触发默认30秒超时
  • 有头模式下DOM已加载,但浏览器持续处于加载循环状态,网络面板为空、控制台无异常
  • 相同代码在Windows原生Python环境运行无延迟或超时问题

希望保留WSL本地工作流,同时解决性能问题,询问是否为WSL模拟开销,或有可优化方案。

典型代码示例:

from playwright.sync_api import sync_playwright

... # 其他代码

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto('https://benjamintseng.com/') # 示例博客地址
    ... # 其他代码
优化解决方案

这并非WSL2必须接受的固定开销,以下是可落地的优化方案:

1. 调整WSL2网络配置

WSL2默认NAT网络模式可能导致网络请求延迟,可尝试:

  • 临时禁用IPv6:在WSL终端执行sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1;若需永久生效,编辑/etc/sysctl.conf添加net.ipv6.conf.all.disable_ipv6=1后重启WSL
  • 切换至网桥模式:通过Windows设置将WSL2网络改为网桥模式(需管理员权限),减少网络转发层级开销

2. 优化Playwright启动与页面跳转参数

修改代码中的浏览器启动和页面跳转参数,规避不必要的资源消耗:

with sync_playwright() as p:
    # 添加轻量级启动参数
    browser = p.chromium.launch(
        headless=True,
        args=[
            "--disable-gpu",
            "--no-sandbox",
            "--disable-dev-shm-usage",
            "--disable-extensions",
            "--disable-background-networking"
        ]
    )
    page = browser.new_page()
    # 调整跳转等待策略,避免等待不必要的资源加载
    page.goto('https://benjamintseng.com/', wait_until='domcontentloaded', timeout=60000)
  • --disable-dev-shm-usage:规避WSL2共享内存限制导致的浏览器性能瓶颈
  • wait_until='domcontentloaded':DOM加载完成即停止等待,无需等待所有静态资源加载完毕

3. 分配更多WSL2系统资源

默认WSL2资源分配可能不足,编辑Windows用户目录下的.wslconfig文件(无则新建):

[wsl2]
memory=8GB
processors=4
swap=4GB
localhostForwarding=true

修改后执行wsl --shutdown重启WSL生效,提升CPU、内存配额可显著改善浏览器运行性能

4. 确保Playwright依赖与浏览器版本匹配

在WSL终端执行以下命令,更新Playwright及对应浏览器依赖:

pip install --upgrade playwright
playwright install --with-deps chromium

WSL环境下的浏览器依赖与Windows存在差异,重新安装可解决兼容性问题

5. 优化有头模式的GUI渲染

若使用有头模式,需确保WSL的GUI转发配置正确:

  • 使用VcXsrv等Windows显示服务器时,关闭硬件加速选项
  • 在WSL终端设置环境变量:export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
  • 启动浏览器时添加--disable-gpu参数,规避GPU渲染兼容性问题

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:46:13