GM1991 发表于 2013-4-14 14:02:04

浅析传奇GM开服 服务器卡的重要原因以及解决方法

       大家都认为服务器卡是因为地图或者人数,怪物数量的原因,其实并不是这样的,服务器启动后最大的负载是market_def下面的商店NPC文件,虽然这都是些*.txt文件,但众所周知,这些文件只算是一个索引文件,服务器在读取这些文件后会在market_saved和market_price下面建立相关的数据内容,也就是商店里面的库存物品.这里的数据量是非常大的,非常消耗系统资源.以致造成卡机,网络延迟,缓慢.因为系统要不断地从这里读取内容然后又写回.在market_def下面的文本中,比如药品店,它的物品对应着2个数字太阳水

    1000是代表刷的数量,后面的1是指刷新的时间,也就是说1分钟(小时?)就要刷新1000瓶太阳水,而我们商店里卖的东西又多,这样一来,每时每刻我们的服务器都在大量地刷新物品,你们说这会不卡吗?

      当然,在market.txt中,NPC本身也有一个刷新参数,也就是说NPC自身也在不停地刷新,这样一来再好的机子也难以支撑.把market_def文件夹下的NPC文件移植到NPC_def文件夹下面去,这样做了之后,服务器变得非常的流畅,我刷了大量的怪物,速度也不慢(人物不会一卡一卡),要知道测试用的机子可以做到这一步已经很令人吃惊了(赛扬366 96M 4G硬盘)

       在NPC_def文件夹下面的文件是不会产生*.saved的保存文件的,因此可以节省大量的系统资源,但是这有一个致命的缺点就是这个文件夹下面的药店,饰品店,武器店,小贩,武器特修,不可以买卖物品,不可以进行修理或特修,仓库不能保管或取回.因为NPC_def下面的NPC只能属于那种纯脚本型的,不带M2server.exe中部分默认的参数(估计是这样的)

       当然,如果有高手可以解决这部分问题那就最好了,比如写出一些脚本,点一下某物品的名字就给你一个这个物品,然后扣除相应的钱数(编起来很累的).现在只能又把NPC移回market_def目录和market.txt中去了,这样一来又会卡的不得了,分析后觉得,估计这和刷新的时间长短有关系,大家看看能不能把刷新的时间改得长一点(不要太频繁地刷新)系统也许就会快很多.

       NPC_def还有一个好处就是目录下的NPC更新后不会闪烁,免去很多操作.

      大家如果要试一下速度就先把merchant.txt文件删空(记得备份哦)然后启动进去看看就知道了.

页: [1]
查看完整版本: 浅析传奇GM开服 服务器卡的重要原因以及解决方法