63 lines
6.3 KiB
Markdown
63 lines
6.3 KiB
Markdown
|
|
## 补充优化:终端调度对照与无线扫描(2026-11-11 15:43)
|
|||
|
|
|
|||
|
|
本轮保持 2560×1440、45 FPS、客户端请求 25 Mbps、H.264 SDR。两台实际 NvFBC / NVENC 保持有效,未调整原生鼠标样式或移速。没有修改 Windows 来宾的驱动、鼠标、应用或资源配置;为测试按平台流程正常关闭 Windows 并切到 Linux。此次持久调整在共用盒子的网络配置中,因而也影响盒子连接 Windows 时的网络路径。
|
|||
|
|
|
|||
|
|
### 实际保留的调整
|
|||
|
|
|
|||
|
|
盒子三次无线断开记录中有 `reason=34`。15:22:58 断开后,反复尝试同名 2.4 GHz 热点并被拒绝,直到 15:23:25 才恢复 5 GHz。先仅设置 5 GHz,15:30:31 仍断开,15:30:44 恢复;说明限制频段不足以修复断开本身。
|
|||
|
|
|
|||
|
|
进一步将盒子现有 YXTech 配置固定到当前 5 GHz 接入点 `f8:ce:21:a7:b9:50`。NetworkManager 文档说明固定 BSSID 会禁用漫游及后台扫描;此前断开间隔约五分钟,扫描参与问题是推断,尚未证明是唯一根因。Wi-Fi 省电原本已关闭,本轮没有把它记为新增优化。
|
|||
|
|
|
|||
|
|
配置已通过 nmcli 写入 `/etc/netplan/90-NM-9212612f-4dd0-4cf0-a21b-85413c900acf.yaml`,核对 `band: 5GHz` 和 BSSID。每次试验前设置了 90 秒自动回退,重连和 SSH 验证成功后取消回退;没有留下活动回退定时器。配置备份位于盒子 `/var/backups/vdi-wifi-20261111/`,不是 PVE,备份不复制到仓库以免带入无线凭据。
|
|||
|
|
|
|||
|
|
15:32:29—15:43:09 的约 10 分 40 秒观察中,没有再次出现无线断开或关联拒绝,越过两个此前约五分钟的周期。期间主动切换麒麟、Ubuntu并重连,不是同一桌面连续串流十分钟,也不是长期稳定性验收。若移动盒子、更换接入点或该 AP 不可用,需解除 BSSID 限制;本轮没有改路由器。
|
|||
|
|
|
|||
|
|
### 未保留的调度试验
|
|||
|
|
|
|||
|
|
确认 SDL 渲染线程申请高优先级因权限失败。先由 root 仅把当前 Moonlight 的 PacerRender 线程从 nice 0 临时改为 -10,保持普通 TS 调度;未使用 SCHED_FIFO、文件 capabilities、全进程提权或更改用户权限上限。固定接入点后,两台分别在同一连接内顺序 A/B,每类 50 次。表内为 P50 / P95,单位 ms:
|
|||
|
|
|
|||
|
|
| 系统 | PacerRender nice | 悬停回显 | 点击回显(含40ms按住) | 掩码字符回显 |
|
|||
|
|
| --- | ---: | ---: | ---: | ---: |
|
|||
|
|
| Ubuntu | 0 | 122.5 / 141.6 | 173.0 / 195.6 | 83.7 / 120.5 |
|
|||
|
|
| Ubuntu | -10 | 121.7 / 151.0 | 172.8 / 213.7 | 79.1 / 105.9 |
|
|||
|
|
| 麒麟 | 0 | 103.1 / 127.6 | 147.0 / 165.5 | 81.9 / 103.6 |
|
|||
|
|
| 麒麟 | -10 | 101.3 / 121.3 | 146.5 / 172.8 | 86.1 / 99.6 |
|
|||
|
|
|
|||
|
|
悬停及点击中位数没有稳定收益,部分 P95 反而上升,因此两台试验均恢复 nice 0,没有持久化提权。Ubuntu 固定 AP 前另有两轮 A/B,同样没有一致收益;被断网打断的 A2、B2 与麒麟第一次 B 不计为完整结果。不能把警告消失或某一类输入的单轮改善解释为整体延迟降低。
|
|||
|
|
|
|||
|
|
### 功能与呈现复查
|
|||
|
|
|
|||
|
|
| 系统 | 拖动回显 P50 / P95(ms) | 观察到的新位置更新/秒 | 输入验证 |
|
|||
|
|
| --- | ---: | ---: | --- |
|
|||
|
|
| Ubuntu | 90.9 / 109.8 | 35.4 | 300 次末位置可见,松键成功 |
|
|||
|
|
| 麒麟 | 84.4 / 106.9 | 37.2 | 300 次末位置可见,松键成功 |
|
|||
|
|
|
|||
|
|
以上为 XTest 输入至首次观察到唯一解码标记,排除实体 USB 鼠标和屏幕扫描;更新/秒是 60 Hz 拖动下采样到的独特位置,不等于解码或显示帧率。GTK 的合成页面提交没有业务后端,不能代表真实密码认证或应用启动耗时。
|
|||
|
|
|
|||
|
|
Ubuntu 在来宾内部另测本地 X11 标记,悬停中位数约 21 ms、点击约 78 ms(含40ms按住)、掩码字符约 5 ms,每类30次。它与盒子端测量路径不同,只用于区分来宾处理与串流路径,不将差值当作可直接消除的延迟。
|
|||
|
|
|
|||
|
|
结束前的 Ubuntu 单会话统计:接收/解码约45.03 FPS、呈现44.18 FPS、平均网络6 ms(variance栏1 ms)、解码7.67 ms、排队4.62 ms。麒麟对应会话呈现43.85 FPS。无线条件不恒定,不能将这几次统计差异全归因于固定 AP。network jitter 栏还包含客户端丢弃旧帧,不能全当无线丢包。
|
|||
|
|
|
|||
|
|
Ubuntu 再次退出和重连后,三处背景检查均未发现视频内重复箭头,仍有24×24的本地原生光标。临时 GTK 参考窗口已停止,桌面实际截图核验通过。
|
|||
|
|
|
|||
|
|
### 深层显示链路和边界
|
|||
|
|
|
|||
|
|
盒子仍是 RKMPP 硬解、DRM PRIME / EGL 呈现。现场 GPU 约800 MHz、90%—93%负载,不能承诺真2K60。部署源码明确要求 DRM master 才能直接设置显示 plane;现有原生光标实现也显式要求 X11。改成 DRM 直出需要同时完成 VT/显示所有权、光标后端、退出恢复及快捷键验证。本轮没有停掉 X11 或把“Direct rendering disabled”当成一个可随意开启的选项;没有声称已实现新的直接扫描输出或完全零拷贝链路。
|
|||
|
|
|
|||
|
|
本轮主要消除已观察到的无效频段重试并测试固定 AP 的短期稳定性,尚未证明 Ubuntu/麒麟全部交互延迟与 Windows 相同。继续提高 CPU 核数不能解决盒子 GPU 呈现吞吐和无线驱动/AP层问题。两小时/八小时、物理相机延迟及统一真实业务场景验收仍未完成。
|
|||
|
|
|
|||
|
|
### 收尾与回退
|
|||
|
|
|
|||
|
|
仅 Ubuntu VM102 运行并留在盒子上,Windows、麒麟停止;宿主未重启,共享 GPU 钩子和三台 VM 配置未改。Ubuntu 双光标修复、麒麟原有合成设置均保留。PacerRender / InputSend / FFDecoder 最终均为 nice 0、TS。
|
|||
|
|
|
|||
|
|
在盒子上解除本轮网络限制(会短暂断网):
|
|||
|
|
|
|||
|
|
```sh
|
|||
|
|
sudo nmcli connection modify uuid 9212612f-4dd0-4cf0-a21b-85413c900acf 802-11-wireless.bssid '' 802-11-wireless.band ''
|
|||
|
|
sudo nmcli connection up uuid 9212612f-4dd0-4cf0-a21b-85413c900acf ifname wlan0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
证据:`wifi-before-5ghz.log`、`wifi-fixed-ap-final.log`、`*-sched-fixed-ap.jsonl`、`*-fixed-ap-drag.json`、`ubuntu-local-screen-response.raw`、`ubuntu-fixed-ap-client-stats.log`、`ubuntu-fixed-ap-double-cursor.json`、`optimization-host-final-state.log`。测量脚本为 `box-sched-pair.py`、`response-probe-50.py`、`guest-local-response.py`。
|
|||
|
|
|
|||
|
|
依据:[NetworkManager 无线配置](https://networkmanager.dev/docs/api/latest/settings-802-11-wireless.html)、[SDL Linux线程优先级实现](https://github.com/libsdl-org/SDL/blob/release-2.30.11/src/core/linux/SDL_threadprio.c),以及现场部署的 Moonlight DRM / 原生光标源码。
|