游戏卡顿白皮书 › L2 客户端操作系统与设备
客户端内存不足/swap Paging / swap on client
原因 ID co-swap · 主责 外部·外部 · 配合 研发团队·客户端开发
在含图示和实验的完整版中打开此卡片 →
同时开着几十个浏览器标签页和游戏时,操作系统会把游戏的一部分内存换出到磁盘。
起因 整机内存不足 → 结果 操作系统把暂时不用的游戏内存移到磁盘 → 画面表现 再次用到那部分内存时,视存储设备不同卡住几十到几百 ms
- 症状
- 卡住, 一卡一卡
- 因素
- 停顿
- 谁会遇到
- 只有我
- 何时出现
- 移动中/切换地图时, 偶尔随机
- 负责方
- 主责 外部·外部 · 配合 研发团队·客户端开发
- 研发团队要做的事
- 减少内存占用,剩余内存不足时显示警告。
- 外部要做的事
- 向玩家说明最低配置,引导玩家游戏时关闭其他程序(浏览器标签页等)。
- 监控图上
- 偶发随机尖峰 · 硬缺页、内存占用
- 查看位置
- 把性能监视器的 Memory\Pages Input/sec(为处理硬缺页而从磁盘读取的页数)、任务管理器“性能”选项卡的内存占用和已提交量与帧耗时一起记录
- 确认依据
- 卡住的瞬间 Pages Input/sec 飙升,内存几乎占满。关闭浏览器等其他程序后消失
- 排除依据
- 内存有余量、Pages Input/sec 平稳,看“主线程同步加载/Shader 编译”或“存储设备过慢导致资源流式加载滞后”
- 确认手段
- 需在玩家侧环境确认
出处
- Introduction to the page file Microsoft
页面文件是磁盘上的文件,用来把不常用的已修改内存页从内存中换出 - Working Set Microsoft
访问不在内存中的页会发生缺页(page fault),硬缺页要从页面文件等磁盘位置读回才能解决 - Chapter 12 - Detecting Memory Bottlenecks Microsoft
Memory\Pages Input/sec:为处理缺页而从磁盘读取的页数(硬缺页)
相关原因
同一层:L2 客户端操作系统与设备
其他层中同样导致“卡住”的原因
查看含图示和实验的原卡片