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

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

  [複製連結]

等級:25 - 爐火純青

經驗值:0 / 245

魔法值:13942 / 13942

生命值:5%

升級   100%

  • TA的每日心情
    奮斗
    昨天 14:36
  • 簽到天數: 5628 天

    [LV.Master]伴壇終老

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

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

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

    ×
    *01月08日更新:
    . S6 t: ?4 s! o1 q. `全新的伺服器軟體與環境正式啟用9 O6 c! O' q5 h( ^0 W: A& o
    這大大的減少的伺服器的負擔/ b3 [* s) D0 x0 @; @
    因此建造延遲時間由100微秒5 ^$ H/ d6 q6 w
    縮短為25微秒。  A, N7 M" y& i
    ----------------------------------------
    / c. m$ K) T: v2 a12月23日更新:
    0 d2 \* A- z2 M站長建議各位每隔10秒鐘後再按另一次建造按鈕
    . p1 n, S8 Q- a% G這樣會為伺服器的負擔減輕不少
    5 L+ Y( e- ^1 t: S而各位的帳號或星球也不會出現空白畫面的超時情形。
    ! p8 o& N8 a, d$ H4 N3 lP.S也就是說輸入1000W按建造3 P- r' d  |! n8 D# U# O
    之後等個10秒$ U! {' b1 X. M! p& a7 X
    然後再輸入1000W再按建造....以此類推。( z9 w3 ]1 _8 e4 [3 n/ ]
    ----------------------------------------. z! \' F5 |  w4 B
    12月22日更新:: B: J. s6 d7 `0 e1 Q2 S
    以下的情況只針對同時間裡
    1 t; z/ Q, O" x) ]% Y2 a" w只有一個人在造船或防禦  L" G$ n4 U0 z9 V  e! ~
    才有明顯的改善. _( H" x3 Q6 \6 J' @9 |8 s
    但同時間裡且同時有
    ) n( a# y: z/ L3 Z1 {' Y: P多位玩家連續造船或防禦
    : w8 D3 N) ]# J  B+ _% h. K那麼伺服器的CPU使用率
    & u+ o  ^% p7 T' @- W又會跟以前一樣是100%
    , T) z" A/ [4 U1 l只有改善一點點
    " R9 q/ }+ D# o於是站長又將建造延遲時間2 {) r1 M2 R6 r/ ~6 J
    改為50微秒了- r% j+ S0 D2 u/ K7 x
    現在每建造1000W的船艦或防禦要花8分鐘左右的時間+ ~9 t+ p3 t4 D  j3 P  a
    雖然建造時間多了不少# ^5 U% {& H7 b  y; h2 L
    但伺服器的負載量大幅度的減少了
    7 r- O: `/ a- [5 |& E( A且總比死當不能訪問要來得好多了吧?
    8 z8 M2 K3 M6 d: B: P4 u--------------------* z7 x5 V# j: w6 B- D
    各位玩家們有福囉~3 v- s/ k6 h* ?, T
    即日起可以不必再忍受' e9 |, b! n& Q$ K
    建造數量只有1W以及
    , f% o  g; `# J$ i* n. H還要請GM幫忙代造的痛苦了
    ; P2 p5 X* E/ h7 S+ t" a經過站長1天的思考與研究後
    2 E7 _7 V+ N9 m終於發現是什麼原因- N; n4 Q1 o$ ^$ x! n5 a" B0 y8 D" S/ i0 z
    讓遊戲在造船或防禦的時候) V) X# k( u$ ]$ D* O5 \
    讓伺服器死當或者很卡的罪魁禍首了6 R% w/ a! P# S7 j4 D" f. l+ q. s  J
    並不是因為伺服器規格與配備不好所導致

      e- H* h6 |* c. ?7 s( v; H5 C; N真正原因是因為每建造一艘船艦或一門防禦( S6 ]" t5 D# O9 A8 Y: t9 r& S
    中間沒有讓伺服器冷卻的間隔時間
    # |- @+ ?. O; B* E! q$ G所以才導致伺服器在沒有冷卻間隔時間的情況下( {& t) u& s2 O* s# Z, {
    無法瞬間處理大量的SQL指令與數據( L9 o: ^+ v- n% ^+ n/ n; l/ W
    所以才導致伺服器出現了死當與很卡的情形發生

    . A5 t% ~( N" D: ?3 m現在站長將每建造一艘船艦或一門防禦的
    + \7 x5 ^* r% B0 w4 A冷卻間隔時間由原本的無冷卻間隔時間
    ; [8 O" Q" t" {, N+ z& a改成了每隔''100萬分之一秒(1微秒)''才建造一艘船艦或防禦
    , e2 X1 F9 ]2 m" k# h6 I
    而且站長也將100B和1000B服的最大建造數量改回原本最初的1000W了
    5 A0 ~7 C% R7 g現在每建造1000W的船艦或防禦只需花9秒鐘
    8 a, G8 y+ t& m2 R" c# aP.S建造2000W的船艦或防禦要花18秒鐘6 [8 b! k; ^  H; N/ j0 r5 ~; ]
    建造3000W的船艦或防禦要花27秒鐘.....以此類推.....3 N3 Q  \9 A% d: X: l; l; v
    對各位來說應該不算太過份吧?
    % G6 ~  Z0 P' i1 y' }' f3 c; a3 F
    在還沒修復此bug之前9 J; F* R6 ?3 I% _- B7 F: Q
    建造1000W的船艦或防禦只需花0秒鐘; k! u; ~! @# i0 {0 {2 M
    瞬間建造好,不用等  U# ]8 T$ @  C: G# s
    但是給伺服器的壓力太沉重了
    6 U' w+ ?1 ^( F3 ]( m3 U& f0 N寧願稍等幾秒鐘的時間1 @3 V7 b/ y, Q8 _5 y& y
    也不要讓伺服器的壓力過大  C' v$ F  s) }: v
    而導致伺服器死當或者很卡
    ; O% n7 h: a1 j% q! m各位說是不是?
    , w" {- g3 F& V6 @( o' h! v

    * k' c7 t/ t! Q9 U7 j0 i*對本帖如有問題的玩家5 `" u* ~+ ]; p! M& B6 f
    或會員們請回帖提出2 V5 @1 }- J" B) Z. V. b
    站長看到後會盡快做回覆!!

    文章的最近訪客

    等級:18 - 已有大成

    經驗值:0 / 171

    魔法值:4639 / 9649

    生命值:1%

    升級   100%

  • TA的每日心情

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

    [LV.3]偶爾看看II

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

    等級:15 - 融會貫通

    經驗值:0 / 149

    魔法值:2457 / 8493

    生命值:9%

    升級   0%

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

    [LV.4]偶爾看看III

    發表於 2010-12-20 20:56:23 | 顯示全部樓層
    謝謝A大/ M( m) z9 Y3 D0 h0 V7 m
    辛苦你了~

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:11328 / 11328

    生命值:3%

    升級   100%

  • TA的每日心情
    開心
    2023-11-9 21:19
  • 簽到天數: 4405 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:17:29 | 顯示全部樓層
    原來問題的原因是這樣
    # e8 A  U- ?5 D- V. J不過我認為
    $ I3 v3 t, e& |1 a更改遊戲造船及防禦的方式才是解決問題的治本方法
    $ A! c3 B4 T* w! l% u6 d+ G+ [: e6 y) p; y% A1 D( x
    例如要造1000W回收船
    1 m* S" x/ F6 I% I$ F( o, g) r- R根據a大的描述7 S# {' w3 ^- Q1 Y
    大概是造一艘便要一個sql請求! R6 o9 G' u9 B' n+ g0 t
    2 q3 J! n3 Q* w* {7 X
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
      ^% L9 v* f  h8 Mquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000. d. f8 {3 |* N9 C9 ]- B
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    ! P( T4 Q, ~7 C$ x: g2 U6 w( g4 f...... (略9999996條)# K; n1 j1 m2 U$ {/ y! ^/ R6 _- N
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000  T' z! R' C6 F5 T4 o; ^

    + p' j8 T% F3 L1 B. R' n這様造一次! i- k$ x6 F5 i: s& b5 t
    sql請求比運作一個月的無插件discuz論壇還多
    / _3 f5 Y& {& j2 @+ g8 S當然就是虛耗資源$ s6 q- K9 s* P. ]" Y9 r2 p
    $ D; a& z' `+ _5 U+ B( y
    但如果改成一個sql請求完成全部建造+ `# y7 Y* W! B6 d! ]* `  e$ p
    不但建造得更有效率
    8 _2 j" K4 c1 n2 o% C  l# A7 T& ?造一次對伺服器資源使用也是近乎0
    1 ~- b2 E: b3 }' g- Z0 K% a5 [. A- ~2 E8 s) w- O; e, {6 K
    query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000; Q4 p% E- m# ?, U; `7 \% [

    ; f) o: b0 }: m) s, }" O8 S當然這只是基本概念" j% o3 o; R2 n
    要進行修改也有一定難度2 `5 R" V0 V& E( l: P  S5 H' p
    因為這只考慮到建造時間=0時的情況0 W6 T7 e8 |- w. Q+ F  J
    如果建造時間>0
    3 t' C& I, L8 r) h6 o就要考慮頁面動態更新之類的一大堆問題
    5 x' Y4 |+ i9 h只好希望未來的3.0版會作出改善

    等級:8 - 駕輕就熟

    經驗值:0 / 73

    魔法值:171 / 3897

    生命值:3%

    升級   3%

    該用戶從未簽到

    發表於 2010-12-20 21:38:25 | 顯示全部樓層
    今早我只能一次建9999只船.........# I% B' X6 n) o9 f3 l8 s% m
    我囧了7 c* H7 x: T0 W+ M5 v% R
    建10.000.000要按多少次ENTER才可以......(1001次啊!!!!手軟了8 L+ q' i1 B0 Y, \

    ' ]1 [5 d5 K: j, y9 h之後現在改到9999999我爽死了....(2次而已.....

    等級:25 - 爐火純青

    經驗值:0 / 245

    魔法值:13942 / 13942

    生命值:5%

    升級   100%

  • TA的每日心情
    奮斗
    昨天 14:36
  • 簽到天數: 5628 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:40:29 | 顯示全部樓層
    原來問題的原因是這樣
    % q7 g  R5 _! c& c, m' @9 `不過我認為# A' g) c! v; G* C
    更改遊戲造船及防禦的方式才是解決問題的治本方法/ g: n, T2 @: r

    : w" Q- f& A4 j$ Y7 v0 P  B例如要造1000W回收船
    % S# M: v% k# H( Q根據a大的描述
    5 ~) \& f# Z5 X2 b$ d* }大概是造一艘便要一個sql請求
    ) m0 ]! [& x/ E8 ^; ]; k" b) ^+ {0 {* P: o1 p! q% L
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-20003 K  A* x9 U2 h- c, J  S0 g' [' g. X
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    * c0 {( ^* j" Q+ O$ f; pquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    $ B; C+ V- W$ d3 z...... (略9999996條)- v0 ]1 M- m$ A& a
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    # g) Y. f- ]2 l5 e" |
    % a( {! }: l4 n3 i$ b% `這様造一次. J! s9 e6 `2 x
    sql請求比運作一個月的無插件discuz論壇還多
    " S% r$ B2 P  x2 s; Z1 k* T* n0 g當然就是虛耗資源
    ; z( m7 p+ ^" p0 I5 p
    8 X0 H# B5 }, j" b3 c" X2 ~, x但如果改成一個sql請求完成全部建造/ X2 `2 R2 }. \* J$ v$ m3 [& `
    不但建造得更有效率5 @) N" A8 Q# V: J" R% q4 u0 h
    造一次對伺服器資源使用也是近乎0
    ( p9 _; Z4 C1 U# S- o
    ; O2 T. W1 e& ~6 c/ e: P
    query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000
    8 o& I0 m) D  J. A" d7 G
    ' u5 C- Y% V* c3 _當然這只是基本概念
    ) E  B4 W' N/ _* U9 A9 w要進行修改也有一定難度
    5 e. S0 m: W5 N5 A
    因為這只考慮到建造時間=0時的情況
    ' |5 E6 t9 S+ ~6 U: e; n9 W如果建造時間>0
    8 c. b  w) h  d1 t' x就要考慮頁面動態更新之類的一大堆問題$ u! F( ?. c# u- t. V* n
    只好希望未來的3.0版會作出改善- D7 Q, p9 J& h6 t" F- S( x. Y
    b1984207 發表於 2010-12-20 09:17 PM
    1 k9 e% I# R+ d0 e! r
    我在遊戲後臺幫玩家代造船艦或防禦的時候
    7 ~8 v' y& J' B9 T& {* A& }4 A  Q就是像你說的這個概念
    " @+ W; r# U& ?只要一個SQL請求便可完成全部的代造
    ! ~% _7 `! |" Z- n2 G6 s但是要改成只需一個sql請求完成全部建造
    " @8 I& p3 J0 w的難度性很大且很高- w. ^# G: v) j
    而且有幾個源碼檔案裡的一些代碼
    7 w* d3 d$ ?4 G& I7 f5 T* v可能甚至要全部改寫
    ) `0 F6 S5 D: O% N所花費的精力跟技術與時間不少4 w! n! s' M$ }5 S" U& J6 `9 U
    不過能找出原因與臨時解決方法
    2 s7 \$ s8 o7 @已經算不錯了1 L2 \! x' g+ r* Z; t4 k# d9 H5 G
    真正治本方法還是交給/ p. I9 h( b. z4 D4 a5 }
    全新的3.0版專業開發團隊
    5 N5 v& Z$ ?5 D" r* j來做處理吧2 m9 z! I7 u% p; l
    但3.0版最快可能要等到明年的春季才會發布。

    等級:12 - 出類拔萃

    經驗值:0 / 119

    魔法值:942 / 6442

    生命值:9%

    升級   91.4%

  • TA的每日心情

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

    [LV.6]常住居民II

    發表於 2010-12-20 22:03:07 | 顯示全部樓層
    那現在還有代造服務嗎??  _# Y+ f* i5 Q  Q7 @
    ((沒有很多時間點的人

    等級:10 - 出類拔萃

    經驗值:0 / 92

    魔法值:373 / 4992

    生命值:2%

    升級   5.95%

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

    [LV.1]初來乍到

    發表於 2010-12-20 22:11:06 | 顯示全部樓層
    原來問題的原因是這樣
    % F) u2 R& k  O* {- h9 }不過我認為# o% l/ n. `( p$ ?% T: O0 c- v" }
    更改遊戲造船及防禦的方式才是解決問題的治本方法/ D" I1 s( V1 c( Q- o. N* d
    4 C3 d; m7 B& F8 o0 y. e0 U: i
    例如要造1000W回收船
      h$ K* K! l. r  q3 H3 T# k0 S ...
    + d4 V- E  E+ e# N1 L2 U4 Z; r- v8 qb1984207 發表於 2010-12-20 09:17 PM

    6 C6 Y3 z+ z/ L) A你是不是想這樣2 R- x3 H; v' q
    假設用戶輸入傎為a
    ' N+ E& E9 f0 q9 c+ v" s! K假設一隻回收船要一秒- }# f$ V8 l  M. i+ s
    query : 回收船+ a, 金屬- 10000*a, 晶體- 6000*a, 重氫- 2000*a 在1*a秒後

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:11328 / 11328

    生命值:3%

    升級   100%

  • TA的每日心情
    開心
    2023-11-9 21:19
  • 簽到天數: 4405 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 22:39:35 | 顯示全部樓層
    本帖最後由 b1984207 於 2010-12-20 10:49 PM 編輯 $ Y, b8 E! ~8 }9 q
    你是不是想這樣! T) I2 b+ u1 }! `' s) Y- i5 P
    假設用戶輸入傎為a/ f  Y! ?( V4 q, Z9 V1 w
    假設一隻回收船要一秒
    ( |' z6 p2 T+ q- z+ Nquery : 回收船+ a, 金屬- 10000*a, 晶體- 6000* ...
    - }, L, q9 t3 [8 p1 j7 u" _qweasdz 發表於 2010-12-20 10:11 PM
    2 {5 w% @! L( n% u" h
    # ^( E( @3 u' c. w+ i4 O
    也差不多吧
    8 W! J* q/ U  Y3 i, v) Z1 d6 V我的概念是這樣
    0 _: ^6 Z6 V$ J; V1 X
    , f3 U5 l( O8 q完成的時間 = 現在時間 + (造船數量*每隻製造時間)
      q8 ~) M# U5 d5 ~+ J1 Y8 ]! J  {2 I. V7 J/ g
    sql query 就這樣... (不肯定格式對不對)
    ( g6 A0 r! W) l" ~  y# vINSERT INTO 造船的資料表(用戶ID,數量,類型,完成時間) VALUES (id,10000000,回收船的代號,完成的時間)
    4 X; h$ g5 }8 r" i' `
    ; ~: P# J* X0 |5 Y; @然後就像你那樣減去所用資源. k5 M+ F1 f7 @& X; r) C' K# e1 i
      R( R; c  t) C2 ]: \! P
    之後在進入造船頁面時1 u% d' U0 }, n- ~+ i3 Y, ^
    由資料表拿回資料( v; z: Q3 @* t$ }! T/ X) o- {! v
    計算餘下時間
    ) P  W1 U  I" ]( g5 S未完成的話就透過javascript進行頁面動態更新餘下時間/ v; S4 f( u; f' f: s) p: z) |0 e, R
    直至完成
    ' `0 ]" Q( a3 Z. Z1 \+ [$ m完成後就在艦隊加上造好的船
    5 q0 c! g. t8 Y% i然後就可以拿去開戰了...
    & W, |1 O7 F# {8 ~. m1 u
    1 j) X! Y  |, `' S  x3 ?不過這樣做的缺點就是必須在全部完成後才會得到船! j/ H7 q; N) X! g  [" g4 j
    例如一隻一秒, 造3600隻, 就會在1小時後才得到3600隻回收, 過程中擁有回收的數量維持在0
    # U; _( c" Z+ m; ]如果用原有方法的話, 未全部完成建造時也可以先拿造好的一部份

    評分

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

    檢視全部評分

    等級:6 - 駕輕就熟

    經驗值:0 / 59

    魔法值:90 / 3138

    生命值: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, 2025-6-17 04:03 , Processed in 0.050565 second(s), 13 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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