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

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

  [複製連結]

等級:25 - 爐火純青

經驗值:0 / 245

魔法值:13696 / 13696

生命值:5%

升級   100%

  • TA的每日心情
    無聊
    7 小時前
  • 簽到天數: 5538 天

    [LV.Master]伴壇終老

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

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

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

    ×
    *01月08日更新:* e3 G: w" M1 n- I' s, u
    全新的伺服器軟體與環境正式啟用
    , {5 E7 p/ q  K) O6 S) g' N這大大的減少的伺服器的負擔, D# p2 _1 f+ g+ T7 r) I- |1 l. P
    因此建造延遲時間由100微秒6 p) T3 C, i# I- e7 J! ]1 J
    縮短為25微秒。
    3 f, P3 p) W6 ?5 ?+ A----------------------------------------
    + Q& {0 g7 {, s8 t# S! _& z12月23日更新:7 p5 u3 L* q4 h
    站長建議各位每隔10秒鐘後再按另一次建造按鈕
    ( ?: O$ f2 F, a. N; B. r這樣會為伺服器的負擔減輕不少& M0 H3 J: g; M  u
    而各位的帳號或星球也不會出現空白畫面的超時情形。
    ' }2 X- H# f: W2 s2 wP.S也就是說輸入1000W按建造6 K3 |& F6 Q7 ^; P( E) d& r7 Q
    之後等個10秒
    * I  k3 r8 `) I+ f) B1 Y然後再輸入1000W再按建造....以此類推。
      r& A. h2 F* v2 v, t. ~----------------------------------------
    : {8 f( Z* R7 A: N  c4 _7 i; q12月22日更新:' d6 y! ~" N% i' E  |
    以下的情況只針對同時間裡' O$ I4 ?7 U& v9 k
    只有一個人在造船或防禦: e% a7 |  ~) C. c2 O
    才有明顯的改善4 t( R6 H4 z1 l2 q6 |
    但同時間裡且同時有
      m1 k; M# T4 [. c4 B9 _: E9 z多位玩家連續造船或防禦
    " W" W- g  q, a6 P4 D: x! t那麼伺服器的CPU使用率
    6 W, ]$ D5 @$ z5 t8 q( K9 M8 }  ?又會跟以前一樣是100%
    , q1 M  y% n" z5 Z只有改善一點點1 S; a+ N/ k2 B  L8 T1 q
    於是站長又將建造延遲時間4 f( J7 Z4 k$ p. X3 R
    改為50微秒了0 {1 k! j3 b8 c1 G; _4 \8 h
    現在每建造1000W的船艦或防禦要花8分鐘左右的時間
    8 f( }; A. X: I% _# ^8 |2 x; h雖然建造時間多了不少6 D, X3 ~8 s5 u; g+ f4 T
    但伺服器的負載量大幅度的減少了
    7 {9 l2 @, h# o. L7 Y' Q, t! i4 j2 a且總比死當不能訪問要來得好多了吧?! P3 O9 z) _) L
    --------------------
    ' n: ?$ k0 }0 I0 a  E. y& j各位玩家們有福囉~
    3 [) _3 O# H7 \# S即日起可以不必再忍受
    , b  P! n3 D* _  [6 C9 i# n建造數量只有1W以及
    ; _0 q& m) F" B+ Y還要請GM幫忙代造的痛苦了
    # V; b: h3 s$ @1 j3 Z經過站長1天的思考與研究後* N, }. ~/ S+ L4 P0 j
    終於發現是什麼原因
    ( ], l, T2 ]! y& V( J0 B讓遊戲在造船或防禦的時候* [" P- a# L( d) \, d
    讓伺服器死當或者很卡的罪魁禍首了
    : A- Q5 c6 D/ N& J! r並不是因為伺服器規格與配備不好所導致

    , ], V' T2 f! `3 P真正原因是因為每建造一艘船艦或一門防禦+ g* k0 P$ d6 x6 D
    中間沒有讓伺服器冷卻的間隔時間+ J5 D# X* l: M5 b/ T8 }* \7 d6 d0 c
    所以才導致伺服器在沒有冷卻間隔時間的情況下2 v) I) `! b) z, [
    無法瞬間處理大量的SQL指令與數據
    6 T0 w# [0 h$ m& T6 H所以才導致伺服器出現了死當與很卡的情形發生

      ~8 G3 {% y3 ]. Y  d現在站長將每建造一艘船艦或一門防禦的
      H' [7 w6 g1 }; M8 c+ V9 ?冷卻間隔時間由原本的無冷卻間隔時間( s$ u! y* q, }/ T. o6 H2 w* l
    改成了每隔''100萬分之一秒(1微秒)''才建造一艘船艦或防禦

    ' l7 G  F8 H# f8 J而且站長也將100B和1000B服的最大建造數量改回原本最初的1000W了
      N: {2 k/ v5 w! F現在每建造1000W的船艦或防禦只需花9秒鐘
    % C3 l+ n4 z% _P.S建造2000W的船艦或防禦要花18秒鐘
    4 f% s" }+ k# S7 v建造3000W的船艦或防禦要花27秒鐘.....以此類推.....9 ?* U6 a) _$ P: x2 j1 i
    對各位來說應該不算太過份吧?

    ' T5 F: O0 k/ m在還沒修復此bug之前' V  j+ v& e1 c3 U8 h& P8 d
    建造1000W的船艦或防禦只需花0秒鐘
    0 s$ Z) I. |6 n! K, q8 q瞬間建造好,不用等; U% t+ m) T* Q# o4 s! G
    但是給伺服器的壓力太沉重了0 Y: K+ @" p; q
    寧願稍等幾秒鐘的時間
    + C$ P( x! k9 L- @! o5 r也不要讓伺服器的壓力過大
    " }5 ?3 n$ z; n& k2 l* o而導致伺服器死當或者很卡7 \0 t  q' R) v4 \( E1 W4 h; |! R+ |
    各位說是不是?

    . z6 S" C) ^) [  Q* R+ }# O) g; W. X+ m7 U* }$ c
    *對本帖如有問題的玩家
    9 b# B- K7 h, g0 s或會員們請回帖提出
    - G; s8 g+ ?! ^+ m站長看到後會盡快做回覆!!

    文章的最近訪客

    等級:18 - 已有大成

    經驗值:0 / 171

    魔法值:4639 / 9487

    生命值:1%

    升級   100%

  • TA的每日心情

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

    [LV.3]偶爾看看II

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

    等級:15 - 融會貫通

    經驗值:0 / 149

    魔法值:2457 / 8352

    生命值:9%

    升級   0%

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

    [LV.4]偶爾看看III

    發表於 2010-12-20 20:56:23 | 顯示全部樓層
    謝謝A大
    ; i2 A0 D& l/ j辛苦你了~

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:11127 / 11127

    生命值:3%

    升級   100%

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

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:17:29 | 顯示全部樓層
    原來問題的原因是這樣
    4 k2 i% z1 U& l: P不過我認為6 F3 C7 s1 q* f8 F; V0 s
    更改遊戲造船及防禦的方式才是解決問題的治本方法
    6 m, o" F; R7 z
    - ]- j: [, ?- z) ?5 q# d  B; r例如要造1000W回收船
    / E$ @; B& p4 z2 F根據a大的描述/ _" s! A' T6 A& _
    大概是造一艘便要一個sql請求* x% X1 N6 N+ |& ]
    1 }. j9 Y$ r9 U' Q* G; ?
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000) l, H" V: e3 ]; v0 e
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    ) p% n0 j) Z/ A% Nquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    + G5 w! i/ j  e% |+ F...... (略9999996條)
    * x) B$ v, |0 b* \; Z: bquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-20000 C/ L& b4 U" j
    4 Y# G4 W" `& V5 R& N
    這様造一次
    0 v* b% Q" }& A4 X! }sql請求比運作一個月的無插件discuz論壇還多
    " U1 j( U# ~; U' N3 [5 I/ k當然就是虛耗資源
    2 q7 Z3 k1 `: L1 p* ?' D' Q+ G% i4 J& r3 B3 X& p5 d
    但如果改成一個sql請求完成全部建造8 q3 D. m8 d9 U, p* m
    不但建造得更有效率
    , I0 W. ]! A" X3 `- A! U造一次對伺服器資源使用也是近乎0
    * N; R+ f: r5 O4 R- H  w7 U& a4 I% W
    query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000* N7 f( u  M8 x
    8 v; A' ^! T! ~
    當然這只是基本概念
    ; F( ^5 ]; P- @要進行修改也有一定難度0 }& T; Z/ \8 T: r
    因為這只考慮到建造時間=0時的情況
    9 F$ O- b# h- h2 s1 y6 c, F- T如果建造時間>0( S! l; f3 ^- n; @7 _+ i: j
    就要考慮頁面動態更新之類的一大堆問題
    ) ]7 l2 |0 n  o+ U( O# g只好希望未來的3.0版會作出改善

    等級:8 - 駕輕就熟

    經驗值:0 / 73

    魔法值:171 / 3828

    生命值:3%

    升級   3%

    該用戶從未簽到

    發表於 2010-12-20 21:38:25 | 顯示全部樓層
    今早我只能一次建9999只船.........  o% d2 a) _2 p/ K3 s4 t; z+ Q+ U
    我囧了  z4 a( d4 a3 S8 h
    建10.000.000要按多少次ENTER才可以......(1001次啊!!!!手軟了! A+ U8 t; `: c( J! t
    7 l& J6 u" {" g$ i. p' C
    之後現在改到9999999我爽死了....(2次而已.....

    等級:25 - 爐火純青

    經驗值:0 / 245

    魔法值:13696 / 13696

    生命值:5%

    升級   100%

  • TA的每日心情
    無聊
    7 小時前
  • 簽到天數: 5538 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:40:29 | 顯示全部樓層
    原來問題的原因是這樣' Q5 X  x5 @7 b, F/ {) u
    不過我認為
    ; @" I3 A; N0 ?5 C2 h# O& \更改遊戲造船及防禦的方式才是解決問題的治本方法, |: x9 H2 @' w4 h. N! r

    ' H  h6 T! `% N" M5 e6 J例如要造1000W回收船5 x9 S& D, O! f  ]3 p
    根據a大的描述
    ! Z, c) w  n. c; G6 d, o. d大概是造一艘便要一個sql請求
    " f  T+ b3 f* i  i. w
    9 v& z/ @  t' I6 c4 S# Aquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    1 |  ?* o5 c: w5 ^, ]9 ~+ V2 {query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    / a/ M3 X  ]; A9 O- x0 S; \; iquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000+ q6 g5 ]$ o* Z/ p+ A9 Z) w, k- s+ W
    ...... (略9999996條)& u- D8 E; _* s/ k% S
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000+ [  Q! e% {, q1 s

    7 G: _9 {( O' O4 x8 K這様造一次
    " H, }0 D) L% g1 z- qsql請求比運作一個月的無插件discuz論壇還多5 l1 M- `% J( A6 ~& a
    當然就是虛耗資源
    0 ?1 p  T& R; t/ F& P# h1 p9 K+ K6 U
    但如果改成一個sql請求完成全部建造% u$ d+ Q0 u' F! c* E) x
    不但建造得更有效率& |- E' h2 n; m* `5 V
    造一次對伺服器資源使用也是近乎0

    # F5 P3 V, S  v# P9 Z* k9 V
    1 r$ I  d" h: d, o) e) }' b5 `3 |& k( Fquery : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-200000000008 |7 b9 ~  A5 A; p  y$ g  l
    7 l! G' V( y' @6 S
    當然這只是基本概念9 h- ^! U: i: J; M' J0 O
    要進行修改也有一定難度
    0 F. n6 P7 q/ @( ?" w+ ]; p
    因為這只考慮到建造時間=0時的情況
    ; d+ v  d" Q: i如果建造時間>0
    ! `+ a- R$ @0 {4 Q就要考慮頁面動態更新之類的一大堆問題
    " h5 Z( O5 t: P$ l& K% R* `& a只好希望未來的3.0版會作出改善) z# I3 a# Q/ g8 E% e
    b1984207 發表於 2010-12-20 09:17 PM
    9 n7 Y" H* t* J8 e' R8 T+ |
    我在遊戲後臺幫玩家代造船艦或防禦的時候
    * \3 @# T- W" y就是像你說的這個概念% W; Q2 Y' p9 R5 X; ~
    只要一個SQL請求便可完成全部的代造0 \/ S; F) T. e/ D. P5 Z
    但是要改成只需一個sql請求完成全部建造5 K  w7 }5 \! l8 Z* |* C
    的難度性很大且很高$ P- v0 ^* g- |# Z2 j+ P% L
    而且有幾個源碼檔案裡的一些代碼
    . s! B- G* H% v0 R可能甚至要全部改寫0 J0 F& @  @& B, v
    所花費的精力跟技術與時間不少* W+ ^; v9 j; h
    不過能找出原因與臨時解決方法. j. M( f0 U6 o8 O# y% V# p
    已經算不錯了
    * f, X8 e- v4 ?+ ^7 R真正治本方法還是交給
    * Q( I. O4 N& L0 ]1 h! M; ?4 k全新的3.0版專業開發團隊5 c. {+ }) K5 M7 {
    來做處理吧& H: S7 f1 {& T; M
    但3.0版最快可能要等到明年的春季才會發布。

    等級:12 - 出類拔萃

    經驗值:0 / 119

    魔法值:942 / 6330

    生命值:9%

    升級   91.4%

  • TA的每日心情

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

    [LV.6]常住居民II

    發表於 2010-12-20 22:03:07 | 顯示全部樓層
    那現在還有代造服務嗎??* }) z2 ~0 a% N( j
    ((沒有很多時間點的人

    等級:10 - 出類拔萃

    經驗值:0 / 92

    魔法值:373 / 4905

    生命值:2%

    升級   5.95%

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

    [LV.1]初來乍到

    發表於 2010-12-20 22:11:06 | 顯示全部樓層
    原來問題的原因是這樣
    2 X) A. y) h; |8 j% Y0 L不過我認為
    3 w( d6 A. r7 }5 H( X7 G更改遊戲造船及防禦的方式才是解決問題的治本方法
    . d; S, q6 S; J* n* L9 R  I$ m" o# t, o/ J) h6 {* z2 I6 F
    例如要造1000W回收船
    + h& Q8 Q/ Z7 Z" S8 v ...8 _, q/ a% b$ Y% r( P" @
    b1984207 發表於 2010-12-20 09:17 PM
    & `4 u" e. b+ ?1 ?" ]
    你是不是想這樣
    9 X. ^$ b/ l) i假設用戶輸入傎為a! W: [7 \& K* i
    假設一隻回收船要一秒/ o" J/ E) O' I3 \9 t
    query : 回收船+ a, 金屬- 10000*a, 晶體- 6000*a, 重氫- 2000*a 在1*a秒後

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:11127 / 11127

    生命值:3%

    升級   100%

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

    [LV.Master]伴壇終老

    發表於 2010-12-20 22:39:35 | 顯示全部樓層
    本帖最後由 b1984207 於 2010-12-20 10:49 PM 編輯
    ) F" ^2 h8 f0 L) F, c
    你是不是想這樣
    0 l# @  \" O- J* u7 c0 }假設用戶輸入傎為a
    $ @& @  K) |* q) N) ]- y- N假設一隻回收船要一秒
    0 L; H3 L" K0 I) m9 P2 s) lquery : 回收船+ a, 金屬- 10000*a, 晶體- 6000* ...
    3 w! [9 |; @  W0 g/ |1 cqweasdz 發表於 2010-12-20 10:11 PM
    8 v1 O/ G& s7 \5 {7 D

    1 N% b. u) r0 Q: |3 x+ r% l5 k也差不多吧) Y3 ~5 d) I6 V) _
    我的概念是這樣( X- c. i  p* S9 s% D& N, [5 ]

    7 Q' l$ Y: q" I; [& G0 A: j. O完成的時間 = 現在時間 + (造船數量*每隻製造時間)
    ) A3 a2 b& o) h9 x) Z7 q& Q' L2 o) v: C1 K
    sql query 就這樣... (不肯定格式對不對)
    ) q/ c% }6 A3 p1 t3 s6 q9 dINSERT INTO 造船的資料表(用戶ID,數量,類型,完成時間) VALUES (id,10000000,回收船的代號,完成的時間)
    . H6 v" g1 B3 |8 m$ u5 P( }3 }6 a5 h2 J# ]
    然後就像你那樣減去所用資源
    9 l/ q6 u' i0 D, H/ g' ?9 W2 \) y1 y
    之後在進入造船頁面時
    " v9 E5 L& H, O: n( v  w% l+ Y由資料表拿回資料( ?* x' Y' J3 x7 n+ q4 V* L
    計算餘下時間+ _. m' P% f+ p1 u
    未完成的話就透過javascript進行頁面動態更新餘下時間$ J, G1 K; ]: o) a6 n, G
    直至完成) b3 h  V: B. E- o: z6 l" R: S
    完成後就在艦隊加上造好的船
    . b0 W0 H: e% {$ W# z' h" v- d然後就可以拿去開戰了...
    4 U2 M3 g/ p& _# g! K
    : C) [- x3 F! e4 ~$ r; \4 ]) |不過這樣做的缺點就是必須在全部完成後才會得到船8 f" d0 g( W; Q' l1 T) t1 e
    例如一隻一秒, 造3600隻, 就會在1小時後才得到3600隻回收, 過程中擁有回收的數量維持在0/ R. L: B+ |( E. }5 ~
    如果用原有方法的話, 未全部完成建造時也可以先拿造好的一部份

    評分

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

    檢視全部評分

    等級:6 - 駕輕就熟

    經驗值:0 / 59

    魔法值:90 / 3082

    生命值: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-3-14 22:58 , Processed in 0.021383 second(s), 10 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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