-
监控工具
- cacti
-
内容
- 资源
- 消耗趋势
-
关注点
- 极限
- 趋势和分布
- 突变
-
优化目标
-
确定最低性能
- 参考同行
-
设定重复观环境
-
自动机器人
- 流程测试
- 创建 角色/装备/打怪
- 系统之间的对比
- 单个系统不同时间点的对比
-
测试开关
- 灰度测试
- 单个和几个服务器
- 外服投放
-
性能监控告警
- IM - google talk
- 手机/邮件/GM工具
-
性能分析
-
定位
-
基本点
- I/O操作
- 数据结构和算法
-
缓存数据
- 重复计算
-
热点数据
- 常用数据
-
系统的逻辑架构
- 数据流的走向和传递
- 静态
-
监控框架
-
cpu
- 时间函数/帧数
- 优化点
- 场景
- lua时间
- 网络消息收发
- 定时器
-
内存
- new/delete obj
- 内存池
- 对象池
- 监控 +1/-1
-
网络
- 单帧监控重复的数据包
- 单个协议优化
- 减少无用的字段数据
- 压缩
- 带宽的优化直接影响cpu和内存
- 对玩家产生利益的包进行监控,超过阀值告警处理
- 丢弃 不重要的包,比如玩家发言
- 设置玩家默认的状态,不需要从服务器获取太多的对象数据
-
数据库
- 数据库日志
- 定时保存数据,不是实时
- 减少join操作
- 减少索引
- 大数据表横向切割
- 根据玩家活跃度存储策略(例如半年不登录的玩家转移到备份表中)
- 基于消息队列
- 规划/评估
- 迭代实施
- 观测
- 回归
-
逻辑层问题
-
信任协议
-
可变协议
- 例如count+type1+value1+type2+value2
- 客户端恶意攻击 count 无限大
- 被外挂,类型错误
- 解决:把协议当成是对外服务架构
-
数值上限控制
-
反向好友数
- 设置条件
- 热点数据
-
邮件数量
- 好友之间设上线
- 系统邮件保留一份
-
策划配置的安全性
- 怪物掉落...
-
玩法问题
- 玩家聚集
- 控制 单个玩家的频繁操作消耗性能的行为
- 考虑群体玩家的操作造成的服务器性能过高消耗
-
FQ
- 控制每秒玩家可登录总次数,其他流入排队系统
- 根据单个服务器活跃用户top20,预先加载
-
运营和运行分开
- 运行的玩家数据
- 运营操作日志,限制对数据库的直接操作
-
数据库安全
- 单挑记录的查询也加上条件,例如limit 1; data in (from - to)