作者:传奇之家类别:常见问题
更新:2026-11-06查看次数:168
开区当天最常见的一类投诉:人一多就卡,过一会儿集体掉线,重启服务端又能撑半小时。很多人第一反应是换服务器,换完还是一样。这类问题九成不是配置不够,是服务端里有东西在持续吃资源。
内存型:任务管理器里 M2 的内存一路往上走,不回落,重启归零。典型是脚本死循环或者数据无限堆积。
CPU 型:CPU 顶到 100%,内存却正常。多半是刷怪数量过大或者某个定时任务频率写错。
网络型:服务端资源都正常,玩家集体掉线,网关日志里一片断连。查网关连接数和线路,不用动版本。
三种表现很像,但处理方向完全不同。先在任务管理器看一分钟曲线,比直接重装服务端有用得多。
还有一种是混合型:内存和 CPU 一起涨,重启就恢复。这种基本可以按死循环处理,先去翻脚本。
M2 目录下的 Log 文件夹、网关目录的日志、Windows 事件查看器。前两个看业务异常,第三个看系统层的内存溢出和程序崩溃。
如果 M2 是直接消失、没有任何报错,优先看事件查看器。程序崩溃前通常会留下一条应用程序错误,能看出是哪个模块出的问题。
日志文件打不开或者提示被占用,先停服务再读。运行中读取容易拿到半截内容,看起来像日志缺了,其实是没写完。
1. 脚本死循环。最常见。QFunction 或 NPC 脚本里用 GOTO 跳回自己,却没有 BREAK 或者终止条件,玩家每触发一次就多跑一轮,内存和 CPU 一起涨。
2. 刷怪量过大。MonGen 里数量填了几百,地图上怪物尸体和掉落长期不清理,内存会缓慢堆积。开区前用 GM 命令传送到每张图数一遍,比看配置可靠。
3. 日志和记录文件不切割。交易日志、充值记录、聊天记录一直往一个文件里写,几天就是几个 G。文件读取时整块载入,内存自然下不来。
切割的做法很简单:按天建子目录,脚本里用日期变量拼文件名。这一步做一次,后面所有排查都省事,日志也敢放心开。
怀疑是脚本,不要一行行读。把 QuestDiary 和 Market_Def 分成两半,先移走一半,重启观察一小时;内存不涨了,问题就在移走的那一半里,再对半拆。五个来回基本能圈到具体文件。
圈到文件之后,搜三个关键词:GOTO、DELAYGOTO、#CALL。这三个是死循环的高发点,尤其是自己跳自己的标签。
# 先看日志目录谁在疯长
Get-ChildItem "D:\MirServer" -Recurse -Include *.log,*.txt |
Sort-Object Length -Descending | Select-Object -First 10 Name,Length
所有人在同一秒掉线,基本可以排除版本问题。看网关窗口的连接数是不是到了上限,看登录器列表是不是解析失败,看服务器带宽有没有被打满。
顺带看一眼登录器列表里的地址和端口,配置写错也会让整批人连不上,这种情况和服务器状态无关,别一头扎进服务端里查。
还有一种情况是玩家本地网络波动,但反馈会集中在同一个地区。问一句"哪里的"就能分辨,别一律当成服务端问题。
M2 的日志里,真正有用的就三类:脚本报错行、数据库加载结果、地图加载结果。其他都是运行流水,平时不用逐行看。
脚本报错行会带文件名和行号,按行号定位比通读整个文件快得多。数据库和地图的加载结果在启动阶段一次性输出,开区前扫一眼,能提前发现缺文件。
如果日志文件本身涨到几百兆,说明没有按天切割。先把它切了再查,否则打开就要等半天。
没有统一标准,看机器。一般经验是:M2 常驻内存稳定在一个区间内小幅波动是正常的;持续单向上涨、两小时内翻倍,就一定要查。
判断方法很简单:开区前记一个基线值,运行一小时后对比。涨了三成以上且不回落,按上面的三步查;涨了一点点然后平稳,属于正常缓存,不用折腾。
与其等内存涨到崩,不如每天固定时间重启一次。用计划任务跑一个批处理,凌晨玩家最少的时候执行:
@echo off
taskkill /f /im M2Server.exe
timeout /t 5
start "" "D:\MirServer\Mir200\M2Server.exe"
重启前发一条全服公告,重启后确认网关都起来了。固定重启不能替代排查问题,但能把"半夜崩服"的概率压到很低。
网关配置里有最大连接数,默认值往往偏小。在线人数一多,新玩家连不上,老玩家掉线,表现和服务端崩溃很像。
把这个值按预期在线的两倍来配,同时确认服务器本身的连接数限制。改完做一次小规模并发登录测试,别等开区才发现连不上。
网关的连接数和 M2 的在线人数长期对不上,八成是有人多开或者在用工具刷。按 IP 排一下连接数,很容易看出来。
第一,把定位到的脚本改掉,并且记录改了什么。第二,给日志加上按天切割,给重启定个固定时间。开区阶段每天凌晨重启一次,比出了事再救火省心得多。
资源问题不怕查,怕的是一上来就换服务器。换了机器问题还在,玩家的耐心已经耗完了。