我在nuxit拥有一个专用的服务器,它可以“保证”一个20mb的连接。 我在那里运行一个游戏服务器,我用java编写了自己的程序。 游戏不会消耗大量的内存/ CPU /带宽(像棋这样的简单游戏),但是我需要维护在用户login和注销期间打开的TCP套接字。
我已经为这台专用服务器支付了超过100美元/月的费用,而用户每10到60分钟就会有5到60秒的滞后时间。 目前服务器上同时有10到40个用户。
我真的没有这方面的经验,在networkingpipe理,也没有专门的服务器租用。 我只知道如何编程。 我想知道是否这是正常的,由于路由问题,或主机的路由器拥塞? 或者是其他东西 ?
在一个已经打开的TCP套接字上有超过30秒的时间,甚至在理论上是可能的? 我已经search了几个星期的networking,从来没有发现这个话题。
我可以使用哪些工具,以及如何检查问题的来源,并确定结果? 我从来没有做过这样的事情,越简单越好。
谢谢你的帮助。
我相信可能需要更多的信息来解决这个问题。
你确定这是一个networking问题?
你可以通过运行在你的电脑上的wireshark来find这个问题,以便在出现这种问题时更好地分析tcp数据包的情况。 (为了限制日志的大小,您应该将捕获的数据包限制在服务器上)。
服务器上可能同时运行其他进程,这会减慢应用程序的运行速度。 根据您的操作系统,您可以设置软件来监视variables,如CPU /内存/ IO。
当应用程序套接字由于失败而closures时会发生什么? 你可能正在观察超时问题,当你的应用程序创build一个新的套接字时就解决了这个问题。
另外,当你提到的放缓时,你能build立到服务器的ssh / ftp / http连接吗? 换句话说,这种放缓是否会影响游戏服务以外的其他方面?
希望这些想法中的一些可以certificate有帮助。
如果你ping是一切正常? 尝试做1000坪,并检查是否所有100%回来确定。 我通常开始与mtrdebugging,看看有些数据包没有得到低谷。 也许有一些数据包丢失,这就是为什么服务器必须重新传输丢失的TCP数据包。