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

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

  [複製連結]

等級:25 - 爐火純青

經驗值:0 / 245

魔法值:13998 / 13998

生命值:5%

升級   100%

  • TA的每日心情
    奮斗
    昨天 13:56
  • 簽到天數: 5642 天

    [LV.Master]伴壇終老

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

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

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

    ×
    *01月08日更新:
    : P) U" B/ K# h2 i全新的伺服器軟體與環境正式啟用+ r9 Y* V; e& C, [# C4 g
    這大大的減少的伺服器的負擔
    4 c; P6 G+ R4 n  Z8 ]6 K因此建造延遲時間由100微秒6 o  P! f# o& C) w8 G6 N( Q( k
    縮短為25微秒。3 T: O/ L: T0 B9 {7 w; D
    ----------------------------------------
    / S( @- c& W/ P4 R12月23日更新:# {- K4 F5 j( [$ }
    站長建議各位每隔10秒鐘後再按另一次建造按鈕
    - l8 m# M4 C: g, V這樣會為伺服器的負擔減輕不少9 l6 p; Q  g$ Z+ ]1 T! _
    而各位的帳號或星球也不會出現空白畫面的超時情形。
      |' q( O; v9 F# {) O$ c0 gP.S也就是說輸入1000W按建造8 g7 M6 g/ q1 Q% s5 q: ~; b( d
    之後等個10秒  C9 `4 G& z, R& u" g3 s
    然後再輸入1000W再按建造....以此類推。
    1 t. E8 C0 B; Q1 j----------------------------------------
    & Q/ C" t9 j. @$ A  e12月22日更新:4 D7 C+ I, n0 g+ t  v3 B2 v$ d
    以下的情況只針對同時間裡* A6 s$ O& n. h$ @8 o
    只有一個人在造船或防禦
    $ v6 J  k* S' S* X才有明顯的改善
    + l. Q# P( Z" u: l但同時間裡且同時有* ]* N: P( H' S  m9 k7 I% u
    多位玩家連續造船或防禦
    0 M' ?0 b6 o- J. ]9 n! u那麼伺服器的CPU使用率9 T5 H! T% h4 O# }" g$ p
    又會跟以前一樣是100%
    # E0 J& y2 B& x/ h5 p3 k* ~5 h只有改善一點點
    $ ?# J8 S" T- t/ V. e6 F於是站長又將建造延遲時間
    8 K8 d( ~& ~1 k/ k3 L$ ~改為50微秒了
    # r; A9 `( ~- {& `. a, k現在每建造1000W的船艦或防禦要花8分鐘左右的時間
    5 c' u  V' k7 ^; G7 T雖然建造時間多了不少; P2 A4 S! t- F8 b6 ?2 w4 f. |
    但伺服器的負載量大幅度的減少了
    5 W- ^, `! J) N且總比死當不能訪問要來得好多了吧?
    0 v6 s8 f" h+ z* \/ k! [, {6 l--------------------
    # e; ~3 A8 P& u各位玩家們有福囉~* e- r9 }/ |4 @7 ]( W5 p+ h
    即日起可以不必再忍受. l9 t, G" r% }* C! Q5 _, ?
    建造數量只有1W以及+ Q! k8 b( A* j% \: u
    還要請GM幫忙代造的痛苦了1 W: o2 D2 a0 t
    經過站長1天的思考與研究後
    # r2 H: F" H# T; l; X終於發現是什麼原因3 Q; t& b2 B- t; E6 S8 @
    讓遊戲在造船或防禦的時候
    6 T2 U* O9 w1 S& t/ Q讓伺服器死當或者很卡的罪魁禍首了
    - S- Y% E+ i! ~' e* r並不是因為伺服器規格與配備不好所導致
    8 u: f8 w* E3 P6 D/ j1 S: K7 ~
    真正原因是因為每建造一艘船艦或一門防禦  K9 H% j  D2 h  h! z3 x4 w
    中間沒有讓伺服器冷卻的間隔時間
    3 P' ]/ D! L/ B5 @' O# k  \* d所以才導致伺服器在沒有冷卻間隔時間的情況下
    / Q# F6 N: r6 h0 W' k8 q無法瞬間處理大量的SQL指令與數據: V9 }) q1 [7 P  m/ k2 r
    所以才導致伺服器出現了死當與很卡的情形發生

    * x( R' {" D# `現在站長將每建造一艘船艦或一門防禦的
    6 x  C$ i. n* j9 R/ a8 r4 x+ |, H3 f冷卻間隔時間由原本的無冷卻間隔時間( G( W7 P0 Z" \6 S2 u$ J3 n
    改成了每隔''100萬分之一秒(1微秒)''才建造一艘船艦或防禦
    1 N! M, R/ y3 l8 q9 b& u8 I
    而且站長也將100B和1000B服的最大建造數量改回原本最初的1000W了% E6 X) _0 m( _; Q" o: B5 t
    現在每建造1000W的船艦或防禦只需花9秒鐘
    ) u+ ?3 N  O* Q) wP.S建造2000W的船艦或防禦要花18秒鐘$ W' h8 x! ^' y% w4 Y1 \) U& S& {
    建造3000W的船艦或防禦要花27秒鐘.....以此類推....." i$ I! p7 ]. T+ E1 B4 @
    對各位來說應該不算太過份吧?
    - T+ E& |) C( \3 S) u% m
    在還沒修復此bug之前/ p: [, g2 B, _" T# d. M
    建造1000W的船艦或防禦只需花0秒鐘/ p! @7 R. \# S! |, i
    瞬間建造好,不用等  Z* N7 N4 O9 t% V: G
    但是給伺服器的壓力太沉重了
    + w6 T+ h' J. _! G9 F4 C寧願稍等幾秒鐘的時間
    & \) n6 s% S1 i- z& C. Y也不要讓伺服器的壓力過大
    6 ^2 N& C+ U! R/ i" {2 M' B- U而導致伺服器死當或者很卡
    1 b* T9 S# M" M# \: y6 U各位說是不是?

    4 t# D  T. R) C, S4 q: b
    4 L( {5 p/ h& E5 s( Q& X5 N& |*對本帖如有問題的玩家
    2 T$ E: D: \# M) W( q( T' x) }或會員們請回帖提出5 n) _- s0 N) i; l! t
    站長看到後會盡快做回覆!!

    文章的最近訪客

    等級:18 - 已有大成

    經驗值:0 / 171

    魔法值:4639 / 9686

    生命值:1%

    升級   100%

  • TA的每日心情

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

    [LV.3]偶爾看看II

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

    等級:15 - 融會貫通

    經驗值:0 / 149

    魔法值:2457 / 8525

    生命值:9%

    升級   0%

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

    [LV.4]偶爾看看III

    發表於 2010-12-20 20:56:23 | 顯示全部樓層
    謝謝A大
    " _/ n/ @  j) U# G2 q辛苦你了~

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:11374 / 11374

    生命值:3%

    升級   100%

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

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:17:29 | 顯示全部樓層
    原來問題的原因是這樣
      ~. j7 U- q! ]7 \, \/ L! H1 f6 h不過我認為
    + D& d/ a& r3 f9 _更改遊戲造船及防禦的方式才是解決問題的治本方法; W: Y. n$ e6 X9 q: S
    * e& n) R4 b7 Q- C- E
    例如要造1000W回收船3 \4 B: s4 _5 R) ^5 H  G
    根據a大的描述$ @& n$ o4 R- O( w: ?+ y- z
    大概是造一艘便要一個sql請求0 Y  v# j8 l) k; C5 Y# v% F

      A' {. U# c6 e' W* Jquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000/ E5 G2 S' {' m$ _- G
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000# |0 S( \: Q$ `! W5 o+ v
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000* A* u9 p: M* a& Q9 ?' I2 J
    ...... (略9999996條)9 n$ \% n3 ?& W) ~9 C1 ?
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    - C3 g$ N' C) t% a' V% j$ e" V* B$ r" J
    這様造一次/ C& V! }8 D$ K' L/ b) Q+ j8 Z/ S
    sql請求比運作一個月的無插件discuz論壇還多: v' p+ j6 M6 f$ p4 e9 [5 h! F5 H
    當然就是虛耗資源
    , S5 T7 g/ H  o% f; n: p, _
    0 A" f7 ~3 j- l( \但如果改成一個sql請求完成全部建造0 B" L: }* }) F: y9 A2 M# o% B* ?% `
    不但建造得更有效率/ R" b' c: {+ `- X, H, o
    造一次對伺服器資源使用也是近乎0" g! u- `9 l% Q3 P! P) X7 a
    # u8 ~( q8 _$ @1 @' x! C
    query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000) M& R; b% B' `, J, u1 n
    , N3 T5 f4 Q, Z
    當然這只是基本概念
    9 B- V7 @" j* `! z要進行修改也有一定難度
    , d$ Z" X4 o+ X2 E5 ?8 Q+ E  _, S因為這只考慮到建造時間=0時的情況
    . _, {8 d1 ~# U4 z/ w: C' N如果建造時間>0
    ; x; D3 k! ?$ u# o! R) @! O就要考慮頁面動態更新之類的一大堆問題
    , R; p( Z* J: C0 F# k只好希望未來的3.0版會作出改善

    等級:8 - 駕輕就熟

    經驗值:0 / 73

    魔法值:171 / 3913

    生命值:3%

    升級   3%

    該用戶從未簽到

    發表於 2010-12-20 21:38:25 | 顯示全部樓層
    今早我只能一次建9999只船.........# k( e- h' s; V0 a, S
    我囧了: z  \  ]. X. F! c
    建10.000.000要按多少次ENTER才可以......(1001次啊!!!!手軟了9 x, |0 L% X% `) z1 B1 D3 i9 l
    * b/ y/ Q/ V) W9 E1 L
    之後現在改到9999999我爽死了....(2次而已.....

    等級:25 - 爐火純青

    經驗值:0 / 245

    魔法值:13998 / 13998

    生命值:5%

    升級   100%

  • TA的每日心情
    奮斗
    昨天 13:56
  • 簽到天數: 5642 天

    [LV.Master]伴壇終老

    發表於 2010-12-20 21:40:29 | 顯示全部樓層
    原來問題的原因是這樣" Y2 A  E4 S6 ^/ ~
    不過我認為
    4 a/ @) k1 `5 A$ J8 q更改遊戲造船及防禦的方式才是解決問題的治本方法( J4 O- ]2 U! E+ \0 ^* m6 c6 A* |

    ! j/ v# z9 ?) L" j, F" A9 T例如要造1000W回收船
    + d- I- t: H% i! Y根據a大的描述8 O% w! F# t4 n% O" V
    大概是造一艘便要一個sql請求
    ; Z" w; X. Z8 ]* M$ k7 D$ y4 E1 p1 z9 t) [
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    * I7 {& O8 q5 @! s5 g8 N( j$ E4 h. Zquery : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000( K( ~# U- O) N
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-2000
    & W2 K# C! A! J3 L, \" {0 R...... (略9999996條)( j* t" J6 ]( q* O7 R3 B: G) m* W
    query : 回收船+1, 金屬-10000, 晶體-6000, 重氫-20003 ]3 J, S  [' w  V. ^

    2 Y# n. B$ G% i+ d5 B7 `2 X這様造一次
    1 M$ e# l5 I! F5 T' E7 U' isql請求比運作一個月的無插件discuz論壇還多- B7 S- S; d/ }* A$ U* E5 a7 X
    當然就是虛耗資源
    " C& }* g9 C% z1 y2 y  }7 j6 |! h9 B3 ^- H6 y( `% R- |$ F8 ~
    但如果改成一個sql請求完成全部建造- s7 g2 k1 H" m* E, e0 o. z
    不但建造得更有效率
    : o- ^$ \1 k, X+ D8 q. X" G造一次對伺服器資源使用也是近乎0
    0 F( z; g2 ]' q' c' _0 M, g; Y
    9 d- U5 V. n' S" K3 P$ i
    query : 回收船+10000000, 金屬-100000000000, 晶體-60000000000, 重氫-20000000000
    7 j. c% g6 `7 R+ D
    1 b) K. S: h8 D當然這只是基本概念4 f! v; T7 x8 N: B8 T5 Z3 H4 f! C
    要進行修改也有一定難度
    2 W2 ?- p6 r  Q
    因為這只考慮到建造時間=0時的情況
    8 ]8 l# T9 U9 o: w5 q0 W! G如果建造時間>0
    + q- A" n2 c+ f# o就要考慮頁面動態更新之類的一大堆問題
    & r+ D7 ~1 {8 Q9 H, a只好希望未來的3.0版會作出改善9 B) y! g$ S, k2 u
    b1984207 發表於 2010-12-20 09:17 PM
    1 I# @) Y% ^3 o9 Y, {) f( i
    我在遊戲後臺幫玩家代造船艦或防禦的時候
    6 Q( C" `& w' m% h9 |就是像你說的這個概念
    9 L3 x4 J1 G' M) L% f只要一個SQL請求便可完成全部的代造
    1 `8 K. x) B5 |* {4 [) h4 n/ V; K5 |但是要改成只需一個sql請求完成全部建造0 o0 S3 v, D7 \; Q
    的難度性很大且很高
    1 l' m( ^) J2 `) M' G7 t而且有幾個源碼檔案裡的一些代碼9 h, d- p" b2 g# I" L
    可能甚至要全部改寫
    1 A+ U6 W  N. U所花費的精力跟技術與時間不少
    9 d8 t7 k$ X# P9 y不過能找出原因與臨時解決方法/ l: n6 O: ~3 d8 T' w
    已經算不錯了
    9 `( W6 D3 W2 `, r- q真正治本方法還是交給/ J  E0 E1 R1 {$ V8 D% e
    全新的3.0版專業開發團隊% c0 y! f! c( C2 S
    來做處理吧. [# i( ?" ?3 t& q
    但3.0版最快可能要等到明年的春季才會發布。

    等級:12 - 出類拔萃

    經驗值:0 / 119

    魔法值:942 / 6468

    生命值:9%

    升級   91.4%

  • TA的每日心情

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

    [LV.6]常住居民II

    發表於 2010-12-20 22:03:07 | 顯示全部樓層
    那現在還有代造服務嗎??% E' w: O% P, s- L. W
    ((沒有很多時間點的人

    等級:10 - 出類拔萃

    經驗值:0 / 92

    魔法值:373 / 5012

    生命值:2%

    升級   5.95%

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

    [LV.1]初來乍到

    發表於 2010-12-20 22:11:06 | 顯示全部樓層
    原來問題的原因是這樣4 x1 g2 p$ b: s3 m6 x! `- }
    不過我認為  ~  Y2 S! s/ N& V) z. l, U7 E& ]
    更改遊戲造船及防禦的方式才是解決問題的治本方法
    ( @6 M: r9 b6 p3 H" w9 X
    3 L1 X4 U1 Y/ k* U例如要造1000W回收船
    0 ]# r: {( k: O: U ...
    6 J" F0 R: l; ~9 @b1984207 發表於 2010-12-20 09:17 PM

    , q- Y. n, o* ]. b你是不是想這樣
    ( k$ @3 I' j9 Q假設用戶輸入傎為a
    0 D; `& _8 N) I假設一隻回收船要一秒1 ?" b4 }" |% g( H* I
    query : 回收船+ a, 金屬- 10000*a, 晶體- 6000*a, 重氫- 2000*a 在1*a秒後

    等級:22 - 爐火純青

    經驗值:0 / 213

    魔法值:11374 / 11374

    生命值:3%

    升級   100%

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

    [LV.Master]伴壇終老

    發表於 2010-12-20 22:39:35 | 顯示全部樓層
    本帖最後由 b1984207 於 2010-12-20 10:49 PM 編輯 9 H5 Q% M% J% D/ \9 W4 f5 W# ?4 j" w
    你是不是想這樣+ n, d1 Z# v" ]5 N6 @+ W, \# n
    假設用戶輸入傎為a* ~% g9 g+ m1 a  T8 x; e$ ^/ P$ E
    假設一隻回收船要一秒
    ( r/ ~& ?$ D- `8 Iquery : 回收船+ a, 金屬- 10000*a, 晶體- 6000* ...
    4 Y. |) p( o; B2 L4 P6 k+ X8 f0 |, Vqweasdz 發表於 2010-12-20 10:11 PM

    7 G* V, l" D! h8 X% d+ c, Y8 [5 p7 ^6 h. \
    也差不多吧
    * ^; P# z& s& s' E我的概念是這樣' ^( Z1 {6 W9 F$ Y- A8 s% o6 D# G
    4 k5 X4 T, k7 V$ A: F
    完成的時間 = 現在時間 + (造船數量*每隻製造時間)- J) U: w" a5 ]0 M3 j. ]) E
    7 m3 |: u* L; w3 X& U$ `+ Y$ ~
    sql query 就這樣... (不肯定格式對不對), I3 H$ S. v1 q( b* D5 I9 q; \
    INSERT INTO 造船的資料表(用戶ID,數量,類型,完成時間) VALUES (id,10000000,回收船的代號,完成的時間)
    0 w  }4 k, }0 h
    " U: ?% N4 }7 b% R) k然後就像你那樣減去所用資源
    7 H9 z7 a5 V) G2 f) {0 V' Z! G9 w. @
    之後在進入造船頁面時
    3 j9 B+ Q* }% E! o. R; J由資料表拿回資料
    0 @# u# H$ C, {3 Q+ ~9 z' L- U計算餘下時間
    ' P, Z2 S  i4 H/ h, D7 M未完成的話就透過javascript進行頁面動態更新餘下時間
    7 p& Z7 O4 D7 l7 Y+ W+ V+ u* G直至完成
      w0 Z* e* ^& _3 ^完成後就在艦隊加上造好的船
    5 ?7 I! P. z7 V( u  L然後就可以拿去開戰了...
    6 C% U! o. A. I2 m
    ' W9 n4 w; Z  \% R5 Z: h不過這樣做的缺點就是必須在全部完成後才會得到船2 {5 `! i( u. _% m" P1 d8 L( H, \) Y" W
    例如一隻一秒, 造3600隻, 就會在1小時後才得到3600隻回收, 過程中擁有回收的數量維持在0
    % R& m+ ?: u6 v+ n- w如果用原有方法的話, 未全部完成建造時也可以先拿造好的一部份

    評分

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

    檢視全部評分

    等級:6 - 駕輕就熟

    經驗值:0 / 59

    魔法值:90 / 3151

    生命值: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-7-8 16:54 , Processed in 0.024692 second(s), 13 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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