XGP2.9.x系列造船/防禦造成伺服器死當的BUG修復公告
*01月08日更新:全新的伺服器軟體與環境正式啟用
這大大的減少的伺服器的負擔
因此建造延遲時間由100微秒
縮短為25微秒。
----------------------------------------
12月23日更新:
站長建議各位每隔10秒鐘後再按另一次建造按鈕
這樣會為伺服器的負擔減輕不少
而各位的帳號或星球也不會出現空白畫面的超時情形。
P.S也就是說輸入1000W按建造
之後等個10秒
然後再輸入1000W再按建造....以此類推。
----------------------------------------
12月22日更新:
以下的情況只針對同時間裡
只有一個人在造船或防禦
才有明顯的改善
但同時間裡且同時有
多位玩家連續造船或防禦
那麼伺服器的CPU使用率
又會跟以前一樣是100%
只有改善一點點
於是站長又將建造延遲時間
改為50微秒了
現在每建造1000W的船艦或防禦要花8分鐘左右的時間
雖然建造時間多了不少
但伺服器的負載量大幅度的減少了
且總比死當不能訪問要來得好多了吧?
--------------------
各位玩家們有福囉~
即日起可以不必再忍受
建造數量只有1W以及
還要請GM幫忙代造的痛苦了
經過站長1天的思考與研究後
終於發現是什麼原因
讓遊戲在造船或防禦的時候
讓伺服器死當或者很卡的罪魁禍首了
並不是因為伺服器規格與配備不好所導致
真正原因是因為每建造一艘船艦或一門防禦
中間沒有讓伺服器冷卻的間隔時間
所以才導致伺服器在沒有冷卻間隔時間的情況下
無法瞬間處理大量的SQL指令與數據
所以才導致伺服器出現了死當與很卡的情形發生
現在站長將每建造一艘船艦或一門防禦的
冷卻間隔時間由原本的無冷卻間隔時間
改成了每隔''100萬分之一秒(1微秒)''才建造一艘船艦或防禦
而且站長也將100B和1000B服的最大建造數量改回原本最初的1000W了
現在每建造1000W的船艦或防禦只需花9秒鐘
P.S建造2000W的船艦或防禦要花18秒鐘
建造3000W的船艦或防禦要花27秒鐘.....以此類推.....
對各位來說應該不算太過份吧?
在還沒修復此bug之前
建造1000W的船艦或防禦只需花0秒鐘
瞬間建造好,不用等
但是給伺服器的壓力太沉重了
寧願稍等幾秒鐘的時間
也不要讓伺服器的壓力過大
而導致伺服器死當或者很卡
各位說是不是?
*對本帖如有問題的玩家
或會員們請回帖提出
站長看到後會盡快做回覆!! 這樣就不用等待代造.實在太好了.等個幾秒值得阿{:4_213:} 謝謝A大
辛苦你了~ 原來問題的原因是這樣
不過我認為
更改遊戲造船及防禦的方式才是解決問題的治本方法
例如要造1000W回收船
根據a大的描述
大概是造一艘便要一個sql請求
query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
...... (略9999996條)
query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
這様造一次
sql請求比運作一個月的無插件discuz論壇還多
當然就是虛耗資源
但如果改成一個sql請求完成全部建造
不但建造得更有效率
造一次對伺服器資源使用也是近乎0
query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000
當然這只是基本概念
要進行修改也有一定難度
因為這只考慮到建造時間=0時的情況
如果建造時間>0
就要考慮頁面動態更新之類的一大堆問題
只好希望未來的3.0版會作出改善 今早我只能一次建9999只船.........
我囧了
建10.000.000要按多少次ENTER才可以......(1001次啊!!!!手軟了
之後現在改到9999999我爽死了....(2次而已..... 原來問題的原因是這樣
不過我認為
更改遊戲造船及防禦的方式才是解決問題的治本方法
例如要造1000W回收船
根據a大的描述
大概是造一艘便要一個sql請求
query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
...... (略9999996條)
query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
這様造一次
sql請求比運作一個月的無插件discuz論壇還多
當然就是虛耗資源
但如果改成一個sql請求完成全部建造
不但建造得更有效率
造一次對伺服器資源使用也是近乎0
query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000
當然這只是基本概念
要進行修改也有一定難度
因為這只考慮到建造時間=0時的情況
如果建造時間>0
就要考慮頁面動態更新之類的一大堆問題
只好希望未來的3.0版會作出改善
b1984207 發表於 2010-12-20 09:17 PM http://a950216t.info/discuz/images/common/back.gif
我在遊戲後臺幫玩家代造船艦或防禦的時候
就是像你說的這個概念
只要一個SQL請求便可完成全部的代造
但是要改成只需一個sql請求完成全部建造
的難度性很大且很高
而且有幾個源碼檔案裡的一些代碼
可能甚至要全部改寫
所花費的精力跟技術與時間不少
不過能找出原因與臨時解決方法
已經算不錯了
真正治本方法還是交給
全新的3.0版專業開發團隊
來做處理吧
但3.0版最快可能要等到明年的春季才會發布。 那現在還有代造服務嗎??
((沒有很多時間點的人{:4_179:} 原來問題的原因是這樣
不過我認為
更改遊戲造船及防禦的方式才是解決問題的治本方法
例如要造1000W回收船
...
b1984207 發表於 2010-12-20 09:17 PM http://a950216t.info/discuz/images/common/back.gif
你是不是想這樣
假設用戶輸入傎為a
假設一隻回收船要一秒
query : 回收船+ a, 金屬- 10000*a, 晶體- 6000*a, 重氫- 2000*a 在1*a秒後 本帖最後由 b1984207 於 2010-12-20 10:49 PM 編輯
你是不是想這樣
假設用戶輸入傎為a
假設一隻回收船要一秒
query : 回收船+ a, 金屬- 10000*a, 晶體- 6000* ...
qweasdz 發表於 2010-12-20 10:11 PM http://a950216t.info/discuz/images/common/back.gif
也差不多吧
我的概念是這樣
完成的時間 = 現在時間 + (造船數量*每隻製造時間)
sql query 就這樣... (不肯定格式對不對)
INSERT INTO 造船的資料表(用戶ID,數量,類型,完成時間) VALUES (id,10000000,回收船的代號,完成的時間)
然後就像你那樣減去所用資源
之後在進入造船頁面時
由資料表拿回資料
計算餘下時間
未完成的話就透過javascript進行頁面動態更新餘下時間
直至完成
完成後就在艦隊加上造好的船
然後就可以拿去開戰了...
不過這樣做的缺點就是必須在全部完成後才會得到船
例如一隻一秒, 造3600隻, 就會在1小時後才得到3600隻回收, 過程中擁有回收的數量維持在0
如果用原有方法的話, 未全部完成建造時也可以先拿造好的一部份 終於修正好了 ~ 感謝站長喲 ^^
頁:
[1]
2