[分享] Spigot的一個小BUG

作者: softpak (喔喔喔)   2017-05-07 01:06:14
其實我發現這個問題一直都在
只是通常開服者會固定重啟伺服器
所以這個問題相較之下不是很嚴重
不過我相信還是有很多服開著不關也很少重開的
因為我的服也是這樣
所以也察覺到這個問題的嚴重性
相關的內容我也有同步發到spigot的論壇上
不過官方會不會改我就不清楚了
希望可以改掉這個問題
接下來就說一下這到底是什麼問題好了
就是伺服器如果好幾天不關
我的服是4~5天
這個tracker set的大小在我的伺服器裡就會成長到50萬以上
然後在沒玩家的情況下tps只有10左右
timing裡時間的花費則是30~40ms
http://i.imgur.com/K7hvXH5.png
已經超過半個tick了
會LAG不意外?
這個問題我分了2個階段解決
第一階段是track的的平行化
問題是稍微有解決沒錯
但是沒玩家時TPS卻還是降到18左右(use 4 cores)
有玩家就會變成17
但問題是沒有人在線上到底要追蹤啥?
於是我認為應該是這個set裡的entry沒有正確的被刪除所導致
所以第二階段我做了一個全面檢查
目前是在玩家轉換世界時才會觸發這個檢查
因為經過傳送門都會頓我覺得應該沒差吧 XDDD
希望spigot能夠去修正這個問題
如果沒有 我的專案有修正 囧
不過目前還是在觀察階段
之前有確定確實是tracker set太大導致
因為我有測試這個set大於20萬就清空
然後tps一路19以上持續30多天的紀錄
期間玩家登入數跟頻率是差不多的
不過就是一些機關掛點
生物有時會不動這樣 XDDD
希望對大家有幫助
作者: olys (查無暱稱)   2017-05-07 14:21:00
原來如此,之前就奇怪記憶體為什麼回收機制運作不佳
作者: CardLin (卡林)   2017-05-07 20:16:00
這問題我有遭遇過!基本上跟CPUtime與MBtime有很大的關聯因為有段時間地磁場異常而造成CPU時間與主機板時間不同步TPS一直以來都不是問題,最主要的是玩家不要為小事吵架!畢竟挖礦蓋房屋的TPS一點都不重要,重要的是不能遺漏封包這我就更清楚了我有換過六張以上的網卡來運行我的伺服器!基於不能透漏太多時間不同步的情況,我會用多組NTP監測喔如果電腦能接個USB的GPS接收器到窗台接收GPS時間很不錯!這樣你每秒鐘就可接收到數個衛星傳送給你的時間訊號校正!如此一來你的TPS就能算得更精確而非軟硬體上的誤差值!規則一定要訂的夠嚴謹不能有多個OP會有小圈圈的排擠效應!
作者: mamaya3 (mamaya)   2017-05-07 20:26:00
斷!
作者: CardLin (卡林)   2017-05-07 20:30:00
重新啟動主要是確保時間數值不會因為Overflow而發生異常!畢竟早上六點重開就是要大家知道可以開始準備早餐去上班!但考慮有些是早上要去開門工作的老闆所以五點重開也不錯!但我覺得現在都已經電子化時代了,或許可以用日出為依據!
作者: LPH66 (-6.2598534e+18f)   2017-05-07 20:38:00
我怎麼覺得樓上有點搞錯原 PO 在討論的問題了...這個 bug 應該是跟世界中的 entity 數量有關, 和時間沒啥關時間在這個問題裡只是經過越久問題越嚴重而已這裡的時間也是遊戲內時間而不是伺服器機器上的時間
作者: CardLin (卡林)   2017-05-07 20:41:00
我知道有些很厲害的玩家會從其他伺服器跑來繁殖別人農場!
作者: LPH66 (-6.2598534e+18f)   2017-05-07 20:41:00
跟 NTP 或 GPS 對時什麼的就更沒有關係了
作者: CardLin (卡林)   2017-05-07 20:42:00
致使農場動物過多而有 Small Overlap 的 Collision 情況!如果時間異常根本就可能會影響農場中的動物繁殖的速度喔!但如果時間異常到有負值的時候根本就會一直重複的繁殖了!當然這是在硬體或作業系統Kernel有BUG的時候才會發生異常還記得千禧年的時候其實喊得很大聲結果其實根本沒有異常!所以其實網路病毒的情況真的要注意與謹慎小心評估再選擇!畢竟有些BIOS擁有一些安全性處理器也有自己的時間容器吧~說錯了,有些CPU為了加速啟動而使用了特殊的開機程序較快這樣較快的結果就有可能使用了不同的時間容器而發生異常!當然網卡若有offload的功能也有自己的時間所以我才換網卡讓我想起我的Marvell的網卡很穩定但有段時間開始亂丟封包我還有換過Intel網卡但是那個驅動的IRQ使用率實在有點高!我還試過Killer的網卡但因為好像沒有放出linux的驅動程式所以最後我是選用了較ASIC大面積的Broadcom網卡才較穩定!大家應該要清楚以前的Realtek在安裝linux的時候不會出現non-free driver的提示,代表Linux較能完整支援舊網路卡!
作者: LPH66 (-6.2598534e+18f)   2017-05-07 21:11:00
…就說了這是遊戲內經過的模擬時間長, 而不是機器時間異常他這個 bug 是在機器時間正常的機器上也會出現 (如一樓)那所以跟機器時間有關的校時 / NTP / GPS 定時 / 網卡連線等等之類的通通無關
作者: CardLin (卡林)   2017-05-07 21:19:00
http://i.imgur.com/DBoGlKk.jpg 建議原PO檢查網卡驅動!!因為在Traffic Offload的時候一定會反覆地與CPU校準時間!CPU發現網卡時間與CPU時間不同的話可能會hold住一段時間!所以在DPC Latency很低的時候代表IRQ通常沒有異常的情況~大家應該要記得以前有個知名的linux系統有lowlatency核心
作者: mamaya3 (mamaya)   2017-05-07 21:32:00
可以去翻他以前的文 別跟他認真了XDDD
作者: softpak (喔喔喔)   2017-05-07 22:32:00
作者: karuru (SHIRO)   2017-05-08 08:02:00
上面到底在供三小
作者: nick5487 (nick5487)   2017-05-08 10:01:00
居然攻略到賣快板來了...
作者: Kenqr (function(){})()   2017-05-08 10:19:00
其實是自動發廢文AI對吧
作者: twosheep0603 (兩羊)   2017-05-08 13:28:00
躁鬱症發作吧 哀
作者: m01a011 (亞瑟)   2017-05-08 15:59:00
上面是複製貼上的感覺...
作者: david50407 (Davy)   2017-05-08 23:43:00
只有我覺得卡林桑可以一直保持驚歎號在最後很厲害嗎XD
作者: aalexx (aalexx.S)   2017-05-09 02:04:00
句尾幾乎都是驚嘆號XD
作者: tonylo2ooo (Logo)   2017-05-10 10:00:00
上面一堆廚,上次把你的project po上去,還被砲
作者: softpak (喔喔喔)   2017-05-10 12:30:00
po到哪被砲啊?我知道我的進度不是很快是蠻想知道哪個中文討論區有在討論的 XD
作者: cras4202tw (cras4202tw)   2017-05-10 22:00:00
我都幾個月重開一次的 spigot 沒出現過你說的問題不解釋創世神伺服器 伺服器跑在 ESXi 本身是 i7-7700k32G RAM 我切割 4核心 4G 記憶體給它系統是 Fedora server 25
作者: softpak (喔喔喔)   2017-05-11 12:26:00
硬體看起來是不差,另外我看了一下規則,可能是生物限制上的問題前幾天去西瓜看 管理員是說大概是2到4個禮拜 甚至更久才會重開他的服跟nl一樣是沒有限制的而我這幾天發現伺服器一直在觸發全面檢查的機制,所以我認為應該是傳送門傳送物品這個功能的關係如果可以的話 麻煩有開服的板友 在lag重開前能否紀錄一下timing的狀況 然後確認伺服器是否有打開傳送門生怪的設定

Links booklink

Contact Us: admin [ a t ] ucptt.com