找回密碼
 立即註冊
搜尋
熱門搜尋: 活動 交友 discuz
點閱: 3085|回覆: 14

XGP2.9.x系列造船/防禦造成伺服器死當的BUG修復公告

  [複製連結]

等級:25 - 爐火純青

經驗值:0 / 246

魔法值:15036 / 15036

生命值:6%

升級   100%

  • TA的每日心情
    奮斗
    6 小時前
  • 簽到天數: 5980 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 20:34:23 | 顯示全部樓層 |閱讀模式

    馬上註冊,結交更多好友,享用更多功能,讓你輕鬆玩轉社群。

    您需要 登入 才可以下載或檢視,沒有帳號?立即註冊

    ×
    *01月08日更新:
    3 a+ N7 i* ^- N. X: w' f% C: E全新的伺服器軟體與環境正式啟用  Y$ G3 ]( U4 O/ b& j
    這大大的減少的伺服器的負擔; R) E0 J. _( z4 B6 b
    因此建造延遲時間由100微秒- |+ B) b3 b& Y& J( X
    縮短為25微秒。
    5 t. \* p! D" W' H' ~4 N----------------------------------------8 t# X2 S) F* [& M4 W4 M& q
    12月23日更新:; {) q; J- c- w8 `) p
    站長建議各位每隔10秒鐘後再按另一次建造按鈕% Y1 J- d. X6 Z  O& N% }
    這樣會為伺服器的負擔減輕不少: h$ d9 ]3 E. `8 h( t
    而各位的帳號或星球也不會出現空白畫面的超時情形。( [5 f& ?) B3 h9 B  O& x" b
    P.S也就是說輸入1000W按建造" K1 l4 @) H# \3 {
    之後等個10秒* X2 E! Q- t5 f" _6 s
    然後再輸入1000W再按建造....以此類推。
    / @( s! Z3 F2 P* I  A7 o8 ~----------------------------------------8 Z6 w% x9 m* L- o7 S: x# `
    12月22日更新:3 H. Q1 `1 f. ~& s' H
    以下的情況只針對同時間裡
    1 ?$ v' S+ V# p1 n6 p6 x' l只有一個人在造船或防禦+ @* F- k# K/ p* y" s3 B
    才有明顯的改善
      z/ h+ p5 i2 \( K' c. ]但同時間裡且同時有; V: j0 B/ z/ x, \
    多位玩家連續造船或防禦% x+ P% f6 U$ v  `
    那麼伺服器的CPU使用率
    0 ?3 c! B  L) t* n. [9 v又會跟以前一樣是100%% C+ {* c. r% V2 l4 a: R. U
    只有改善一點點. o! D4 O- r! u1 H
    於是站長又將建造延遲時間
    $ v; @5 ]/ i( P5 |改為50微秒了+ b) C4 R2 z4 B5 K: O. U
    現在每建造1000W的船艦或防禦要花8分鐘左右的時間$ c7 A& G$ F+ @- M. B
    雖然建造時間多了不少
    ) Q  I6 V8 |8 v6 J! ]但伺服器的負載量大幅度的減少了
    ' K  }1 h. r% }! t  o, j7 Z且總比死當不能訪問要來得好多了吧?
    ' J! t8 E0 O% I+ D: p5 a' I5 g--------------------
    , H& h5 Z0 }$ X8 z各位玩家們有福囉~
    8 p+ N& c6 `/ j$ U5 Y7 a即日起可以不必再忍受
    . l) p( f$ X0 z6 U1 V2 f建造數量只有1W以及
    4 y6 a3 x% [; O; A5 S還要請GM幫忙代造的痛苦了) z: q/ z( g$ Q
    經過站長1天的思考與研究後# F5 K) `0 C) e5 N- H
    終於發現是什麼原因: s* o8 W9 d3 x. v( B' ]% f" z5 A) z
    讓遊戲在造船或防禦的時候  p6 z% H5 W3 H% i
    讓伺服器死當或者很卡的罪魁禍首了
    5 d' ~5 q8 ]& C4 r2 g: _並不是因為伺服器規格與配備不好所導致

    - F" K# U* H6 |9 \! r7 q& [真正原因是因為每建造一艘船艦或一門防禦- ~5 F1 s2 l( n* l+ V- J3 o
    中間沒有讓伺服器冷卻的間隔時間! n- [3 }. M, U: y) _3 Q7 f0 {: j- m
    所以才導致伺服器在沒有冷卻間隔時間的情況下
    3 u8 V) ^# a3 D( k9 Q無法瞬間處理大量的SQL指令與數據. ^7 m, S# y2 A- i1 J
    所以才導致伺服器出現了死當與很卡的情形發生

    + o: t+ h; F- }6 x現在站長將每建造一艘船艦或一門防禦的
    / F9 G4 W0 f* O; ]8 E/ ~  Y冷卻間隔時間由原本的無冷卻間隔時間: f3 E, q# |% B* m5 _$ `0 E- b8 K% x1 o
    改成了每隔''100萬分之一秒(1微秒)''才建造一艘船艦或防禦
    & Y! [: B7 \; Q, u2 O6 l! U- X
    而且站長也將100B和1000B服的最大建造數量改回原本最初的1000W了
    # g% c, y5 }$ @3 k% r, \& ]現在每建造1000W的船艦或防禦只需花9秒鐘
    4 B3 R; }5 L5 A) g- pP.S建造2000W的船艦或防禦要花18秒鐘8 m2 l# N& }+ c
    建造3000W的船艦或防禦要花27秒鐘.....以此類推.....6 h; o3 M5 P  C  v& r5 `$ j
    對各位來說應該不算太過份吧?

    * Y( n6 D/ B) {" y/ Q% W在還沒修復此bug之前
    ' D# H% y6 b* F- ]7 Z建造1000W的船艦或防禦只需花0秒鐘
    6 A3 o. z7 V% N( d! e3 t6 i3 {& M瞬間建造好,不用等
    - H* \; P, a' e% \但是給伺服器的壓力太沉重了/ O, f0 y! T& N, O6 V; r
    寧願稍等幾秒鐘的時間! v5 Q4 t8 ^4 h' [* A/ ~1 V0 Q
    也不要讓伺服器的壓力過大' L: ?! s4 \6 u9 |" J
    而導致伺服器死當或者很卡& g" i+ H: i% c( |3 a0 P# z
    各位說是不是?

    & U$ c/ x5 D3 p1 P1 n- b+ G% i, C# t) F6 W' \2 Q
    *對本帖如有問題的玩家
    8 j: D( y+ _3 M4 e/ H2 I- ]! A或會員們請回帖提出
    " q, ]2 G( e+ w0 b8 _; D: C- G站長看到後會盡快做回覆!!

    文章的最近訪客

    等級:18 - 已有大成

    經驗值:0 / 171

    魔法值:4639 / 10362

    生命值:1%

    升級   100%

  • TA的每日心情

    2012-12-28 00:53
  • 簽到天數: 7 天

    [LV.3]偶爾看看II

    發表於 2010-12-20 20:40:14 | 顯示全部樓層
    這樣就不用等待代造.實在太好了.等個幾秒值得阿

    等級:15 - 融會貫通

    經驗值:0 / 149

    魔法值:2457 / 9114

    生命值:9%

    升級   0%

  • TA的每日心情
    無聊
    2012-7-15 21:50
  • 簽到天數: 16 天

    [LV.4]偶爾看看III

    發表於 2010-12-20 20:56:23 | 顯示全部樓層
    謝謝A大
    % v$ a1 T  |+ A. y辛苦你了~

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:12215 / 12215

    生命值:3%

    升級   100%

  • TA的每日心情
    開心
    2025-9-3 21:15
  • 簽到天數: 4406 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:17:29 | 顯示全部樓層
    原來問題的原因是這樣
    " ?+ o8 i& B( J- q不過我認為2 A5 _) [5 f  A$ v' Y
    更改遊戲造船及防禦的方式才是解決問題的治本方法
    $ N  t1 g/ S4 K' ~. ^  A/ O5 `6 }+ T" `, p- [* p5 o: i9 g
    例如要造1000W回收船# B0 v8 @1 [$ g* m/ @. B7 Z
    根據a大的描述
    $ ^6 d  B: X2 ?1 X大概是造一艘便要一個sql請求
    2 f% L$ z; |7 }, d- q0 E( A6 N* s) s4 u
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    $ ]( T! ], m4 y% @8 y" j3 mquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    4 r4 s1 t3 X7 q( m8 Q  K) gquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    ( p$ j3 \( `  w8 v9 m6 i- K8 q...... (略9999996條)* y+ T; `# A: M
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000& a1 T# @# V5 h8 [) n
    # t4 ]* h- N' q
    這様造一次5 }# }6 Q/ n% b
    sql請求比運作一個月的無插件discuz論壇還多" C& b0 k9 H* o  h& l
    當然就是虛耗資源
    4 X( J( e( \0 h: L2 t
    8 N1 g9 w, i, X5 j/ {. e但如果改成一個sql請求完成全部建造, c6 y8 B0 S+ R
    不但建造得更有效率
    $ Z) Y$ }2 \* D, h4 Y$ n造一次對伺服器資源使用也是近乎0
    + q$ G' w5 n8 N" b& Q/ ]" e$ c8 N+ `" i/ p! ]
    query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000
    0 D: g7 {" U3 \! z
      D8 p1 F& l8 U/ `. \5 R' c, Y9 m/ x當然這只是基本概念
    ! H3 k' f* P& N: U5 K' p& _  Q要進行修改也有一定難度+ l6 g/ y3 |0 O: `4 k
    因為這只考慮到建造時間=0時的情況" N0 k( z2 Y4 U" [6 A
    如果建造時間>0/ ]. t. d9 ?) \7 V8 g
    就要考慮頁面動態更新之類的一大堆問題
    # w( S6 [) ~6 _3 P+ H( T只好希望未來的3.0版會作出改善

    等級:8 - 駕輕就熟

    經驗值:0 / 73

    魔法值:171 / 4202

    生命值:3%

    升級   3%

    該用戶從未簽到

    發表於 2010-12-20 21:38:25 | 顯示全部樓層
    今早我只能一次建9999只船.........
    ) k, X, M0 M3 W! f$ h我囧了( y" \2 |4 H# k* C* d! k' M
    建10.000.000要按多少次ENTER才可以......(1001次啊!!!!手軟了7 x9 f+ S" c$ H4 s( U
    7 K( e* _* k# X/ Y
    之後現在改到9999999我爽死了....(2次而已.....

    等級:25 - 爐火純青

    經驗值:0 / 246

    魔法值:15036 / 15036

    生命值:6%

    升級   100%

  • TA的每日心情
    奮斗
    6 小時前
  • 簽到天數: 5980 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:40:29 | 顯示全部樓層
    原來問題的原因是這樣
    % l$ T0 N& k0 t" n: c4 v: a. P不過我認為
    8 r' P4 G' k" o. D, f' k% n更改遊戲造船及防禦的方式才是解決問題的治本方法% t, N# F. n) V4 y4 y

    ) }2 Q# p. I% L4 H例如要造1000W回收船
    % W* r% j9 C) W+ m0 r8 [( d1 m, s3 n根據a大的描述
    7 v( R1 p/ d/ B, G9 A( d- f大概是造一艘便要一個sql請求
    ) Q9 U# z0 l8 ^1 M  Z7 r6 v* O+ S
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-20007 e, S2 z# v; k/ ~6 }; v
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
      V5 l$ B; V; ~" Dquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-20001 F# v( |, C9 P( O% L
    ...... (略9999996條)
    1 D$ B. f! Y" K- M& d, P1 Mquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    7 N# i4 y) P; l
    " ~% |; g0 l" n這様造一次! n7 F( w3 G6 s! }
    sql請求比運作一個月的無插件discuz論壇還多
    % P6 C5 N, ^% w6 [! [$ i當然就是虛耗資源
    / D, M- ~) S* r8 S0 b6 E) V+ \
    3 Z% k/ W9 m" N1 s$ f. s4 L' g2 b* \但如果改成一個sql請求完成全部建造6 M; I9 I) d) r6 N
    不但建造得更有效率
    3 X! n0 j' f; n' r1 H' p造一次對伺服器資源使用也是近乎0

    / J; K6 G& F; g/ C0 @, `9 u; @7 s4 n6 A. K" r
    query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000: I+ e: i" f$ i
    ' [2 j( [1 [' }- C
    當然這只是基本概念
    ' C; d. \4 w; N1 W9 d$ |要進行修改也有一定難度
    8 v; l; ?, c2 v' ~
    因為這只考慮到建造時間=0時的情況; Q* ^$ S1 u/ v
    如果建造時間>0
    3 g% Q$ p9 W! o. N1 j" D- E就要考慮頁面動態更新之類的一大堆問題
    ; t9 W- y; K- |& c: ?8 [7 J. {只好希望未來的3.0版會作出改善
    $ c+ J5 I4 T  Z; m8 Eb1984207 發表於 2010-12-20 09:17 PM
    : G3 K2 q  }$ u3 U$ A1 V7 _" _
    我在遊戲後臺幫玩家代造船艦或防禦的時候4 c( d! j7 a; J
    就是像你說的這個概念4 e7 i" U6 g! e' y* q
    只要一個SQL請求便可完成全部的代造
    % \% a6 F2 f9 m. m8 q; m8 M但是要改成只需一個sql請求完成全部建造
    3 t3 L) B+ q; C, x8 T的難度性很大且很高
    7 a8 l9 J% k# n& X  b; P5 I而且有幾個源碼檔案裡的一些代碼
    $ x2 S' d: I& G可能甚至要全部改寫4 Z/ D* `) j" ~: G' F
    所花費的精力跟技術與時間不少3 e7 Z8 {7 B1 l- L
    不過能找出原因與臨時解決方法+ z' w. J+ {8 w$ g* a/ ?
    已經算不錯了. r7 i8 c6 b) w. F. [- O
    真正治本方法還是交給
    % C: Q. o6 `+ f0 R3 N全新的3.0版專業開發團隊
    ; s  e7 ~2 g7 Q( ?4 Y來做處理吧1 j. C, j1 U+ q6 B$ m  j% N
    但3.0版最快可能要等到明年的春季才會發布。

    等級:12 - 出類拔萃

    經驗值:0 / 119

    魔法值:942 / 6937

    生命值:9%

    升級   91.4%

  • TA的每日心情

    2018-4-4 18:32
  • 簽到天數: 103 天

    [LV.6]常住居民II

    發表於 2010-12-20 22:03:07 | 顯示全部樓層
    那現在還有代造服務嗎??
    8 n8 t8 `) |- J7 ^& P((沒有很多時間點的人

    等級:10 - 出類拔萃

    經驗值:0 / 92

    魔法值:373 / 5378

    生命值:2%

    升級   5.95%

  • TA的每日心情
    慵懶
    2011-12-10 00:10
  • 簽到天數: 1 天

    [LV.1]初來乍到

    發表於 2010-12-20 22:11:06 | 顯示全部樓層
    原來問題的原因是這樣- C7 t& t( ~, F9 I: U
    不過我認為6 d% U$ n# X3 n5 D
    更改遊戲造船及防禦的方式才是解決問題的治本方法
    % z  _- ?0 }5 d% t
    ! }7 @8 W6 ^" \$ P( F' `# F例如要造1000W回收船9 b0 x4 M- j) ]  }' [
    ...3 r- q3 O" H3 c
    b1984207 發表於 2010-12-20 09:17 PM
    ! \/ O4 J$ O+ @0 U1 A0 U
    你是不是想這樣
    ) e2 m6 D4 Y6 C. ]7 X3 _4 P1 ~8 S# U假設用戶輸入傎為a
    5 `( \, N( m: G- h假設一隻回收船要一秒% ]* J9 [6 c# Z
    query : 回收船+ a, 金屬- 10000*a, 晶體- 6000*a, 重氫- 2000*a 在1*a秒後

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:12215 / 12215

    生命值:3%

    升級   100%

  • TA的每日心情
    開心
    2025-9-3 21:15
  • 簽到天數: 4406 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 22:39:35 | 顯示全部樓層
    本帖最後由 b1984207 於 2010-12-20 10:49 PM 編輯
    % m' n$ h5 L0 V2 n* H  r
    你是不是想這樣
    ( z! }7 `# s+ e假設用戶輸入傎為a
    " L( `$ _& @  h3 `假設一隻回收船要一秒
    0 k; {/ q4 q8 k- Bquery : 回收船+ a, 金屬- 10000*a, 晶體- 6000* ...# J. a. `" p0 F# g2 d
    qweasdz 發表於 2010-12-20 10:11 PM
    : ^5 Q( N: D7 c" L( l* V1 V

    4 @% x: y7 U( Q也差不多吧
    1 V5 R) L5 A3 Z我的概念是這樣. y2 D6 \+ n( M/ G
    / j( }. l) O  C% g2 v
    完成的時間 = 現在時間 + (造船數量*每隻製造時間)- V4 y. H8 z8 d( Z8 H9 K/ |
    0 t1 k1 f  y# n2 A/ f% \- ~
    sql query 就這樣... (不肯定格式對不對)% |6 E* X/ W. f; ?6 K& T
    INSERT INTO 造船的資料表(用戶ID,數量,類型,完成時間) VALUES (id,10000000,回收船的代號,完成的時間)- }) Y" A& \# _4 t. E5 T* i) z
    , s# x" `, _9 u0 y8 w7 ~( x( v9 q2 q
    然後就像你那樣減去所用資源
    5 |( m; ~' q; r  g7 f
    3 }" o7 B$ W. q& c之後在進入造船頁面時- @' }8 U- M% Q# h/ X: o- Z
    由資料表拿回資料
    ' T( E& G) h8 O% A! E5 X計算餘下時間0 r, i" ^2 }; M4 d8 _! M: D& x
    未完成的話就透過javascript進行頁面動態更新餘下時間. ]2 N) h" S! o, \  v' Z
    直至完成
    $ L8 T6 r" ^0 w- E完成後就在艦隊加上造好的船: p3 z1 U9 i6 A* l$ [! }
    然後就可以拿去開戰了...: H5 [1 U, ^* T6 G4 J/ P
    5 i" ~& o6 I, L, d  E
    不過這樣做的缺點就是必須在全部完成後才會得到船
    6 k# f3 C* c1 }4 w例如一隻一秒, 造3600隻, 就會在1小時後才得到3600隻回收, 過程中擁有回收的數量維持在0
    0 V5 g2 ~: J  _4 d+ x, ~" |: Y如果用原有方法的話, 未全部完成建造時也可以先拿造好的一部份

    評分

    參與人數 1聲望 +50 現金 +200 收起 理由
    admin + 50 + 200 我很贊同

    檢視全部評分

    等級:6 - 駕輕就熟

    經驗值:0 / 59

    魔法值:90 / 3384

    生命值:9%

    升級   24%

  • TA的每日心情

    2013-4-1 01:09
  • 簽到天數: 16 天

    [LV.4]偶爾看看III

    發表於 2010-12-20 22:41:15 | 顯示全部樓層
    終於修正好了 ~ 感謝站長喲 ^^
    您需要登入後才可以回覆文章 登入 | 立即註冊

    本版積分規則

    QQ|Archiver|手機版|禁閉室|MyXNova (原 myxnova.com)

    GMT+8, 2026-8-6 07:12 , Processed in 0.020104 second(s), 13 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2026 Discuz! Team.

    快速回覆 返回頂端 返回列表