一台TrinityCore服务器,采用的是备份克隆安装的方式,在FreeBSD bhyve 中安装Ubuntu,安装细节见如下两篇文档:尝试在FreeBSD 的jail、bhyve里安装TrinityCore-CSDN博客
备份和镜像TrinityCore_魔兽世界 updating auth database... dbupdater: the give-CSDN博客
服务器硬件升级情况见文档:升级TrinityCore 服务器硬件-CSDN博客
这台服务器的问题就是特别卡,网络延时在700ms左右,而且经常出现更大的延时,出现卡顿现象。但是在命令行ping该服务器却很快,用ssh传输文件也很快,所以最终怀疑是不是因为不是本地编译而导致延时大的。发现这个问题后,一直没解决,当时留存了问题文档:一台TrinityCore服务器客户端连接网速慢(未解决)-CSDN博客
关键是局域网的时候,延时也是几百....
准备本机编译,看看是否能解决
重新本机编译
先配置安装如下软件
sudo apt-get update sudo apt-get install git clang cmake make gcc g++ libmysqlclient-dev libssl-dev sudo libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mysql-server p7zip sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100
下载源码可以忽略,因为源码已经下载好了
cd ~/ git clone https://github.com/TrinityCore/TrinityCore
编译设置
cd TrinityCore mkdir build cd build # 设置安装到server2目录 cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/server2
重新编译
make -j 4 make install
编译完成后,用新版本启动服务,发现有点问题,npcbot雇佣兵出不来了.....
而且延时还是700ms左右。
换回老版本,发现延迟降低到300ms左右了,有时候50ms左右,卡的情况还有,但是感觉好一点了。 打了一会儿发现又红了,原来问题照旧。目前客户端连上特别卡,一会儿就卡一次。
是不是bhyve的问题呢? 用jail虚拟机试试
使用FreeBSD jail Ubuntu测试
首先登录进入Ubuntu 虚拟机jammy:
root@fbhost:~ # cbsd jlogin jammy
创建wow账户
apt install sudo
useradd wow
发现jammy这个jail虚拟机没法执行apt install sudo ,软件下载的时候卡住。apt update的时候也会卡住
apt update 0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com]
登录jail虚拟机ubjammy
ubjammy
apt update 也是卡住。
Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
0% [Working]
查看resolv.conf文件
nameserver 114.114.114.114 # CBSD makeresolv function
nameserver 8.8.8.8
应该不是它的问题。
看看是不是pf防火墙的问题?
防火墙规则pf.conf
tcp_services = "{ ssh, smtp, domain, www, pop3, auth, pop3s,443,5900, 5901 }" udp_services = "{ domain }" block all # pass out on $ext_if proto tcp to any port 443 pass out proto tcp to any port $tcp_services keep state pass in proto tcp to any port $tcp_services keep state pass proto udp to any port $udp_services keep state pass inet proto icmp from any to any pass out proto tcp to any keep state
真是祸不单行,现在所有的jail网络都不能用了。。。。 暂时无法用jail Ubuntu测试,因为所有的都有网络问题,这样没法安装TrinityCore。
是不是ssd的问题
思考是不是硬盘的问题,因为它使用了一块很老旧的ssd硬盘。在zfs里添加一块新ssd硬盘后,没有去掉老的ssd硬盘,不知道是不是因为这个原因。
zfs手册:Chapter 22. The Z File System (ZFS) | FreeBSD Documentation Portal
尝试卸载老硬盘,但是没成功
zpool status pool: zroot state: ONLINE scan: scrub repaired 0B in 00:03:39 with 0 errors on Fri Jun 14 13:07:32 2024 config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 ada0p4 ONLINE 0 0 0 ada1p2 ONLINE 0 0 0 errors: No known data errors zpool offline zroot /dev/ada0p4 cannot offline /dev/ada0p4: no valid replicas
那就先不卸载以前的老硬盘了。
是不是主板本身就有问题
但是scp的时候速度挺快啊,网络应该没啥问题。
是不是内存问题
不知道
是不是其它jail虚拟机的干扰?
把其它所有虚拟机关闭,卡的问题还是存在。
是不是网络的问题
设置为局域网连通,客户端里的ping值有时候只有1ms,但是有时候就会到200ms左右,关键不管延时是1还是200ms,时不时都会卡一下.....,局域网竟然还是卡...
暂时的解决方法:
先不使用这台新服务器了,使用原来的老TrinityCore服务器,把原来的VirtualBox存盘文件从机械硬盘挪到ssd电子硬盘,同时把虚拟内存从1756MB调到2G,该感觉速度比以前提高了一些。
还是这台老服务器管用,至少不会延时几百ms变成红色。同时可以看到Linux服务器还是挺厉害的,2G内存,一个挺复杂的TrinityCore服务,包括mysql,nginx,php等服务就跑起来了,而且效果还不错!