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

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

  [複製連結]

等級:25 - 爐火純青

經驗值:0 / 246

魔法值:15090 / 15090

生命值:6%

升級   100%

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

    [LV.Master]伴壇終老

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

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

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

    ×
    *01月08日更新:$ v) Y7 t4 b) V% W$ P; d
    全新的伺服器軟體與環境正式啟用
    $ ?$ g$ Z/ I  U這大大的減少的伺服器的負擔* s' a7 K' P( S7 Z0 z" Z& B* P
    因此建造延遲時間由100微秒# M, v! h2 U1 t5 H
    縮短為25微秒。: p. [( ~8 F( b& r) E% Z( i
    ----------------------------------------
    5 N$ Z0 O* y- _; ?6 J! F( e12月23日更新:
    . l5 _6 i1 E7 L站長建議各位每隔10秒鐘後再按另一次建造按鈕
    ) z3 K5 G$ d2 {- }* K& h3 H" w$ ]這樣會為伺服器的負擔減輕不少/ D& a; {% x) Q  ^
    而各位的帳號或星球也不會出現空白畫面的超時情形。2 c/ I9 ]1 e" J; T1 c
    P.S也就是說輸入1000W按建造  L% U) R" g1 j$ ?2 x' Q, \
    之後等個10秒
    3 O! g; z: d3 V4 u7 s% E2 _然後再輸入1000W再按建造....以此類推。
    7 H5 U# R1 U9 p% m1 k----------------------------------------
    ( l" Z  R5 Y4 ^* \4 l  b12月22日更新:
    ; f  m7 \7 \* l$ u* f% j9 I. I以下的情況只針對同時間裡- w) g0 O% z( t
    只有一個人在造船或防禦+ M0 }$ W5 {* g* Z: J4 t$ z
    才有明顯的改善
    * i9 ^. [  n3 i! h0 U4 ^: z但同時間裡且同時有
    % Z; m- V* }" g5 T% s多位玩家連續造船或防禦$ i/ [0 o5 K- g1 w. X8 V
    那麼伺服器的CPU使用率5 H+ L, w( F" }/ }7 N; q1 L+ R
    又會跟以前一樣是100%/ N1 y3 O1 |) j. l4 @
    只有改善一點點6 N  W9 c, a) j9 v4 o
    於是站長又將建造延遲時間
    ' d* y$ d$ L$ V2 Z3 N8 v改為50微秒了$ ?3 d0 q1 H  J
    現在每建造1000W的船艦或防禦要花8分鐘左右的時間
    : O+ I3 ~7 u" V6 Q' n& u雖然建造時間多了不少0 k. Q: J( j+ u* B$ ~6 t2 H1 c
    但伺服器的負載量大幅度的減少了
    ' t: {8 ?3 W2 j& ?且總比死當不能訪問要來得好多了吧?
    ) `3 G, X: C2 k  w& g/ V* P6 b--------------------
    4 K' L1 R3 q6 h; S各位玩家們有福囉~
    " m+ R5 a  `0 o即日起可以不必再忍受
    ; W; V. Z8 Z% }0 b% P- k" a4 @建造數量只有1W以及/ y, y1 G; N0 x
    還要請GM幫忙代造的痛苦了9 S/ t4 ~' S- K, `
    經過站長1天的思考與研究後
    6 o6 U& z/ }7 }& t( I( [4 y終於發現是什麼原因- h4 y* j- r5 I+ {# U' a3 N
    讓遊戲在造船或防禦的時候
    * g( K, g% c2 W讓伺服器死當或者很卡的罪魁禍首了7 P, x# W! h* K, d% B+ G# ?" |
    並不是因為伺服器規格與配備不好所導致
    3 Q6 s, Q! \$ H5 v. V9 K6 {: {! S
    真正原因是因為每建造一艘船艦或一門防禦
    ) \. [$ @: k0 n- B中間沒有讓伺服器冷卻的間隔時間
    5 |$ E: b& q0 W/ _7 |/ l所以才導致伺服器在沒有冷卻間隔時間的情況下7 A' W9 i8 f- y- a: w$ Q1 s
    無法瞬間處理大量的SQL指令與數據
    3 {" @' H+ H' x& W. d" Z1 \& k所以才導致伺服器出現了死當與很卡的情形發生
    7 t, P9 p  ?) y8 t& B
    現在站長將每建造一艘船艦或一門防禦的$ _  A& r2 g9 W/ j9 O' a; t. p/ h
    冷卻間隔時間由原本的無冷卻間隔時間/ |( J% H6 A% y( W
    改成了每隔''100萬分之一秒(1微秒)''才建造一艘船艦或防禦

    1 k1 C& @; u; s, {4 o- Y2 I而且站長也將100B和1000B服的最大建造數量改回原本最初的1000W了
    2 V0 o. y2 ~& S2 ^* ^+ y: @0 s& z現在每建造1000W的船艦或防禦只需花9秒鐘. S' Z& }# V5 ?2 _( ]% m  ~
    P.S建造2000W的船艦或防禦要花18秒鐘
    . P  u$ ^" B0 F2 }+ L3 L1 {/ t建造3000W的船艦或防禦要花27秒鐘.....以此類推.....
    + U; G! G7 z9 L  M對各位來說應該不算太過份吧?

    ( v1 S: Y& o  E3 Q- a# N& u- Q2 W在還沒修復此bug之前
    % Y( `4 ]5 B% @+ c建造1000W的船艦或防禦只需花0秒鐘
    * Q- }$ v8 ^( C; q瞬間建造好,不用等/ _- x0 e' t: M% I' y6 X1 a
    但是給伺服器的壓力太沉重了6 g0 e4 r, R- `! f  H
    寧願稍等幾秒鐘的時間
    # y0 t( ^/ ]! G5 S也不要讓伺服器的壓力過大4 v& @) u, }  q1 p# ]& \
    而導致伺服器死當或者很卡9 Z2 @2 C0 C; h) A7 c  M+ H3 ~
    各位說是不是?
    ( [9 s9 T- H) c( D! q! J% P
    # {/ K4 x  P1 V( z! {  ^
    *對本帖如有問題的玩家
    9 ~0 |# t1 Q7 y0 `或會員們請回帖提出
    ! R! ~. w( w3 t8 n" @站長看到後會盡快做回覆!!

    文章的最近訪客

    等級:18 - 已有大成

    經驗值:0 / 171

    魔法值:4639 / 10396

    生命值:1%

    升級   100%

  • TA的每日心情

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

    [LV.3]偶爾看看II

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

    等級:15 - 融會貫通

    經驗值:0 / 149

    魔法值:2457 / 9144

    生命值:9%

    升級   0%

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

    [LV.4]偶爾看看III

    發表於 2010-12-20 20:56:23 | 顯示全部樓層
    謝謝A大% W0 g! {' K+ H) w. ]
    辛苦你了~

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:12259 / 12259

    生命值:3%

    升級   100%

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

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:17:29 | 顯示全部樓層
    原來問題的原因是這樣
    : L) Y/ j( W8 n, F2 N不過我認為
    5 ?2 x: K( p( D1 l更改遊戲造船及防禦的方式才是解決問題的治本方法8 q2 {% O+ a0 @& `; o2 R

    . B7 F, g( f7 o/ S例如要造1000W回收船; g5 X" P  p+ ]5 a8 ]
    根據a大的描述
    : w- A3 o) d+ Y) L* m大概是造一艘便要一個sql請求
    2 G" I0 [7 |) `' R0 j+ V* z& _
    ! w  ^1 i3 J+ B6 y4 y7 U  Xquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000  X2 |5 ?; m- ~" ^% ~. V+ K
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000* y" U9 L  d/ M1 J
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    $ e4 U8 {, g: O# B! |( \9 E...... (略9999996條)) U0 _' U+ X; _/ D8 F3 C
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000! W8 K0 \# Z: Q  V9 o! s
    8 `, ]8 N* K- U
    這様造一次% \1 X$ D8 z" \  g8 \* l* ^) @" Z
    sql請求比運作一個月的無插件discuz論壇還多
    6 n. x' f7 _7 g- p當然就是虛耗資源
    & m9 T1 w. S- D* q$ \% S
    - u; v& A6 X: y: W, l0 h) y但如果改成一個sql請求完成全部建造
    , ^2 N! q+ T" P$ R不但建造得更有效率
    : n5 k. {& d2 T/ r' Q造一次對伺服器資源使用也是近乎0
    8 b" S, {. a+ P; F# ~: M8 x5 ]( J. V
    ; N) J7 I6 t( B3 _3 F* {1 ?) d$ @& q7 nquery : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000
    + R- p$ J! C; v- J
    % V$ Q* c; f1 h, O當然這只是基本概念
    , ?0 v. D* D0 Y0 T要進行修改也有一定難度6 \) o* Y+ m' B) k+ O) s& Q/ ?8 s
    因為這只考慮到建造時間=0時的情況
    % R" |5 f$ e# `# k  }/ G如果建造時間>0! L" N5 q! Y- i% L4 v- l' L2 Z& L) w
    就要考慮頁面動態更新之類的一大堆問題
    - b4 t0 p9 G, _5 n7 b8 i! O只好希望未來的3.0版會作出改善

    等級:8 - 駕輕就熟

    經驗值:0 / 73

    魔法值:171 / 4217

    生命值:3%

    升級   3%

    該用戶從未簽到

    發表於 2010-12-20 21:38:25 | 顯示全部樓層
    今早我只能一次建9999只船.........
    . k" i8 y" _/ Q( w) B5 ?# W+ D1 c我囧了
    4 O; R! Z3 ~# a: \% {% o建10.000.000要按多少次ENTER才可以......(1001次啊!!!!手軟了
    1 W  |" d2 J& M( h" |* `6 m/ k# c& l7 H6 x, t8 s' _. D
    之後現在改到9999999我爽死了....(2次而已.....

    等級:25 - 爐火純青

    經驗值:0 / 246

    魔法值:15090 / 15090

    生命值:6%

    升級   100%

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

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:40:29 | 顯示全部樓層
    原來問題的原因是這樣
    3 E) m! b" P2 N7 Y5 Y! L不過我認為
    2 \. S; u! O. z' v' o8 G更改遊戲造船及防禦的方式才是解決問題的治本方法8 r7 p  a, D, O* X3 `
    1 ^4 Y! ^8 f! S* V* N
    例如要造1000W回收船
    . L: y$ K$ U& p3 K, e根據a大的描述
    # D0 q: Q# l+ r- O. u大概是造一艘便要一個sql請求
    . p. A( ?+ y7 h3 d2 C! U9 i& [0 T0 n8 {' ^& f- L
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000* @) G  d7 A7 w2 q) ^
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000& Y5 S( o  w3 k) z, n
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000  o/ d, j) Z9 e6 W# N( N
    ...... (略9999996條)
    / r+ j& |4 R9 Z, ^  h$ rquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    0 x' n. d! `2 D1 r( N' U/ P( x" n
    # Z7 m3 F: n: d2 y/ x; j這様造一次7 H+ J5 }+ E' E. c/ n
    sql請求比運作一個月的無插件discuz論壇還多
    " l3 v# m! ]. g1 |! G當然就是虛耗資源- U5 k6 r' }% o, L

    8 F4 z& G- c: ]& q9 n) R但如果改成一個sql請求完成全部建造
    * S4 Z2 i) U) I; D  l8 y不但建造得更有效率: l+ N& k" t% T4 Y
    造一次對伺服器資源使用也是近乎0
    / O9 Y. L* J8 a* \

    ; g6 N" V7 T5 @, ], Yquery : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000
    9 ]% g/ }9 H: t* \& Z9 y+ U" e' |
    8 L6 }+ w( r+ [$ T- S$ r* o當然這只是基本概念% T, Z" H5 b4 F; F4 b
    要進行修改也有一定難度

    $ g1 ^$ `( ], u& `* r5 g* ?因為這只考慮到建造時間=0時的情況( T- n+ C( W  v. D% A/ z& t
    如果建造時間>0
    ! c2 B8 f3 T8 J+ V" m就要考慮頁面動態更新之類的一大堆問題
    ( x5 G+ T* y) e. t! }" Z只好希望未來的3.0版會作出改善, D3 r2 a  k( ~
    b1984207 發表於 2010-12-20 09:17 PM
    ) A6 M5 V  \; [% }
    我在遊戲後臺幫玩家代造船艦或防禦的時候
    ) }! N$ R7 Q5 [) z* i就是像你說的這個概念
    8 _+ I# e. f2 r2 B, b( a# l% w3 R只要一個SQL請求便可完成全部的代造/ k9 f+ E( ?5 e8 \  f
    但是要改成只需一個sql請求完成全部建造
    " T" l& x/ v7 C的難度性很大且很高
    ; ^# ~1 p3 V; Y6 @2 O5 Z9 h0 T1 p而且有幾個源碼檔案裡的一些代碼/ [' i$ w: d* K
    可能甚至要全部改寫. k! F' b4 Y2 D, K, w3 l& l
    所花費的精力跟技術與時間不少; B' T. k1 A  Y: M- y6 `, o
    不過能找出原因與臨時解決方法
    : {6 n9 d& D' y* K% |5 A, a( z已經算不錯了
    9 Z' L# y, k4 z真正治本方法還是交給
    / e% C! E  N4 n/ c1 s+ a全新的3.0版專業開發團隊5 x9 u% [1 \- [4 k
    來做處理吧0 S. v4 T) C1 r+ K" |9 W
    但3.0版最快可能要等到明年的春季才會發布。

    等級:12 - 出類拔萃

    經驗值:0 / 119

    魔法值:942 / 6961

    生命值:9%

    升級   91.4%

  • TA的每日心情

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

    [LV.6]常住居民II

    發表於 2010-12-20 22:03:07 | 顯示全部樓層
    那現在還有代造服務嗎??7 N- r1 I- |5 [4 A# B- G  e
    ((沒有很多時間點的人

    等級:10 - 出類拔萃

    經驗值:0 / 92

    魔法值:373 / 5397

    生命值:2%

    升級   5.95%

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

    [LV.1]初來乍到

    發表於 2010-12-20 22:11:06 | 顯示全部樓層
    原來問題的原因是這樣$ h4 `. l' @1 s! U7 e
    不過我認為
    / V* T8 ^* _; [) c更改遊戲造船及防禦的方式才是解決問題的治本方法
    ! ^& ^2 v9 Q( K
    + q" e+ i( p9 w- ?1 h+ ~例如要造1000W回收船
    $ k4 g0 z' h7 i$ E; B7 K; \8 s, m .... E4 P; X; F) D, F6 S1 K
    b1984207 發表於 2010-12-20 09:17 PM

    : P: U' K& r5 j4 q  C4 S5 ]( C你是不是想這樣
    ) B. X- a" [8 L2 @. ?* @* Z假設用戶輸入傎為a
    ; |, o; f1 j' ]6 w  e) e2 S, a假設一隻回收船要一秒& Q: F. Z8 K5 s  z/ t: |6 d
    query : 回收船+ a, 金屬- 10000*a, 晶體- 6000*a, 重氫- 2000*a 在1*a秒後

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:12259 / 12259

    生命值:3%

    升級   100%

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

    [LV.Master]伴壇終老

    發表於 2010-12-20 22:39:35 | 顯示全部樓層
    本帖最後由 b1984207 於 2010-12-20 10:49 PM 編輯 " ~  [! u3 l1 o! d- l, A
    你是不是想這樣
    % {8 H. d$ J/ s; A( `假設用戶輸入傎為a5 J5 }7 g. }2 H' Q( t3 o
    假設一隻回收船要一秒
    , y# e* q/ ^0 C; S: m- c* ^query : 回收船+ a, 金屬- 10000*a, 晶體- 6000* ...
    3 D, d9 ^0 R, q0 e  o% g  C5 v1 Lqweasdz 發表於 2010-12-20 10:11 PM
    7 J5 C# G! \. r1 p6 S  ]/ X" w

    & `5 l8 l0 x$ _: u  r4 ^( }; k5 q也差不多吧
    ; D; i1 n9 ?. e. O  i* H9 I我的概念是這樣
    % v1 T( r( F0 R$ D1 G0 q0 }5 S* y; H* a% U& k* @' X; V! w
    完成的時間 = 現在時間 + (造船數量*每隻製造時間)$ d% ~! l' q9 n9 Q
    1 n' r; ~* E* D7 Q5 Z# ^3 G$ p9 _
    sql query 就這樣... (不肯定格式對不對)
    3 |3 F* H1 m, \, ZINSERT INTO 造船的資料表(用戶ID,數量,類型,完成時間) VALUES (id,10000000,回收船的代號,完成的時間)
    . r  c0 P9 g6 t- M0 ?. W
    / m0 B) I( t1 B8 x2 R然後就像你那樣減去所用資源
    : U4 z" N: Y, F$ B0 Q3 @4 I& [9 W$ L- p8 Q2 i. k9 a0 I; ]
    之後在進入造船頁面時# z% R! B+ T9 y# d  T1 s
    由資料表拿回資料  s9 a% J3 S) p6 D; n
    計算餘下時間
    / j# v! {3 A, ~  s# X未完成的話就透過javascript進行頁面動態更新餘下時間+ `. K/ K/ ]9 P! C7 \/ }/ J/ M. \1 G
    直至完成; z+ Z, F9 ]: G' {
    完成後就在艦隊加上造好的船5 \) s$ _: A: S& P9 j0 I# ?
    然後就可以拿去開戰了...* S# s8 K4 J2 H, o

    + y  f0 `+ w4 v不過這樣做的缺點就是必須在全部完成後才會得到船
    5 R" [4 u) A  T1 K例如一隻一秒, 造3600隻, 就會在1小時後才得到3600隻回收, 過程中擁有回收的數量維持在04 c/ L6 q$ D" J! O% a
    如果用原有方法的話, 未全部完成建造時也可以先拿造好的一部份

    評分

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

    檢視全部評分

    等級:6 - 駕輕就熟

    經驗值:0 / 59

    魔法值:90 / 3396

    生命值: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-26 11:49 , Processed in 0.017861 second(s), 13 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2026 Discuz! Team.

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