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

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

  [複製連結]

等級:25 - 爐火純青

經驗值:0 / 245

魔法值:14247 / 14247

生命值:5%

升級   100%

  • TA的每日心情
    慵懶
    11 小時前
  • 簽到天數: 5735 天

    [LV.Master]伴壇終老

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

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

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

    ×
    *01月08日更新:4 t0 f( ^4 x2 @& r# r. j
    全新的伺服器軟體與環境正式啟用
    / f# V2 f8 ^: X- x" }( y8 A  }9 z6 Z這大大的減少的伺服器的負擔
      M' h: X1 S! y, ~, s因此建造延遲時間由100微秒. j) \; W& n9 f# x2 @9 s
    縮短為25微秒。/ c/ I- M* e3 K
    ----------------------------------------  \) G7 n0 D( B( C5 I# a
    12月23日更新:
    . H0 ?0 G+ r! ~% k! Y2 G站長建議各位每隔10秒鐘後再按另一次建造按鈕
    ; U+ f7 ]0 O1 v! P0 S2 ^這樣會為伺服器的負擔減輕不少0 @" x  t2 D7 A+ o. \- v% L
    而各位的帳號或星球也不會出現空白畫面的超時情形。0 E4 w, h& z3 a; I
    P.S也就是說輸入1000W按建造
    " D1 C1 J. N) r* `$ q1 Y& j之後等個10秒0 X& M1 x% \8 Y% U+ S
    然後再輸入1000W再按建造....以此類推。/ _7 N! U8 |5 v7 ^/ p
    ----------------------------------------
    7 ^& f( }4 g- N, L+ [  M12月22日更新:! y, n" U0 t- h# t; c5 H
    以下的情況只針對同時間裡
    ; {: n0 x3 V7 ]3 M( w8 o( g) V$ n) Z只有一個人在造船或防禦
    2 c$ x) J7 l- N1 l才有明顯的改善3 s3 V& h2 z  E' j' ^( @6 j
    但同時間裡且同時有
    ( E+ V( l( y1 i% O6 ]4 k/ {, h多位玩家連續造船或防禦
      K8 @, L8 ?& [' k' U/ ?那麼伺服器的CPU使用率% H, h: Q& W4 ]
    又會跟以前一樣是100%
    % ~3 T+ Q9 ]- |+ f2 z4 M6 E+ m只有改善一點點
    ' Q- \0 H4 O1 Q$ i於是站長又將建造延遲時間
    & ~0 _8 P0 Q2 w8 r" }0 L8 D# }2 M改為50微秒了
    3 o1 e* i; ~3 _' x現在每建造1000W的船艦或防禦要花8分鐘左右的時間) j* M7 m* q  r
    雖然建造時間多了不少' m0 H. z0 M) F3 Y1 Z5 q
    但伺服器的負載量大幅度的減少了
    8 s0 O4 A+ ?* Y8 r且總比死當不能訪問要來得好多了吧?
    + a) v& P: A0 k, _--------------------, b+ v  W( \5 V9 @
    各位玩家們有福囉~# R8 Y1 w8 m8 \! |+ n# F. e0 x
    即日起可以不必再忍受% ?. b2 G) Y- e: t0 ^2 J
    建造數量只有1W以及  l( r" x: [% U) d' K5 w+ P
    還要請GM幫忙代造的痛苦了
    7 z7 a2 h: {, Y9 b# f5 j# V經過站長1天的思考與研究後+ b/ ^( E; i, D8 p: _' O* L" ^
    終於發現是什麼原因
    4 x7 f/ s4 K" d+ F( {讓遊戲在造船或防禦的時候1 \% `1 Q& z1 [' s  H( Q
    讓伺服器死當或者很卡的罪魁禍首了
    - w* o$ N5 i8 L8 B並不是因為伺服器規格與配備不好所導致

    . O1 o& y6 s9 A# C5 p/ k真正原因是因為每建造一艘船艦或一門防禦( p8 Q5 J; G" [/ D
    中間沒有讓伺服器冷卻的間隔時間
    : }. X( |5 A. N7 \所以才導致伺服器在沒有冷卻間隔時間的情況下
    ! L9 l4 ^5 w8 U7 E/ U; M# F無法瞬間處理大量的SQL指令與數據; x3 J' ?) s5 ~' p( k3 v
    所以才導致伺服器出現了死當與很卡的情形發生
    9 @/ t# B; k; h) S3 j7 {: @( i+ v
    現在站長將每建造一艘船艦或一門防禦的# H. ^: z, {+ [7 r( k# m$ i
    冷卻間隔時間由原本的無冷卻間隔時間& h$ [9 M& P3 _! q* X# p9 o
    改成了每隔''100萬分之一秒(1微秒)''才建造一艘船艦或防禦

    , G: S8 A' K" _% \% t而且站長也將100B和1000B服的最大建造數量改回原本最初的1000W了
    , D; \4 r# G2 I現在每建造1000W的船艦或防禦只需花9秒鐘
    % m( y" i" [% f" v7 R5 FP.S建造2000W的船艦或防禦要花18秒鐘- @% l( @6 g+ [8 O# P. {: o% C
    建造3000W的船艦或防禦要花27秒鐘.....以此類推.....
    8 Q9 b7 E2 S6 p對各位來說應該不算太過份吧?
    7 q" g/ \# d& x* ~$ `! _
    在還沒修復此bug之前1 A% T9 l/ z+ V; F6 d% k
    建造1000W的船艦或防禦只需花0秒鐘
    , r# f/ [) I! ~: K4 r3 ^2 ]: L# u瞬間建造好,不用等' L) I. E. |+ x# j: E4 M
    但是給伺服器的壓力太沉重了. N- R5 Y: x8 f! S3 ^
    寧願稍等幾秒鐘的時間
    ; X2 g5 p" O  i! r: r& g& Q& h也不要讓伺服器的壓力過大
    / k0 Y% p. Z6 d而導致伺服器死當或者很卡
    4 L7 e- w+ Q2 ~4 y( E各位說是不是?

    & B8 ^1 Q3 M# ^3 i3 o; U# z) b6 L
    *對本帖如有問題的玩家0 G$ Y" v1 r6 B
    或會員們請回帖提出4 b2 Z: D8 k  S5 ?8 H# w' Q
    站長看到後會盡快做回覆!!

    文章的最近訪客

    等級:18 - 已有大成

    經驗值:0 / 171

    魔法值:4639 / 9849

    生命值:1%

    升級   100%

  • TA的每日心情

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

    [LV.3]偶爾看看II

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

    等級:15 - 融會貫通

    經驗值:0 / 149

    魔法值:2457 / 8667

    生命值:9%

    升級   0%

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

    [LV.4]偶爾看看III

    發表於 2010-12-20 20:56:23 | 顯示全部樓層
    謝謝A大
    9 }2 w& i0 J1 W: b辛苦你了~

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:11577 / 11577

    生命值:3%

    升級   100%

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

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:17:29 | 顯示全部樓層
    原來問題的原因是這樣
    " Z7 c0 K* y! v# C% P6 G) n" Z  `+ D不過我認為
    # M% ^2 ~6 N/ A* _4 w  m- W更改遊戲造船及防禦的方式才是解決問題的治本方法- X0 G5 P% Z' S4 {$ _8 m$ }4 z  R

    * _4 k& n* ~- B& s) N% c例如要造1000W回收船2 G/ C3 c  d' Z# ~6 T8 c% A
    根據a大的描述
    $ X# n$ N9 k: O, x; ?大概是造一艘便要一個sql請求" r9 j" ~" d9 v6 v
    ( t  E9 C4 W8 C& {  n/ ~" S! A; E
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000$ f% J$ e0 C$ Q& e( k& d# e
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    ( m3 X, j, m1 G  hquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000! p; C) o( N# k% k- ]! H
    ...... (略9999996條)
    ' m5 p: A+ c* I- w4 tquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000# P) ~& r/ A5 e9 u' [

    # x  a, }. \' E/ S) g9 n這様造一次8 r# J! H1 f+ A% A. R% h% h
    sql請求比運作一個月的無插件discuz論壇還多
    0 K) ]0 k& d" N/ {當然就是虛耗資源' x" |% ]  F* T0 N1 ~( }& B

    : W9 c9 @# d! J3 {但如果改成一個sql請求完成全部建造
    * C/ g! W) {+ o. T不但建造得更有效率8 k# _/ c* K3 @9 e9 L& v% L% T- A2 b; r
    造一次對伺服器資源使用也是近乎06 u, i% Q3 N! c0 C5 e2 \
    ; J6 ?4 f: ~# F* G8 L& A9 y" \
    query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000
    : x' b5 j' e# h* n, ]* g) q9 a
    1 i, _+ t/ P, I( h, I% v當然這只是基本概念
    * K0 o/ ^6 \: \3 r. F, S要進行修改也有一定難度1 X+ E! p3 j5 e: `0 N
    因為這只考慮到建造時間=0時的情況
    / k: T2 V  q% z& N$ Z% o如果建造時間>0
    6 E" Z7 ~- Q! D3 V1 Z( d; @8 |) j就要考慮頁面動態更新之類的一大堆問題' ~- Y9 i, x& C1 g6 A3 |/ Q  Z
    只好希望未來的3.0版會作出改善

    等級:8 - 駕輕就熟

    經驗值:0 / 73

    魔法值:171 / 3983

    生命值:3%

    升級   3%

    該用戶從未簽到

    發表於 2010-12-20 21:38:25 | 顯示全部樓層
    今早我只能一次建9999只船.........% a7 v" q. s" a$ ~
    我囧了
    & F) Y  h; ~3 ~  f  ~0 v建10.000.000要按多少次ENTER才可以......(1001次啊!!!!手軟了
    % ~- `2 x0 x$ d- E/ w
    4 o1 y: ~! T/ x% G2 {8 d3 f之後現在改到9999999我爽死了....(2次而已.....

    等級:25 - 爐火純青

    經驗值:0 / 245

    魔法值:14247 / 14247

    生命值:5%

    升級   100%

  • TA的每日心情
    慵懶
    11 小時前
  • 簽到天數: 5735 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:40:29 | 顯示全部樓層
    原來問題的原因是這樣: D& E% W9 \, p8 O* e
    不過我認為7 G$ ^' m9 t+ x( U: {( x6 h
    更改遊戲造船及防禦的方式才是解決問題的治本方法5 I: U' I: W% i, n% {9 b
    : w" q2 L0 n4 x0 }
    例如要造1000W回收船
    $ N7 D4 A3 O% R/ N$ |; B/ A. r, X根據a大的描述7 H, ]! u% \8 K5 b
    大概是造一艘便要一個sql請求; O! |& z; N, D. Y6 A5 A; o

    7 B% W) @; b3 [, G" }- ^0 Fquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
      ^1 T2 D) \# ^/ o8 J( v- Pquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000, J0 I" M" J- h8 O5 l, D9 N
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000& u+ o# g  Q' W" d+ p% V1 S% ^
    ...... (略9999996條)
    - V1 M4 d8 I5 @* C# Z6 w9 Xquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    # Y: V7 Q% O) v1 l& C$ K/ E( v1 G- V* N- ]+ \5 r4 Y. V5 _4 z5 f. }
    這様造一次* B+ {6 U8 B4 g# ~6 w
    sql請求比運作一個月的無插件discuz論壇還多& D) u  Z$ e) I1 u' G
    當然就是虛耗資源1 f' i# A3 f0 ~4 l1 b# [

    ; P# }7 Q, ?6 ?但如果改成一個sql請求完成全部建造! W4 `7 q2 R/ B* K( B7 T
    不但建造得更有效率
    $ I2 a, s- v8 h造一次對伺服器資源使用也是近乎0

    ( N, s8 K8 k' {' c# j
    / M# _  G$ t$ G' ^5 R, o" _query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000& _% i6 |/ H: T8 n2 d) c4 N# x

    % R3 O+ x8 F3 W當然這只是基本概念
    " d# `% A  G) ^8 N% K要進行修改也有一定難度
    % u9 _4 X7 q- ~
    因為這只考慮到建造時間=0時的情況
    : k3 Y* `% E0 b9 v9 P0 r) x如果建造時間>0
    # {7 f; d  ?' e+ j就要考慮頁面動態更新之類的一大堆問題
    7 t  t" D! i$ L4 J: Y; a: _只好希望未來的3.0版會作出改善
    7 \! A, X2 T8 t0 x5 O( c. R9 Hb1984207 發表於 2010-12-20 09:17 PM
    - J8 v; u! r4 d- `
    我在遊戲後臺幫玩家代造船艦或防禦的時候
    3 e! E3 `4 N3 i- m4 a就是像你說的這個概念
    3 t% C* X2 _  c只要一個SQL請求便可完成全部的代造5 F/ p* O! u, x- e8 S: P
    但是要改成只需一個sql請求完成全部建造
    # I- t" |/ n! K的難度性很大且很高; v2 M1 h1 B" ]" V
    而且有幾個源碼檔案裡的一些代碼9 f7 o. t3 E% d7 l
    可能甚至要全部改寫
    ( `  X# A, t/ N/ v( a所花費的精力跟技術與時間不少! P& C# K4 }7 y3 ]& P
    不過能找出原因與臨時解決方法
    1 Q* U* A" G3 }2 x; h9 ]已經算不錯了
    ' J* ~' q& ^& ?( j  l$ C# [9 F真正治本方法還是交給" Z4 T) B' x$ S2 {
    全新的3.0版專業開發團隊4 `7 _5 g) J3 Z7 \" Q
    來做處理吧5 H9 f9 N+ _+ o: D3 K
    但3.0版最快可能要等到明年的春季才會發布。

    等級:12 - 出類拔萃

    經驗值:0 / 119

    魔法值:942 / 6581

    生命值:9%

    升級   91.4%

  • TA的每日心情

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

    [LV.6]常住居民II

    發表於 2010-12-20 22:03:07 | 顯示全部樓層
    那現在還有代造服務嗎??
    / B- _* S7 v# f+ |% j* d((沒有很多時間點的人

    等級:10 - 出類拔萃

    經驗值:0 / 92

    魔法值:373 / 5100

    生命值:2%

    升級   5.95%

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

    [LV.1]初來乍到

    發表於 2010-12-20 22:11:06 | 顯示全部樓層
    原來問題的原因是這樣
    , G% C& X9 w# }. l不過我認為! x; W: H9 l6 r: T* F2 T
    更改遊戲造船及防禦的方式才是解決問題的治本方法/ n. _/ W. e' o3 y% v% ]7 N
    : ^! e$ ^8 y7 y: v8 P- j" o  j! g
    例如要造1000W回收船1 _" E/ D: Q2 v2 h4 F8 R; Z
    ..., I' {1 I( q9 K% w; _
    b1984207 發表於 2010-12-20 09:17 PM
    3 l+ K" A4 F: f. ~
    你是不是想這樣
    ; [% x9 r6 i( \6 d( c假設用戶輸入傎為a3 P- j  N% p3 A+ [# ]1 B
    假設一隻回收船要一秒
    + t  e! g. C2 q* W* Hquery : 回收船+ a, 金屬- 10000*a, 晶體- 6000*a, 重氫- 2000*a 在1*a秒後

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:11577 / 11577

    生命值:3%

    升級   100%

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

    [LV.Master]伴壇終老

    發表於 2010-12-20 22:39:35 | 顯示全部樓層
    本帖最後由 b1984207 於 2010-12-20 10:49 PM 編輯 3 w3 b+ P9 a# H* \( s
    你是不是想這樣( T" L: @! c/ `
    假設用戶輸入傎為a3 D- Y  Z) C. R, b$ t9 x
    假設一隻回收船要一秒
    # T% t. ?- g# l" F5 rquery : 回收船+ a, 金屬- 10000*a, 晶體- 6000* ...
    5 }, M) n- i% b6 q+ C: kqweasdz 發表於 2010-12-20 10:11 PM
    9 H% {# C* [0 q0 F
      s* {9 n) s$ d  ~0 q  j8 V( v8 v
    也差不多吧
    * j) |1 {4 Y$ }9 s+ B- J$ u5 X9 S" ^我的概念是這樣
    # F3 C% |6 F9 i
    ( F4 s- [7 Y) ^- b: e* w' K( W( N完成的時間 = 現在時間 + (造船數量*每隻製造時間)
    ' }* T  t# n; ?" L1 K- [
    / `1 a) c( p: a# _% U; u! t, G* m, ysql query 就這樣... (不肯定格式對不對)
    + `& V4 t9 ]+ {8 iINSERT INTO 造船的資料表(用戶ID,數量,類型,完成時間) VALUES (id,10000000,回收船的代號,完成的時間)' z2 [" {8 O: n

    2 \0 Y9 X* U7 ^) z& ^& q/ i; X然後就像你那樣減去所用資源0 Y+ Q6 h7 M/ n# F

    , e, @5 _9 F" U' n2 o- G1 l: c* c之後在進入造船頁面時4 k. T6 P: v2 G$ U2 i
    由資料表拿回資料1 w( @- [! _: |7 v* m: S# u
    計算餘下時間
    & x$ M( D% u8 e; j未完成的話就透過javascript進行頁面動態更新餘下時間
    * C0 ?* D* V  u0 L7 a! Z直至完成" q" u& I1 c5 l: r
    完成後就在艦隊加上造好的船
    + x) S2 c0 y+ V+ }, W' v, S% j然後就可以拿去開戰了...
    4 H- a# V/ C2 t1 Q5 C9 `' l" y- i. J
    - ]; k5 `6 k) Z( W* r不過這樣做的缺點就是必須在全部完成後才會得到船1 O2 j+ c& k6 w  H* `8 |4 z# ?
    例如一隻一秒, 造3600隻, 就會在1小時後才得到3600隻回收, 過程中擁有回收的數量維持在0# x) b+ S: A% l. R9 w
    如果用原有方法的話, 未全部完成建造時也可以先拿造好的一部份

    評分

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

    檢視全部評分

    等級:6 - 駕輕就熟

    經驗值:0 / 59

    魔法值:90 / 3207

    生命值: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-10-11 12:07 , Processed in 0.025239 second(s), 13 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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