作用/特徵 | |
管理monitor 程式,game server邀請全體group傳達的訊息 server group間傳達訊息 (麥克風 物品) 在group中套用活動 | |
內部連結 | 外部連結 |
Monitor |
|
作用/特徵 | |
server group間阻止重複登入 和朋友, 隊員的聊天 登陸黑名單/ 朋友, 成員, 公會會員黑名單確認 將連線中的玩家踢下線 郵件發送時,通知的功能 伺服器認證 遊戲結束時,DB 處理期間禁止連線 套用burning time活動等各種活動 (game server 無需再啟動) 收集外掛玩家物品掉落率等資訊 死亡之塔內排名作業 在網頁上儲值的D幣變更套用 | |
內部連結 | 外部連結 |
DBMW Monitor_Manage |
|
作用/特徵 | |
在Web認證帳號後,在game server上處理] Login_out 地下城等級和 地下城內遊戲進行處理 現金 購買處理 創角, 等級處理 出租 物品處理 | |
內部連結 | 外部連結 |
Monitor Auction CoServer Relay Server STUN | Billing User Client |
作用/特徵 | |
遊戲內以拍賣場server啟動物品資訊時,從db那邊帶過來 拍賣場server 會將得標的物品寄出,透過monitor server傳送內容 game server結束時,收到傳達的 broadcast signal的話,會終止拍賣場的作用. game server被啟動的話,會自動運行 下載程式時,拍賣場流標的資訊可能會被損毀. 在網頁上儲值的D幣變更套用
| |
內部連結 | 外部連結 |
GAME SERVER |
|
作用/特徵 | |
和Auction SERVER一樣功能,可使用現金進行交易, 不是遊戲內金幣 | |
內部連結 | 外部連結 |
GAME SERVER |
|
作用/特徵 | |
阻止重複連線 (全部GAME SERVER 組) 獨立執行 | |
內部連結 | 外部連結 |
GAME SERVER |
|
作用/特徵 | |
分流資訊檔案的形成和傳送 從game server那邊收集分流 資訊收集(分流 on/off, 在線人數) 收集外掛玩家物品掉落率等資訊 死亡之塔內排名作業 在網頁上儲值的D幣變更套用 | |
內部連結 | 外部連結 |
Channel DB |
|
作用/特徵 | |
從分流中繼server確認分流情報 傳送分流資訊到client端 | |
內部連結 | 外部連結 |
ch_bridge | Client |
作用/特徵 | |
公會創立,加入,退出,解散時透過公會server套用 | |
內部連結 | 外部連結 |
DBMW |
|
作用/特徵 | |
DB middleware 作用執行 隨著CFG 變更,分為 3種的 DBMW 伺服器認證 遊戲結束時,DB 處理期間禁止連線 套用burning time活動等各種活動 (game server 無需再啟動) | |
內部連結 | 外部連結 |
DB |
|
作用/特徵 | |
Client 間無法連結 P2P時,作為中繼 獨立執行 | |
內部連結 | 外部連結 |
Game Server | Client |
作用/特徵 | |
以彼此其他 NAT堵住的 peer之間可進行P2P 通訊(UDP Hole puncing) 獨立執行 | |
內部連結 | 外部連結 |
Game Server | Client |
作用/特徵 | |
決鬥場 相關SERVER 決鬥場 Login, Logout 紀錄發生 | |
內部連結 | 外部連結 |
Game Server |
|
SERVER名稱 | 說明 | 備註 |
GAME SERVER | 以df_game_r 程式進行動作, 有分流結構的server | TP Process 程式啟動. |
APP SERVER | 以df_monitor_r, df_stat_r, df_guild_r, df_dbmw_r (monitor), df_dbmw_r (guild), df_dbmw_r (statics) 程式動作的server,各server組構成 | df_dbmw_r是將一樣二元檔案隨著CFG的環境變數而跟著動作. |
COMMON SERVER | df_bridge_r, df_manger_r, df_coserver_r, df_community_r 程式動作的server,全server共通使用 |
|
AUCTION SERVER | 各server群的 df_auction_r, df_point_r 程式動作的server |
|
CHANNEL SERVER | 以df_chnnel_r 程式動作的server, 若同時在線人數增加,需要增設,各server組共通使用 |
|
RELAY SERVER | 以df_relay_r 程式動作的server, 若同時在線人數增加,需要增設,各server組共通使用 |
|
STUN SERVER | 以df_stun_r 程式動作的server, 各server組共通使用 |
|
서버명 | GAME SERVER | APP SERVER | COMMON SERVER | CHANNEL SERVER | RELAY SERVER | STUN SERVER | AUCTION SERVER |
程式名稱 | df_game_r * 10(物理server別) | df_monitor_r | df_bridge_r | df_channel_r | df_relay_r * 15 | df_stun_r | df_auction_r * 3 (每組server實行) |
TP Process (實體server別) | df_guild_r | df_manger_r |
|
|
| df_point_r * 3 (每組server實行) | |
| df_statics_r | df_coserver_r |
|
|
|
| |
| df_dbmw_r (monitor) | df_community_r |
|
|
|
| |
| df_dbmw_r (guild) |
|
|
|
|
| |
| df_dbmw_r (statics) |
|
|
|
|
|
用途 | Host名 | 外部 IP | 伺服器重啟與否 | 重啟之後 需要確認的事項 |
web | webSvr | 203.69.93.90 | 重啟前 請先向 neople確認 | 確認 http demon 啟動與否 |
web | watchdog | 203.69.93.148 | 重啟前 請先向 neople確認 | 確認 mysql, http, postfix demon 啟動與否 |
web | Manager | 203.69.93.161 | 重啟前 請先向 neople確認 | 確認 mysql, http demon 啟動與否 |
web | BugReport | 203.69.93.164 | 維護時可以 | 確認 xinetd(rsync), postfix demon 啟動與否 |
| LogTool | 203.69.93.151 | 重啟前 請先向 neople確認 | 重啟前 請先向 neople確認 |
DB 全部 | 重啟前 請先向 neople確認 | Neople 需要確認 | ||
| stageSvr1 | 203.69.93.201 | 絕對禁止重啟 | 被強制重啟時, 務必要向neople確認 |
| stageSvr2 | 203.69.93.202 | ||
| stageSvr3 | 203.69.93.203 | ||
| stageSvr4 | 203.69.93.204 | ||
GAME | GameSvr01 | 203.69.93.2 | 維護時可以 | |
GAME | GameSvr02 | 203.69.93.3 | ||
GAME | GameSvr03 | 203.69.93.4 | ||
GAME | GameSvr04 | 203.69.93.5 | ||
GAME | GameSvr05 | 203.69.93.6 | ||
GAME | GameSvr06 | 203.69.93.7 | ||
GAME | GameSvr07 | 203.69.93.8 | ||
GAME | GameSvr08 | 203.69.93.9 | ||
GAME | GameSvr09 | 203.69.93.10 | ||
GAME | GameSvr10 | 203.69.93.11 | ||
GAME | GameSvr11 | 203.69.93.12 | ||
GAME | ChannelBridge | 203.69.93.51 | ||
GAME | channelSvr1 | 203.69.93.52 | ||
GAME | channelSvr2 | 203.69.93.53 | ||
GAME | channelSvr3 | 203.69.93.54 | ||
GAME | appSvr1 | 203.69.93.61 | ||
GAME | appSvr2 | 203.69.93.62 | ||
GAME | appSvr3 | 203.69.93.63 | ||
GAME | stunSvr1 | 203.69.93.71 | ||
GAME | stunSvr2 | 203.69.93.72 | ||
GAME | stunSvr3 | 203.69.93.73 | ||
GAME | relaySvr1 | 203.69.93.81 | ||
GAME | relaySvr2 | 203.69.93.82 | ||
GAME | relaySvr3 | 203.69.93.83 | ||
GAME | auctionSvr | 203.69.93.91 | ||
GAME | firstserver1 | 203.69.93.92 | ||
GAME | firstserver2 | 203.69.93.93 |
※參照st_taiwan_server, st_taiwan_game DB中處理對象統計TABLE模式
執行週期 | 劇本名 | 說明 | 處理對象統計TABLE |
1分鐘一次 | /root/bin/max_count_v2.php | 1分為單位, 各伺服器的最高同事在線 | max_count_v2 |
5分鐘一次 | /root/bin/st_script_5min.sh | 各pvp, channel同時在線 | max_count_pvp, max_count_channel |
30分鐘一次 | /root/bin/log_client_ting_stat_time.php | client ting的資訊 | client_ting_stat_time |
每天 00點 10分 | /root/bin/auction_script.sh | 拍賣場統計 | auction_day, auction_item_top100, auction_reg_top50, auction_item_day |
每天 02點 00分 | /root/bin/member_info.php | 帳號資訊統計 ( 每天更新 ) | member_info |
每天 02點 30分 | /root/bin/member_info_view.php | 帳號資訊view table統計 | member_info_view |
每天 03點 00分 | /root/bin/stat_to_member_info.php | 帳號資訊統計 ( 每天更新 ) | member_info |
每天 03點 10分 | /root/bin/stat_to_charac_info.php | 角色資訊統計 | charac_info_all |
每天 03點 20分 | /root/bin/log_fatigue.php | 疲勞度統計 | log_fatigue |
每天 03點 30分 | /root/bin/log_charac_create.php | 新創角統計 | create_charac_view |
每天 03點 35分 | /root/bin/log_charac_lev.php | 各等級別角色統計 | log_charac_lev |
每天 03點 45分 | /root/bin/log_fatigue_charac.php | 各角色疲勞度統計 | log_charac_play |
每天 04點 00分 | /root/bin/log_maxmoney.php | 各角色持有金幣資訊統計 | log_maxmoney |
每天 04點 00分 | /root/bin/new_log_money.php | 各角色持有金幣資訊統計 | log_money, log_item_stat_view |
每天 04點 10分 | /root/bin/log_pay_coin.php | 各角色別復活幣持有統計 | log_pay_coin |
每天 04點 15分 | /root/bin/log_coin.php | 各角色別持有復活幣資訊 | log_coin |
每天 04點 30分 | /root/bin/log_uv_dwm.php | 日, 周, 月間登入 UV 統計 | login_uv_day, login_uv_week, login_uv_month |
每天 04點 40分 | /root/bin/log_uv.sh | 日間 UV統計和 log_dailry_report, log_main_stat 統計 | login, log_uv, log_daily_report, log_main_stat |
每天 04點 50分 | /root/bin/log_uv_playtime.php | 各角色別遊戲登入集中 時間統計 | log_uv_period |
每天 05點 00分 | /root/bin/log_fatigue_old_confirm.php | 各角色疲勞度統計 V2 | log_fatigue_old_confirm |
每天 06點 30分 | /root/bin/hack_charac_levup.php | 不正當玩家角色升等統計 | hack_charac_levup |
每天 07點 00分 | /root/bin/new_member_secede_return_view.sh | 歸還者統計 | log_member_secede_return_view |
每天 08點 30分 | /root/bin/log_secret_shop_stat.sh | 商城統計 | log_secret_shop |
每天 08點 40分 | /root/bin/log_dungeon_entrance.sh | 地下城入場統計 | log_dungeon_entrance |
每天 09點 00分 | /root/bin/log_punish_hack.php | 不正當玩家統計 | dnf_hack_log_temp, dnf_hack_log, dnf_hack_stat, dnf_hack_stat_total, clean_pad_stat, trade_top |
執行週期 | 劇情名 | 說明 | 處理對象統計tabke |
每天 09點 00分 | /root/bin/new_log_uv_v4.php | 日間 UV 統計和 log_dailry_report, log_main_stat ,log_fatigue 統計 | log_fatigue_stat, log_uv, log_daily_report, log_main_stat |
每天 09點 10分 | /root/bin/new_new_log_uv_ext.php | 歸還者現況統計 | log_uv |
每天 09點 30分 | /root/bin/new_log_fatigue2.sh | 疲勞度統計 | log_fatigue_new |
每天 09點 50分 | /root/bin/log_join_present.php | 登入現況統計 | log_join_present |
每天 10點 00分 | /root/bin/user_price_index_avg_price_week_insert.sh | 玩家物品獲得統計 | user_price_index_avg_price_week |
每天 10點 00分 | /root/bin/log_main_stat_update.php | ting統計 | log_main_stat |
每天 10點 00分 | /root/bin/log_item_drop_v1.php | 物品掉落統計 | log_item_drop_stat |
每天 10點 10分 | /root/bin/login_week_ratio_view.sh | 每周登入現況統計 | login_week_ratio_view |
每天 10點 30分 | /root/bin/daily_script_v3.sh | 玩家金幣, 復活幣現況統計 | money_top100, coin_top100, gini_aggregate, gini_view, log_punish_money, log_pay_coin |
每天 11點 00分 | /root/bin/log_blood_enter_count.sh | 各角色別 blood 地下城入場現況統計 | log_blood_charac_count_new |
每天 15點 00分 | /root/bin/new_fatigue_battery.php | 各疲勞度金幣現況統計 | log_gold_stat_view |
※參照taiwan_prod DB中處理對象統計模式
執行週期 | 名稱 | 說明 | 處理對象 |
每天 04點 00分 | /root/bin/log_sales.php | 統計營收TABLE | sales_main_view, sales_distribution_aggregate, sales_distribution_view, sales_pattern_view, sales_cate_view |
執行週期 | 名稱 | 說明(參照) | 備份目錄 | 執行DB | 備份期間 |
每天 03點 30分 | /root/bin/dnf_backup.sh | 每日 Snapshot Full Dump Backup | /dblab/backup | GAME1, GAME2, Account, Log, Event, Web | 10天 |
※ 備份期間中,隨著DB容量不同而有可能變更. (需要SE的管理 )
執行週期 | 名稱 | 說明 | 執行 DB |
1分一次 | /root/bin/cpu.io.sh | DB server CPU 和 IO 檢視劇本 | MASTER / SLAVE 全部執行 |
10分一次 | /root/bin/slave_check.sh | SLAVE狀態確認劇本 ( 使用show slave status 命令語 ) | 只有SLAVE執行 |
※ neople DB團隊為了支援臨時的管理,所新增的流程 .
檔案名稱:dnf_backup.sh
Game 2nd DB (包裹打包作業) |
§ 現在TABLE rename § 產生新的TABLE § 新產生的TABLE中的DATA insert |
Game 2nd DB (信件整理作業) |
· 現在TABLE rename · 產生新的TABLE · 新產生的TABLE中的DATA insert |
Game 2nd DB (User items 整理作業) |
· 現在TABLE rename · 產生新的TABLE · 新產生的TABLE中的DATA insert · 舊的TABLE中的DATA insert |
【Tencent 方責任】 | 相關責任項目 | |
T-1 | 指派一名技術人員,與 Garena 和 Neople 一起進行每週定期維護。正式服開機前,由該技術人員確認所有正式機的 TP 相關設定。 |
|
T-2 | 每次進行 TP 更新後 (包含 Server 和 Client),需以信件提供 Patch note 給 Garena 和 Neople。 |
|
T-3 | 每次 TP 更新後的 24 小時內,需要有人員 on call 處理緊急狀況。 | N-2、G-7 |
T-4 | 信件請直接同時寄給 Garena 和 Neople。技術內容請盡量以英文寫作。 | N-3、G-8 |
T-5 | 定時清除正式機的 Log 檔,須確保不能超過 home/ 100 G、tmp/ 10 G 的容量。 | N-1、G-1 |
T-6 | 提供安全方案文件列表。 | N-4 |
【Neople 方責任】 | 相關責任項目 | |
N-1 | "不要" 更新、複製、刪除任何 TP 相關的文件,包含 log 檔。 | T-5、G-1 |
N-2 | 每次 TP 和遊戲更新後的 24 小時內,需要有人員 on call 處理緊急狀況。 | T-3、G-7 |
N-3 | TP 相關信件請直接同時寄給 Garena 和 Tencent。技術細節內容需接受英文信件溝通。 | T-4、G-8 |
N-4 | 如果更新內容中,包含 TP 安全方案文件列表中的文件,需要與 TP 團隊進行確認。 | T-6 |
N-5 | 檢查 antisvrimport_conf.xml,確保 debug mode 為關閉狀態。 | G-10 |
【Garena 方責任】 | 相關責任項目 | |
G-1 | "不要" 刪除任何 TP 相關的文件,包含 log 檔。 | T-5、N-1 |
G-2 | df_game_r 和 TP 服務需要使用同一帳號運行。 |
|
G-3 | TP process 需要先於 df_game_r process 啟動。 |
|
G-4 | clean_g3_mmap.h 只能在 df_game_r 和 TP processes 都停止的情況下才能調用。 |
|
G-5 | 每次 df_game_r 需要重新啟動時,都在 df_game_r 和 TP Processes 停止後,先調用 clean_g3_mmap.h,再啟動 df_game_r 和 TP Processes。 |
|
G-6 | 正式機的 TP 服務由 Garena 系統人員派專人統一操作,包括啟動、停止和更新。 |
|
G-7 | 每次 TP 和遊戲更新後的 24 小時內,需要有人員 on call 處理緊急狀況。 | T-3、N-2 |
G-8 | TP 相關信件請直接同時寄給 Neople 和 Tencent。若技術交流內容為中文或韓文,需協助翻譯;技術細節可能提供英文信件。 | T-4、N-3 |
G-9 | 建立 check list 機制,對更新文件設定 check 表,用於版本發布前核對,避免更新錯誤的情形。 |
|
G-10 | 檢查 antisvrimport_conf.xml,確保 debug mode 為關閉狀態。 | N-5 |
G-11 | 負責正式機開機前的最後確認,包含 debug mode、檔案權限、同步是否正確、腳本是否正確等。 |
|
G-12 | df_game_r服务器ip列表变更时,包括服务器新上线、服务器替换、服务器下线都需要提前通知TP团队进行相应变更,在TP团队check ok后,才可对外开放。 |
|
【郵件清單】 | |
T | "longma(马跃磊)" <longma@tencent.com>, "godsu(苏德新)" <godsu@tencent.com>, "senlyzhang(张胜利)" <senlyzhang@tencent.com>, |
N | twdf@neople.co.kr, i-license-3part@nexon.co.kr, jennifer0831@neople.co.kr |
G | garenatw-ss@garena.com <garenatw-ss@garena.com>, "garenatw-dnfgo@garena.com" <garenatw-dnfgo@garena.com>, |
【更新後 24 小時 on call 人員】 | |
T | longma(马跃磊) <longma@tencent.com> |
N | 請提供指派人員及聯絡方式 |
G | Lu Mars <lum@garena.com>, Nix Fang方子文 <fangn@garena.com> |
1. 硬體需求:
服務 | 機型 | 數量 | 備註 |
基礎服務 | C1 | 6 | 100萬線上以內不需要增加 |
日誌存儲 | TS3 | 4 | 100萬線上以內不需要增加 |
資料庫 | A5 | 6 | 50萬線上以內不需要增加 |
邏輯服務 | C1 | 3 | 每5萬線上用戶需增加一台 |
處罰判定 | C1 | 1 | |
日誌分析 | C1 | N | 每個大區一台伺服器 |
2. 配置項目規格:
| 參考基本配置 | 額外需求 | |||||
機型 | CPU | 記憶體 | 磁片 | 是否需要內網IP | 是否需要公網IP | 作業系統 | Raid需求 |
C1 | 數量:1個 | 8G | 500G | 需要 | 不需要 | SUSE Linux Enterprise Server 11 (x86_64) 2.6 | 不需要 |
四核 2.5GHz及以上 | |||||||
A5 | 數量:1個 | 32G | 12*146G | 需要 | 不需要 | SUSE Linux Enterprise Server 11 (x86_64) 2.6 | 需要 |
四核 2.0GHz及以上 | |||||||
TS3 | 數量:1個 | 8G | 12*1TB | 需要 | 不需要 | SUSE Linux Enterprise Server 11 (x86_64) 2.6 | 需要 |
四核 2.0GHz及以上 |
(以上機器需求為初期階段的必須資源,後續如出現更高的安全風險,需要接入更多的對抗方案,屆時機器方面的需求也會相應增加。)
| 参考基本配置 | 额外需求 | |
机型 | 磁盘 | Raid需求 | 分区需求 |
A5 | 12*146G | 需要(2Raid1+6raid5)+(4raid5) | 1)、2块磁盘采用2RAID1,作为系统分区 |
| |||
/:10G | |||
/usr/local:20G | |||
/data:剩余空间 | |||
| |||
2)6块磁盘采用6RAID5,作为/data1 | |||
3)其他4块磁盘使用另外raid卡,采用4RAID5,作为/data2 | |||
| |||
TS3 | 12*1TB | 需要(2Raid1+6raid5)+(4raid5) | 1)、2块磁盘采用2RAID1,作为系统分区 |
| |||
/:10G | |||
/usr/local:20G | |||
/data:剩余空间 | |||
| |||
2)6块磁盘采用6RAID5,作为/data1 | |||
3)其他4块磁盘使用另外raid卡,采用4RAID5,作为/data2 |
3. 頻寬:內網頻寬每10萬線上需要300Mbps。
4. Gameserver資源佔用:Gameserver上需要運行接入的安全程式,cpu需佔用0.5個核,記憶體500M, 硬碟4G。
提供給運維操作的安裝包為.tgz格式,安裝包中已預先創建好的目錄結構,此外含有安全服務對應的二進位檔案、服務啟停腳本和清理腳本等。
Linux安裝包解壓後的目錄結構如圖1所示:
圖1 Linux安裝包目錄結構
其中二進位檔案和腳本均在secsvr/bin目錄下,
SDK組件:libantisvrimport.so
二進位進程:gunnersvr、secagent、zergsvr
啟停腳本:tss_svr.sh、start_secagent.sh、stop_secagent.sh、reload_secagent.sh
清理腳本:clean_g3_mmap.sh
TP的相關檔一共存在於4個目錄:
1. /home/neople/secsvr/ :TP的進程相關的檔都在目錄
2. /home/neople/game/ : libantisvrimport.so,不需要Neople提供,由TP直接提供給Garena。
antisvrimport_conf.xml,不需要Neople提供,目前在正式機上沒有這個檔。
3./tmp/ : 放置由libantisvrimport.so創建的檔,包括以下:
tss_sdk_*.log*:so列印的log檔,會在當天內,隨時間的增加而增長,正常情況下不超過10MB。不需清理,TP只保留當天的log檔。
tss_sdk_shm_user*: so的使用者管理共用記憶體檔,大小固定,不能清理
dp_*: dp的關鍵設定檔,大小固定,不能清理
tss_sdk_game_svr_id_pool_file* :通道id控制檔,佔用空間小於1kB,不能清理
4./dev/shm : 放置由TP Process生成的共用記憶體檔
部署步驟:
(1)增加配置伺服器上對應的資訊
在新機器上新部署一套SecAgent服務前,需要聯繫平臺組同事預先在配置伺服器上添加對應的配置,否則服務進程啟動時拉不到配置會導致服務啟動失敗。需要提供的資訊為機器的IP位址,遊戲ID和大區號。
(G3全服後)當運維處遊戲伺服器IP列表有變更時,如增加、刪除機器,增加大區等,需要至少提前一天通知安全平臺組同事。
相關同事:stefzhou, sasukeliu
(2)安裝secagent服務
解壓安裝包後(默認解壓到目前的目錄),將SDK對應的.so檔和secsvr目錄放到對應的目錄下即可。安裝包默認將SO和secsvr子目錄解壓到目前的目錄下。
比如對於DNF遊戲,其SO和secsvr目錄均存放在/data/home/user00/game/目錄下,則只需將安裝包拷貝到game目錄下,然後在目前的目錄下解壓即可:
$ cp INSTALL_PKG.tgz /home/neople
$ cd /home/neople
$ tar zxvf INSTALL_PKG.tgz
安裝好SO和二進位後,需要檢查當前SO和二進位版本號是否為發佈的版本。版本號查看方法可見第四節的說明。
(3)檢查環境
由於服務進程需要寫共用檔,所以要檢查是否已經正常掛載了/dev/shm設備;若沒有掛載則需要手動掛載(注:需要root許可權):
# mount /dev/shm
(4)啟動遊戲伺服器進程
啟動遊戲伺服器時會載入SDK SO,保證遊戲伺服器進程能正常啟動。
(5)啟動SecAgent安全服務
在(1)~(4)都OK之後就可以啟動SecAgent服務了:
# 若secsvr放在目前的目錄下
$ cd /home/neople/secsvr/bin ## 啟動腳本所在目錄
$ sh start_secagent.sh ## 啟動secagent服務
啟動服務完成後,ps查看進程是看到secagent、zergsvr、gunnersvr三個二進位進程,三個tss_svr.sh腳本:
其中sh ../../bin/tss_svr.sh是啟停腳本,每個進程啟動、停止都由這個腳本拉起;同時還監控二進位進程是否正常運行,如果進程意外停止,tss_svr.sh腳本會自動拉取對應的二進位進程。
服務是否啟動成功需要檢查以下幾個方面:
(a)啟動時是否有錯誤log;
(b)日誌檔是否有錯誤log;
(c)帳單是否正常。
如果啟動有問題可參考相關運營文檔或聯繫平臺組開發同事幫忙定位處理。
(6)核對使用者資料是否正常
啟動成功後,還需要核對secagent的帳單,確認secagent進程與後端伺服器資料通信正常。檢查secagent帳單,看是否有後端伺服器下發的資料包,簡單方法如下:
# secagent log所在目錄
$ cd /home/neople/secsvr/run/secagent/log
$ tail -f secagent_bill_20120907.log |grep 404921490 ## 404921490為測試的uin號碼
然後登錄遊戲,進入對應的大區和頻道,看是否有"secsvr notify is change svr"和"secsvr notify rpcode crypt info"這兩條帳單,如下所示:
若有則說明secagent與後端伺服器通信ok;若沒有對應的帳單,則說明資料通道不正常,需要聯繫平臺組同事幫忙排查問題。
相關同事:sasukeliu,errayzhao
更新步驟:
(1)停止遊戲伺服器進程;
(2)停止SecAgent服務元件
# 若secsvr放在目前的目錄下
$ cd /home/neople/secsvr/bin ## 啟停腳本所在目錄
$ sh stop_secagent.sh ## 停止secagent服務
(3)運行清理腳本
# 若secsvr放在目前的目錄下
$ cd /home/neople/secsvr/bin ## 啟動腳本所在目錄
$ sh clean_g3_mmap.sh ## 運行清理腳本
(4)更新SO和二進位
由於安裝包在不指定輸出目錄的情況下,預設解壓到目前的目錄,所以僅需將安裝包複製到工作主目錄(如/data/home/user00/game/),然後目前的目錄下解壓即可覆蓋更新SDK SO和secagent二進位檔案:
$ cp INSTALL_PKG.tgz /home/neople/secsvr/bin
$ cd /home/neople/secsvr/bin
$ tar zxvf INSTALL_PKG.tgz # 解壓後覆蓋掉舊版本的SO和secagent二進位檔案
(5)驗證版本資訊
檢查更新後的SO和secagent二進位檔案的版本號是否為需要更新的版本。版本號驗證方式見第4節描述。
(6)啟動遊戲伺服器進程
啟動時檢查SO是否已經被正確載入。
(7)啟動SecAgent安全服務
啟動方式和注意事項同上一節"(5)啟動SecAgent安全服務"小結所述。
驗證版本資訊
4.1 SDK版本資訊
運行objdump查看so的版本號是否為需要發佈的版本:
$ objdump -Dx libantisvrimport.so |grep SONAME
如下圖所示的SO版本號為191:
4.2 二進位進程版本資訊
查看SecAgent服務對應的二進位版本號直接加-v參數即可,注意SecAgent服務對應secagent、zergsvr、gunnersvr三個二進位進程。
如下圖所示,對應的版本號為191版本:
µ /home/neople/secsvr/bin/clean_g3_mmap.sh:這個腳本的功能是清理TP業務的各種臨時文件、共享內存文件等。在df_game_r和TP process都運行的情況下禁止調用。只能在df_game_r和TP業務停止的狀態下才能調用。此腳本實質為清零腳本,在緊急情況下,Garena的技術人員可以在df和TP停機後,調用此腳本,再啟動tp和df解決部分緊急問題。
µ TP業務的啟動順序:在任何df_game_r停機的情況下,都推薦在df_game_r啟動之前,調用clean腳本,啟動TP後再啟動df_game_r
µ 和TP有關的任何不確定操作,麻煩諮詢longma或者其他TP技術接口,並溝通操作的原因、實施方案等。
µ Gameserver開服、停服、擴容、下架等變更時需要知會tencent,並提供變更的iplist, iplist需要包含IP和大區號。
µ Garena需要提供必要的運維人力以支撐Tencet許可權下的機器的現場應急處理(如機器故障時需要進行重啟、更換等)。
µ 版本發佈之前至少預留3個工作日供Tencent對用戶端進行保護工作。
µ 戶端DNF.exe每個版本exe及相應的map檔需要提供給Tencent,其中map盡可能提供明文map。
因異動頻繁,請參閱Google Document(IDC-Cabinet Position List)
因異動頻繁,請參閱Google Document(DNF_IPList)
種類 | SERVICE | NETWORK | 使用PORT | 外部(玩家) 是否開啟 |
Game | Game Server | public/private | TCP 10001 ~ 10099 | YES |
UDP 11001 ~ 11099 | YES | |||
|
| |||
Game Application | UDP Server (STUN) | public/ - | UDP 2311 ~ 2313 | YES |
Channel Server | public/private | TCP 7001 | YES | |
BUGDUMP | public/private | TCP 80 | YES | |
Relay | public/private | TCP 7101 ~ 7300 | YES | |
public/private | UDP 8101 ~ 8300 | YES | ||
Web | Web_Login | Public | TCP 80, 443 | YES |
· CentOS 5.8 版本 (64bit)
設置為NEOPLE提供的 ISO 圖片
Timezone : SERVER被設置完成的當下時間
# neople - time syncronize 0 */12 * * * root /usr/sbin/ntpdate -s time.stdtime.gov.tw && hwclock -w
Download URL :之後提供的DB SERVER
· 基本上和上方敘述相同.
MySQL 5.X.X 版本 (64bit)
NEOPLE這邊進行設置
File System: ext3 or xfs
[Game Server] [APP Server] [WEB Server] [COMMON Server] [Auction Server] [Relay Server] [Stun Server]
Mount Point | Size | File System |
/boot | 256MB | ext3 |
/home | 其餘剩下的 | xfs |
/ | 20GB | ext3 |
/tmp | 10GB | ext3 |
swap | 8GB | swap |
分隔劃分 設置
lvdisplay //LVM 分隔劃分確認
lvcreate -l 100%FREE -n lv_home vgdata // 製成分隔
mkfs.xfs /dev/vgdata/lv_home // 分隔以 xfs編排
echo "/dev/vgdata/lv_home /home xfs defaults 在1 2" >> /etc/fstab // /et/fstab設置
[DB Server]
Mount Point | Size | File System |
/boot | 256MB | ext3 |
/ | 20GB | ext3 |
/tmp | 10GB | ext3 |
/mysql | 50GB | xfs |
/data | 剩餘的全部 | xfs |
swap | 8GB | swap |
分隔劃分設置
lvcreate -L+20G -n lv_mysql vgdata
lvcreate -l 100%FREE -n lv_dblab vgdata
mkfs.xfs /dev/vgdata/lv_mysql
mkfs.xfs /dev/vgdata/lv_dblab
echo "/dev/vgdata/lv_mysql /mysql xfs defaults 0 0" >> /etc/fstab
echo "/dev/vgdata/lv_dblab /dblab xfs defaults 0 0" >> /etc/fstab
接下來的套用在全部SERVER套用 (在NEOPLE提供的 OS套用)
◈ Kernel parameter change
/etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
§ SYN cookies 套用 -> 全部SERVER共同套用, 包含DB SERVER, private network 內的 DB SERVER也會發生 SYN Attack
◈ /etc/security/limits.conf
$user soft nofile 2048
$user hard nofile 4096
§ Open file 數調整 -> 特殊應用的情況, 容許的數量超過1024的情況下也會發生
設定環境檔案之前, 先製成整理要使用的port的分流(頻道)分布表.
df_game_r
· 通訊錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設置 | 參考事項 |
/home/neople/game/ | 通訊錄 | game server base 通訊錄 | neople(neople) | 0755 | |
/home/neople/game/cfg | 通訊錄 | game server 程式的configuration 檔案通訊錄 | neople(neople) | 0755 | |
/home/neople/game/pid | 通訊錄 | game server 程式的 process id 紀錄通訊錄 | neople(neople) | 0755 | |
/home/neople/game/log | 通訊錄 | game server程式的log 紀錄通訊錄 | neople(neople) | 0755 | |
/home/neople/game/Script.pvf | 檔案 | 遊戲劇情檔案 | neople(neople) | 0755 | |
/home/neople/game/df_game_r | 檔案 | game server 二元檔案 | neople(neople) | 0755 | |
/home/neople/game/publickey.pem | 檔案 | 啟動SERVER時需要的認證鍵 | neople(neople) | 0755 | |
/home/neople/game/server_dnf.str | 檔案 | 劇情他國語言支援 | neople(neople) | 0755 | |
· 環境設定檔案 (/home/neople/game/cfg 中 "server名編號".cfg 中)cain01.cfg) 儲存.
下列為現在套用的server設定檔案,隨時可以變更 . |
gc_no = 1010 # 遊戲SERVER分流(頻道) udp_ip_of_monitor = 172.1.2.61# monitor server IP udp_ip_of_doublecheck = 172.1.2.51 # cut off server設定 udp_ip_of_statistic = 172.1.2.61 # 指標server ip udp_ip_of_guild = 172.1.2.61# 公會SERVER IP udp_ip_of_channel = 172.1.2.51#分流中繼server IP exchange_server_ip = 203.69.93.2 #玩家切換分流時使用 udp_ip_of_hades = 172.1.2.148 auction_server_ip = 172.1.2.91 //cera_auction_server_ip = 172.1.3.4 ipg_ip = 61.215.216.233 # billing server位置 relay_ip = 203.69.93.81# relay使用 IP stun_ip= 203.69.93.71 # stun ip 登錄 lls_keys = 3240332317335214766634233322344377569687 #eth Mac 的相關設定– 設定皆為neople提供 //chatting_server_ip = 172.1.3.4 db_thread_count = 3 # DB 連結數 master_db_ip = 172.1.2.141 server_group = 1 # 設定遊戲SERVER組 fatigue_time = 06 # 疲勞度重置時間 (早上6點) db_tbl_file = db_info_arad header_classification = 0 1 libserverlib_config_name = ServerLab script_dir = ./Script/ |
· 需要文庫
MySQL-share-community-5.x.xx.x.x64.rpm |
df_monitor_r
· 目錄 / 檔案位置結構
目錄 (檔案)名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/game/ | 目錄 | server程式 base 目錄 | neople(neople) | 0755 | |
/home/neople/game/cfg | 目錄 | server程式 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/game/pid | 目錄 | server程式 process id 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/game/log | 目錄 | server程式 log 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/game/table | 目錄 | game server和適用 IP port 資訊目錄 | neople(neople) | 0755 | |
/home/neople/game/table/server_config.tbl | 檔案 | game server和適用 IP port 資訊目錄 | neople(neople) | 0755 | |
/home/neople/game/df_monitor_r | 檔案 | 執行的程式 | neople(neople) | 0755 | |
· 環境設定檔案儲存於 (/home/neople/game/cfg "環境設定檔案名稱".cfg )mnt_cain.cfg) .
# field以 tab分離 #-------|-------------|-------|---------------|------------------| |
df_static_r
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 種類 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/statics/ | 目錄 | server程式的 base 目錄 | neople(neople) | 0755 | |
/home/neople/statics/cfg | 目錄 | server程式的 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/statics/pid | 目錄 | server程式的 process id 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/statics/log | 目錄 | server程式的 log 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/statics/table | 目錄 | game server和應用IP port資訊目錄 | neople(neople) | 0755 | |
/home/neople/statics/table/server_config.tbl | 檔案 | game server 和應用IP port資訊檔案 | neople(neople) | 0755 | |
/home/neople/statics/df_statics_r | 檔案 | 執行的程式 | neople(neople) | 0755 | |
· 環境設定檔案儲存於 (/home/neople/statics/cfg 中 "環境設定檔案名稱".cfg)stat_cain.cfg )
# field以 tab分離 # 行列數超過10以上的話,monitor server會修改來源 |
· 環境設定檔案儲存於 (/home/neople/dbmw_stat/table 中 server_config.tbl) .
#-------|-------------|-------|---------------|------------------| |
df_guild_r
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 種類 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/guild/ | 目錄 | server的程式 base 目錄 | neople(neople) | 0755 | |
/home/neople/guild/cfg | 目錄 | server的程式 configuration檔案目錄 | neople(neople) | 0755 | |
/home/neople/guild/pid | 目錄 | server的程式 process id 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/guild/log | 目錄 | server的程式 log 記錄目錄 | neople(neople) | 0755 | |
/home/neople/guild/table | 目錄 | game server和和應用IP port資訊目錄 | neople(neople) | 0755 | |
/home/neople/guild/table/server_config.tbl | 檔案 | game server和應用 IP port資訊檔案 | neople(neople) | 0755 | |
/home/neople/guild/df_guild_r | 檔案 | 執行的程式 | neople(neople) | 0755 | |
· 環境設定檔案儲存於 (/home/neople/game/cfg 中 "環境設定檔案名稱".cfg )gld_cain.cfg) .
# field以 tab分離 #-------|-------------|-------|---------------|------------------| |
df_dbmw_r(dbmw_mnt)
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/dbmw_mnt/ | 目錄 | server程式的 base 目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_mnt/cfg | 目錄 | server程式的configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_mnt/pid | 目錄 | server程式的 process id 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_mnt/log | 目錄 | server程式的 log紀錄目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_mnt/table | 目錄 | 서버 和應用IP port資訊目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_mnt/table/server_config.tbl | 檔案 | 서버 和應用IP port資訊檔案 | neople(neople) | 0755 | |
/home/neople/dbmw_mnt/df_dbmw_r | 檔案 | 執行的程式 | neople(neople) | 0755 | |
· 環境設定檔案儲存於 (/home/neople/game/cfg中 "環境設定檔案名稱".cfg) .
tick_value = 30 master_db_ip = 172.1.2.141 |
· 環境設定檔案儲存為 (/home/neople/dbmw_stat/table 에 server_config.tbl) .
#field 5j/3 tab으로 할것 #Server UDP Port => game server 設定檔案的 udp_port |
df_dbmw_r(dbmw_guild)
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/dbmw_guild/ | 目錄 | server 程式 base 目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_guild/cfg | 目錄 | server程式 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_guild/pid | 目錄 | server程式的 process id 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_guild/log | 目錄 | server程式的 log 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_guild/table | 目錄 | server和應用 IP port資訊目錄 | neople(neople) | 0755 | |
/home/neople/dbmw_guild/table/server_config.tbl | 檔案 | server和應用 IP 포트 資訊檔案 | neople(neople) | 0755 | |
/home/neople/dbmw_guild/df_dbmw_r | 檔案 | 執行的程式 | neople(neople) | 0755 | |
· 環境設定檔案儲存於 (/home/neople/game/cfg 中 "環境設定檔案名稱".cfg) .
tick_value = 30 master_db_ip = 172.1.2.141 |
· 環境設定檔案儲存於 (/home/neople/dbmw_stat/table 中 server_config.tbl) .
#field 以 tab分離 |
df_dbmw_r(dbmw_stat)
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/dbmw_stat/ | 目錄 | server程式的 base 目錄 | neople(neople) | 0755 |
|
/home/neople/dbmw_stat/cfg | 目錄 | server程式的 configuration 檔案目錄 | neople(neople) | 0755 |
|
/home/neople/dbmw_stat/pid | 目錄 | server程式的 process id 紀錄目錄 | neople(neople) | 0755 |
|
/home/neople/dbmw_stat/log | 目錄 | server程式的log 紀錄目錄 | neople(neople) | 0755 |
|
/home/neople/dbmw_stat/table | 目錄 | server和應用 IP port資訊目錄 | neople(neople) | 0755 |
|
/home/neople/dbmw_stat/table/server_config.tbl | 檔案 | server和 應用 IPport資訊檔案 | neople(neople) | 0755 |
|
/home/neople/dbmw_stat/df_dbmw_r | 檔案 | 執行的程式 | neople(neople) | 0755 |
|
· 環境設定檔案儲存於 (/home/neople/game/cfg 中 "環境設定檔案名稱".cfg)儲存.
tick_value = 30 master_db_ip = 172.1.2.141 |
· 環境設定檔案儲存於 (/home/neople/dbmw_stat/table中 server_config.tbl) .
#-------|-------------|-------|---------------|------------------| |
df_bridge_r
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/bridge/ | 目錄 | server檔案的 base 目錄 | neople(neople) | 0755 | |
/home/neople/bridge/cfg | 目錄 | server檔案的 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/bridge/pid | 目錄 | server檔案的 process id紀錄目錄 | neople(neople) | 0755 | |
/home/neople/bridge/log | 目錄 | server程式的 log 記錄目錄 | neople(neople) | 0755 | |
/home/neople/bridge/df_bridge_r | 檔案 | 執行的程式 | neople(neople) | 0755 | |
· 環境設定檔案儲存於 (/home/neople/bridge/cfg 中 "環境設定檔案名稱".cfg) .
[server] max_client = 1000 |
df_manager_r
· 目錄 /檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/manager/ | 目錄 | server程式的 base 目錄 | neople(neople) | 0755 | |
/home/neople/manager/cfg | 目錄 | server程式的 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/manager/pid | 目錄 | server程式的 process id 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/manager/log | 目錄 | server程式的 log 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/manager/table | 目錄 | server和應用 IP port資訊目錄 | neople(neople) | 0755 | |
/home/neople/manager/df_manager_r | 檔案 | 執行的程式 | neople(neople) | 0755 | |
· 環境設定檔案儲存於 (/home/neople/manager/cfg 中"環境設定檔案名稱".cfg)
# field以 tab分離 # 行列數超過10以上的話,monitor server會修改來源 |
df_community_r
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/community/ | 目錄 | server程式的 base 目錄 | neople(neople) | 0755 | |
/home/neople/community/cfg | 目錄 | server程式的 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/community/pid | 目錄 | server程式的 process id 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/community/log | 目錄 | server程式的 log 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/manager/df_community_r | 檔案 | 執行的程式 | neople(neople) | 0755 | |
· 環境設定檔案 (/home/neople/community/cfg 中的 "環境設定檔案名稱".cfg 中) community.cfg) 儲存.
port = 31100 |
df_coserver_r
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/coserver/ | 目錄 | server程式的 base 目錄 | neople(neople) | 0755 | |
/home/neople/coserver/cfg | 目錄 | server程式的 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/coserver/pid | 目錄 | server程式的 process id記錄目錄 | neople(neople) | 0755 | |
/home/neople/coserver/log | 目錄 | server程式的 log 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/coserver/table | 目錄 | server和應用 IP port資訊目錄 | neople(neople) | 0755 | |
/home/neople/coserver/df_coserver_r | 檔案 | 要執行的程式 | neople(neople) | 0755 | |
· 環境設定檔案儲存於 (/home/neople/game/cfg 中 "環境設定檔案名稱".cfg )coserver.cfg)
# fieldab # Cain Server |
df_stun_r
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/stun/ | 目錄 | server程式的base 目錄 | neople(neople) | 0755 | |
/home/neople/stun/cfg | 目錄 | server程式的 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/stun/pid | 目錄 | server程式的 process id 記錄目錄 | neople(neople) | 0755 | |
/home/neople/stun/log | 目錄 | server程式的 log 記錄目錄 | neople(neople) | 0755 | |
/home/neople/stun/table | 目錄 | server和應用 IP port資訊目錄 | neople(neople) | 0755 | |
/home/neople/stun/df_stun_r | 檔案 | 執行的程式 | neople(neople) | 0755 | 各SERVER啟動3個 |
· 環境設定檔案儲存為 (/home/neople/stun/cfg 中 "環境設定檔案名稱".cfg) .
#cfg config 2311 |
df_relay_r
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/relay/ | 目錄 | server程式的 base 目錄 | neople(neople) | 0755 | |
/home/neople/relay/cfg | 目錄 | server程式的 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/relay/pid | 目錄 | server程式的 process id 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/relay/log | 目錄 | server程式的 log 紀錄目錄 | neople(neople) | 0755 | |
/home/neople/relay/table | 目錄 | server和應用 IP port資訊目錄 | neople(neople) | 0755 | |
/home/neople/relay/df_relay_r | 檔案 | 執行的程式 | neople(neople) | 0755 | 各server啟動15個 |
· 環境設定檔案儲存於 (/home/neople/stun/cfg中 "環境設定檔案名稱".cfg 예)relay_200.cfg ) .
各物理server有 CFG 15個
[server] [aradauth] |
df_channel_r
· 目錄 / 檔案位置結構
目錄 (檔案) 名稱 (full path) | 區分 | 說明 | 擁有者 (所屬團隊) | 權限設定 | 參考事項 |
/home/neople/channel/ | 目錄 | server程式的 base目錄 | neople(neople) | 0755 | |
/home/neople/channel/cfg | 目錄 | server程式的 configuration 檔案目錄 | neople(neople) | 0755 | |
/home/neople/channel/pid | 目錄 | server程式的 c process id 記錄檔案 | neople(neople) | 0755 | |
/home/neople/channel/log | 目錄 | server程式的 c log 紀錄檔案 | neople(neople) | 0755 | |
/home/neople/channel/channel_info | 目錄 | game server 和應用 IP port資訊目錄 | neople(neople) | 0755 | |
/home/neople/channel/df_channel_r | 檔案 | 執行的程式 | neople(neople) | 0755 | 各SERVER啟動1個 |
· 環境設定檔案 (/home/neople/channel/cfg 中以 "環境設定檔案名稱".cfg) 儲存
[server] |
Game Process | |||
Server Name | Process Name | File path | |
GameSvr & StageSvr01 | df_game_r | /home/neople/game/ | |
Start Command: | Stop Command: | ||
./df_game_r [CFG Name] start | ./df_game_r [CFG Name] stop |
Channel Process | |||
Server Name | Process Name | File path | |
ChannelSvr & StageSvr01 | df_channel_r | /home/neople/channel/ | |
Start Command: | Stop Command: | ||
./df_channel_r [CFG Name] start | ./df_channel_r [CFG Name] stop |
Relay Process | |||
Server Name | Process Name | File path | |
RelaySvr & StageSvr01 | df_relay_r | /home/neople/relay/ | |
Start Command: | Stop Command: | ||
./df_relay_r [CFG Name] start | ./df_relay_r [CFG Name] stop |
Stun Process | |||
Server Name | Process Name | File path | |
StunSvr & StageSvr01 | df_stun_r | /home/neople/stun/ | |
Start Command: | Stop Command: | ||
./df_stun_r [CFG Name] start | ./df_stun_r [CFG Name] stop |
DBMW_Guild Process | |||
Server Name | Process Name | File path | |
AppSvr & StageSvr02 | df_dbmw_r | /home/neople/dbmw_guild/ | |
Start Command: | Stop Command: | ||
./df_dbmw_r [CFG Name] start | ./df_dbmw_r [CFG Name] stop |
DBMW_mnt Process | |||
Server Name | Process Name | File path | |
AppSvr & StageSvr02 | df_dbmw_r | /home/neople/dbmw_ mnt / | |
Start Command: | Stop Command: | ||
./df_dbmw_r [CFG Name] start | ./df_dbmw_r [CFG Name] stop |
DBMW_stat Process | |||
Server Name | Process Name | File path | |
AppSvr & StageSvr02 | df_dbmw_r | /home/neople/dbmw_ stat/ | |
Start Command: | Stop Command: | ||
./df_dbmw_r [CFG Name] start | ./df_dbmw_r [CFG Name] stop |
guild Process | |||
Server Name | Process Name | File path | |
AppSvr & StageSvr02 | df_guild_r | /home/neople/guild/ | |
Start Command: | Stop Command: | ||
./df_guild_r [CFG Name] start | ./df_guild_r [CFG Name] stop |
statics Process | |||
Server Name | Process Name | File path | |
AppSvr & StageSvr02 | df_statics_r | /home/neople/statics/ | |
Start Command: | Stop Command: | ||
./df_statics_r [CFG Name] start | ./df_ statics _r [CFG Name] stop |
monitor Process | |||
Server Name | Process Name | File path | |
AppSvr & StageSvr02 | df_monitor_r | /home/neople/monitor/ | |
Start Command: | Stop Command: | ||
./df_monitor_r [CFG Name] start | ./df_monitor_r [CFG Name] stop |
auction Process | |||
Server Name | Process Name | File path | |
AuctionSvr & StageSvr02 | df_auction_r | /home/neople/auction/ | |
Start Command: | Stop Command: | ||
./df_auction_r [CFG Name] start | ./df_auction_r [CFG Name] stop |
point Process | |||
Server Name | Process Name | File path | |
AuctionSvr & StageSvr02 | df_point_r | /home/neople/point/ | |
Start Command: | Stop Command: | ||
./df_point_r [CFG Name] start | ./df_point_r [CFG Name] stop |
bridge Process | |||
Server Name | Process Name | File path | |
ChannelBridge & StageSvr02 | df_bridge_r | /home/neople/bridge/ | |
Start Command: | Stop Command: | ||
./df_bridge_r [CFG Name] start | ./df_bridge_r [CFG Name] stop |
community Process | |||
Server Name | Process Name | File path | |
ChannelBridge & StageSvr02 | df_community_r | /home/neople/community/ | |
Start Command: | Stop Command: | ||
./df_ community _r [CFG Name] start | ./df_ community _r [CFG Name] stop |
coserver Process | |||
Server Name | Process Name | File path | |
ChannelBridge & StageSvr02 | df_coserver_r | /home/neople/coserver/ | |
Start Command: | Stop Command: | ||
./df_coserver_r [CFG Name] start | ./df_coserver_r [CFG Name] stop |
manager Process | |||
Server Name | Process Name | File path | |
ChannelBridge & StageSvr02 | df_manager_r | /home/neople/manager/ | |
Start Command: | Stop Command: | ||
./df_manager_r [CFG Name] start | ./df_manager_r [CFG Name] stop |
各程式的 LOG 會定期的刪除, 讓硬碟維持一定的空間
每個程式以同時在線600人為基準,1天的LOG量約 350M~ 400M
每台SERVER啟動10個程式,一天的總LOG量約為 4G .
實行時間 | 腳本 (+ 變數) | 實行SERVER | 說明 |
最初設置SERVER時 | /home/neople/crontab/upload_log_1h_log1_tw.sh | game SERVER | 將history LOG傳送到 LogTool(172.1.2.151) SERVER |
最初設置SERVER時 | /home/neople/crontab/rm_log_17day.sh | 全部SERVER | 刪除LOG |
最初設置SERVER時 | /home/neople/crontab/removeOldFiles.sh | 全部SERVER | 清除時間過久的LOG. |
最初設置SERVER時 | /home/neople/crontab/zip_log_1day.sh | 全部SERVER | 壓縮LOG |
² 以下所有的操作皆使用Neople帳戶登入,不需切換root權限。使用root權限進行操作可能會導致服務發生異常。
² 每次進行操作時,一定要確認目前Process的運行狀態。執行ps –efl | grep start
² 一定要按照步驟進行操作,Middleware資料回寫至DB才會正常。否則可能會造成資料回溯的狀況產生。
² 若原廠有要求全部APP Server進行重啟系統作業,請按照全部開關機流程進行。
² 若一般進行維護,關機可省略步驟7,8,9,開機可省略步驟1,2,3
1. 操作伺服器:DNF-ChannelSvr[1-3]
Process Name: df_channel_r
Command: /home/neople/ctrl.sh channel start
Check Process: ps –efl | grep start
2. 操作伺服器:DNF-RelaySvr[1-3]
Process Name: df_relay_r
Command: /home/neople/ctrl.sh relay start
Check Process: ps –efl | grep start
3. 操作伺服器:DNF-StunSvr[1-3]
Process Name: df_stun_r
Command: /home/neople/ctrl.sh stun start
Check Process: ps –efl | grep start
4. 操作伺服器:DNF-ChannelBridge
Process Name: df_manager_r, df_bridge_r, df_community_r, df_coserver_r
Command: /home/neople/ctrl.sh all_common start
Check Process: ps –efl | grep start
5. 操作伺服器:DNF-AuctionSvr
Process Name: df_auction_r, df_point_r
Command: /home/neople/ctrl.sh all_auction start
/home/neople/ctrl.sh all_point start
Check Process: ps –efl | grep start
6. 操作伺服器:DNF-APPSVR[1-3]
Process Name: dw_dbmw_r, df_guild_r, df_monitor_r, df_statics_r
Command: /home/neople/ctrl.sh all_app start
Check Process: ps –efl | grep start
7. 操作伺服器:DNF-GameSvr[1-11] TP Service
Process Name: zergsvr, secagent, gunnersvr
Command: /home/neople/secsvr/bin/clean_g3_mmap.sh
/home/neople/secsvr/bin/start_secagent.sh
Check Process: ps –efl | grep start
8. 操作伺服器:DNF-GameSvr[1-11]
Process Name: df_game_r
Command: /home/neople/ctrl.sh game start
Check Process: ps –efl | grep start
9. 登入遊戲確認伺服器群是否正確開啟
10. 確認伺服器群頻道列表皆正常啟動。
1. 操作伺服器:DNF-GameSvr[1-11]
Process Name: df_game_r
Command: /home/neople/ctrl.sh game stop
Check Process: ps –efl | grep start
2. 操作伺服器:DNF-GameSvr[1-11] TP Service
Process Name: zergsvr, secagent, gunnersvr
Command: /home/neople/secsvr/bin/stop_secagent.sh
/home/neople/secsvr/bin/clean_g3_mmap.sh
Check Process: ps –efl | grep start
3. 操作伺服器:DNF-APPSVR[1-3]
Process Name: dw_dbmw_r, df_guild_r, df_monitor_r, df_statics_r
Command: /home/neople/ctrl.sh all_app stop
Check Process: ps –efl | grep start
4. 操作伺服器:DNF-AuctionSvr
Process Name: df_auction_r, df_point_r
Command: /home/neople/ctrl.sh all_auction start
/home/neople/ctrl.sh all_point start
Check Process: ps –efl | grep start
5. 操作伺服器:DNF-ChannelBridge
Process Name: df_manager_r, df_bridge_r, df_community_r, df_coserver_r
Command: /home/neople/ctrl.sh all_common start
Check Process: ps –efl | grep start
6. 操作伺服器:DNF-StunSvr[1-3]
Process Name: df_stun_r
Command: /home/neople/ctrl.sh stun stop
Check Process: ps –efl | grep start
7. 操作伺服器:DNF-RelaySvr[1-3]
Process Name: df_relay_r
Command: /home/neople/ctrl.sh relay stop
Check Process: ps –efl | grep start
8. 操作伺服器:DNF-ChannelSvr[1-3]
Process Name: df_channel_r
Command: /home/neople/ctrl.sh channel stop
Check Process: ps –efl | grep start
9. 登入遊戲確認伺服器群是否正確關閉
² 以下所有的操作皆使用Neople帳戶登入,不需切換root權限。使用root權限進行操作可能會導致服務發生異常。
² 每次進行操作時,一定要確認目前Process的運行狀態。執行ps –efl | grep start
² 一定要按照步驟進行操作,Middleware資料回寫至DB才會正常。否則可能會造成資料回溯的狀況產生。
² 測試機禁止重啟系統,如果有必需要重啟,一定要通知原廠進行服務關閉及檢查。
測試機沒有sh可供直接啟動及關閉服務,所有服務都必需用手動開啟及關閉。
目前測試機共有兩台AP Svr及兩台DB Svr
StageSvr01: GameServer Process
StageSvr02: Backend Process
StageSvr03-04: DB
所有服務皆使用單一Process指令進行開關作業,請參閱 第十章DNF服務手動操作方式。
測試機一樣必需按照正式機開關機的流程進行。
開機: Stun = Relay = Channel >> ChannelBridge >> Auction >> App >> GameSvr(TP) >> GameSvr(Game)
關機: GameSvr(Game) >> GameSvr(TP) >> App >> Auction >> ChannelBridge >> Stun = Relay = Channel
因異動頻繁,請參閱Google Document(DNF例行性維護排程表)或範本頁面。
每週三固定寄出當週排程表,供其他部門參考維護排程內容。
1. 確認版本更新時程(包含正式服套用時間,測試機更新時間,TP估計作業時間等等)
2. Neople新版本更新至測試機(Server & Client Patch)
3. 與QA討論目前測試機版本測試進度
4. 確認本次更新版本Final Build,與Neople要求DNF.exe及map檔案
5. 提供DNF.exe及map檔案給騰訊TP團隊
6. 與TP團隊確認封裝完成時間
7. TP封裝檔案回傳,提供給技術部門進行數位簽章
8. 將數位簽章版本提供給Neople
9. Neople將TP版本上傳至測試機Patch Server,三方進行TP功能測試。
10. 與QA確認本次維護內部測試時間
11. 與Neople確認本次維護DB作業時間
12. 與TP確認本次是否有Server Patch及特殊作業事項
13. 與Neople確認本次需更新哪些Server Patch及特殊作業事項。
14. 列出本次例行性維護排程表與三方(Garena, Neople, TP)知會本次作業時間。
· BugReport(172.1.2.164) SERVER被配置為在中央發佈的SERVER .
· 配置二元以外的檔案資料夾 : /home/neople/patch/TWDF_Server_LIVE_tw/Server
· 更新時終止server的狀態下,各server移動到/home/neople/,執行script.
執行時間 | 劇情 (+ 劇情變數) | 執行server | 說明 |
維護中 | /home/neople/patch_new.sh | 全部 | 形成的目錄全部會在 BugReport(172.1.2.164) server同步. 原有的CFG會維持保留. (CFG 無變化) |
新增server/server變更時 | /home/neople/patch_new.sh dire cain siro | APP, Game server | 形成的目錄全部會在 BugReport(172.1.2.164) server同步, 變更或是新增的 dire 會套用server相關的 CFG. |
Relay server新增 | /home/neople/patch_new.sh relay | Relay Server | 形成的目錄全部會在 BugReport(172.1.2.164) server同步, CFG要變換執行relay Process的 CFG 的server IP. |
| | | |
1. 請原廠提供頻道列表資訊excel,可參閱範例檔案130319_TWDF_Channel list_CBT_v 1TW.xlsx
2. 連接到BugReport(172.1.2.164) SERVER.將要變更的GAME SERVER移動到CFG 資料夾.
例:卡恩伺服器 : /home/neople/patch/TWDF_Server_LIVE_tw/server/game/cfg_cain
3. 執行該資料夾裡的 "chc"的命令.
[neople@BugReport ~/patch/TWDF_Server_LIVE_tw/server/game/cfg_cain]$ chc
Server ip?
203.69.93.2 203.69.93.3 203.69.93.4 203.69.93.5 203.69.93.6
channel num?
01 06 07 11 12 13 14 15 16 17 18,19 20 21 22 23 24 25 26 27 28 29,30 31 32 33 34 35 36 37 38 39 40,41,42
Server Name?
cain
server gc?
10
sever lls_key?
3240332317335214766634233322344377569687 3240332317335214766634233322344387560827 3240332317335214766634233322344377569627 3240332317335214766634223722146347566887 3240332317335214766634233322344367366567
01 06 07 11 12 13 14 15 16 17 18
01 06 07 11 12 13 14 15 16 17 18
cp: `cain01.cfg' and `cain01.cfg' are the same file
ip = 203.69.93.2
gc_no = 1001
exchange_server_ip = 203.69.93.2
exchange_server_port = 20011
tcp_port = 10011
udp_port = 11011
01 06 07 11 12 13 14 15 16 17 18
ip = 203.69.93.2
gc_no = 1006
exchange_server_ip = 203.69.93.2
exchange_server_port = 20012
tcp_port = 10012
udp_port = 11012
01 06 07 11 12 13 14 15 16 17 18
ip = 203.69.93.2
gc_no = 1007
exchange_server_ip = 203.69.93.2
exchange_server_port = 20013
tcp_port = 10013
udp_port = 11013
01 06 07 11 12 13 14 15 16 17 18
ip = 203.69.93.2
gc_no = 1011
exchange_server_ip = 203.69.93.2
exchange_server_port = 20014
tcp_port = 10014
udp_port = 11014
01 06 07 11 12 13 14 15 16 17 18
ip = 203.69.93.2
gc_no = 1012
exchange_server_ip = 203.69.93.2
exchange_server_port = 20015
tcp_port = 10015
udp_port = 11015
01 06 07 11 12 13 14 15 16 17 18
ip = 203.69.93.2
..........(중간생략)
relay_IP?
203.69.93.81
cain01.cfg
relay_ip = 203.69.93.81
relay_tcp_port = 7200
relay_udp_port = 7200
cain06.cfg
relay_ip = 203.69.93.81
relay_tcp_port = 7200
relay_udp_port = 7200
cain07.cfg
relay_ip = 203.69.93.81
relay_tcp_port = 7200
relay_udp_port = 7200
cain11.cfg
relay_ip = 203.69.93.81
relay_tcp_port = 7201
relay_udp_port = 7201
cain12.cfg
relay_ip = 203.69.93.81
relay_tcp_port = 7201
relay_udp_port = 7201
cain13.cfg
.... (中間省略)
4. CFG 設定和上面一樣的 Server IP,輸入 channel 數, Server Name, server gc Number, lls_key, relay IP的話, 就會產生所輸入的分流數.
5. 之後在卡恩伺服器組物理SERVER的 /home/neople/命令執行 ./patch_new.sh cain 的話,就會找到該SERVER IP並複製到CFG 資料夾.
6. 通知Neople調整頻道標籤,如下圖:.
1. 為了追加新的SERVER,NEOPLE這邊需要產新的 LLS Key.
以下列形式告知 SERVER限制 IP和 Eth0的 HW Mac就可以了.
** (限制IP若有 Eth0 以外的,請務必告知限制的 IP和 Eth0的 HW Mac .) **
例如
172.1.2.11 AC:16:2D:73:CC:DC
172.1.2.12 AC:16:2D:74:19:18
以下為使用中的 Server LLS Key List
172.1.2.2 AC:16:2D:78:D8:D4 KEY : 3240332317335214766634233322344377569687 172.1.2.3 AC:16:2D:78:D9:EC KEY : 3240332317335214766634233322344387560827 172.1.2.4 AC:16:2D:78:D8:D8 KEY : 3240332317335214766634233322344377569627 172.1.2.5 AC:16:2D:72:21:E8 KEY : 3240332317335214766634223722146347566887 172.1.2.6 AC:16:2D:78:D7:00 KEY : 3240332317335214766634233322344367366567 172.1.2.7 AC:16:2D:78:D8:CC KEY : 3240332317335214766634233322344377569507 172.1.2.8 AC:16:2D:78:D8:F0 KEY : 3240332317335214766634233322344377569967 172.1.2.9 AC:16:2D:78:D8:DC KEY : 3240332317335214766634233322344377569767 172.1.2.10 AC:16:2D:78:D6:E4 KEY : 3240332317335214766634233322344357567747 172.1.2.11 AC:16:2D:73:CC:DC KEY : 3240332317335214766634223822343357566767 172.1.2.12 AC:16:2D:74:19:18 KEY : 3240332317335214766634223922145367365707 |
2. 產生新伺服器的CFG檔案,請參閱第十六章第一節 頻道異動方式說明。
3. 在新的Server上進行APP Svr CFG設置
[neople@AppSpare1 ~]$ mkdir dbmw_stat dbmw_guild dbmw_mnt monitor guild statics //APP 產出資料夾
[neople@AppSpare1 ~]$ rsync -av --exclude=.svn 172.1.2.164::patch/TWDF_Server_LIVE_tw/*.sh ./ //遊戲管理劇本同步
receiving incremental file list
a.sh
ctrl.sh
patch.sh
patch_copy.sh
patch_copy_svn.sh
patch_new.sh
sent 151 bytes received 15681 bytes 10554.67 bytes/sec
total size is 15280 speedup is 0.97
[neople@AppSpare1 ~]$ ./patch_new.sh cain // APP SERVER同化的例子)Cain SERVER組的 APP程式被同化後,各程式的 Cain 相關 CFG檔案會自動複製到各程式的CFG資料夾
receiving incremental file list
dbmw_guild/
dbmw_guild/df_dbmw_r
dbmw_guild/server_str.xml
dbmw_guild/cfg/
dbmw_guild/cfg_backup/
dbmw_guild/cfg_backup/dbmw_gld_cain.cfg
dbmw_guild/cfg_backup/dbmw_gld_dire.cfg
dbmw_guild/cfg_backup/dbmw_gld_siro.cfg
dbmw_guild/cfg_backup/dbserver.cfg
dbmw_guild/log/
dbmw_guild/pid/
dbmw_guild/table/
dbmw_guild/table/server_config.tbl_cain
dbmw_guild/table/server_config.tbl_dire
dbmw_guild/table/server_config.tbl_siro
sent 293 bytes received 4080186 bytes 2720319.33 bytes/sec
total size is 4078913 speedup is 1.00
receiving incremental file list
dbmw_mnt/
dbmw_mnt/df_dbmw_r
dbmw_mnt/server_str.xml
dbmw_mnt/cfg/
dbmw_mnt/cfg_backup/
dbmw_mnt/cfg_backup/dbmw_mnt_cain.cfg
dbmw_mnt/cfg_backup/dbmw_mnt_dire.cfg
dbmw_mnt/cfg_backup/dbmw_mnt_siro.cfg
dbmw_mnt/cfg_backup/dbserver.cfg
dbmw_mnt/log/
dbmw_mnt/pid/
dbmw_mnt/table/
dbmw_mnt/table/server_config.tbl_cain
dbmw_mnt/table/server_config.tbl_dire
dbmw_mnt/table/server_config.tbl_siro
sent 293 bytes received 4080248 bytes 2720360.67 bytes/sec
total size is 4078977 speedup is 1.00
receiving incremental file list
dbmw_stat/
dbmw_stat/df_dbmw_r
dbmw_stat/server_str.xml
dbmw_stat/cfg/
dbmw_stat/cfg_backup/
dbmw_stat/cfg_backup/dbmw_stat_cain.cfg
dbmw_stat/cfg_backup/dbmw_stat_dire.cfg
dbmw_stat/cfg_backup/dbmw_stat_siro.cfg
dbmw_stat/cfg_backup/dbserver.cfg
dbmw_stat/log/
dbmw_stat/pid/
dbmw_stat/table/
dbmw_stat/table/server_config.tbl_cain
dbmw_stat/table/server_config.tbl_dire
dbmw_stat/table/server_config.tbl_siro
sent 293 bytes received 4079097 bytes 2719593.33 bytes/sec
total size is 4077816 speedup is 1.00
receiving incremental file list
guild/
guild/df_guild_r
guild/server_str.xml
guild/cfg/
guild/cfg_backup/
guild/cfg_backup/gld_cain.cfg
guild/cfg_backup/gld_dire.cfg
guild/cfg_backup/gld_siro.cfg
guild/cfg_backup/guild.cfg
guild/log/
guild/pid/
guild/script/
guild/script/kill_user_config.tbl
guild/script/power_war_event.tbl
sent 274 bytes received 2308008 bytes 4616564.00 bytes/sec
total size is 2306997 speedup is 1.00
receiving incremental file list
monitor/
monitor/df_monitor_r
monitor/cfg/
monitor/cfg_backup/
monitor/cfg_backup/mnt_cain.cfg
monitor/cfg_backup/mnt_dire.cfg
monitor/cfg_backup/mnt_siro.cfg
monitor/cfg_backup/monitor.cfg
monitor/log/
monitor/pid/
monitor/script/
monitor/script/kill_user_config.tbl
monitor/script/member_cnt_config.tbl
monitor/script/member_exp.tbl
sent 274 bytes received 2456112 bytes 4912772.00 bytes/sec
total size is 2455095 speedup is 1.00
receiving incremental file list
statics/
statics/df_statics_r
statics/cfg/
statics/cfg_backup/
statics/cfg_backup/stat_cain.cfg
statics/cfg_backup/stat_dire.cfg
statics/cfg_backup/stat_siro.cfg
statics/cfg_backup/statistic.cfg
statics/log/
statics/pid/
statics/table/
statics/table/server_config.tbl_cain
statics/table/server_config.tbl_dire
statics/table/server_config.tbl_siro
sent 274 bytes received 1755234 bytes 1170338.67 bytes/sec
total size is 1754312 speedup is 1.00
[neople@AppSpare1 ~]$
4. 新遊戲SERVER的實行和下面一樣
5. Autcon, Point 程式只能在Autcon SERVER(172.1.2.91)進行同步(./patch_new.sh auction)
6. 進行確認各程序,嘗試啟動新伺服器,測試各CFG是否正常套用。
紀錄名 | 說明 |
Log20130212.cri | |
Log20130212.debug | |
Log20130212.error | |
Log20130212.init | 遊戲啟動時, 紀錄在控制台畫面出現的LOG |
Log20130212.log | 從SERVER端結束CLIENT時,發生的ERROR CODE紀錄 |
Log20130212.money | |
Log20130212.snap | |
因異常狀況Game Process中止,發生core 檔案時,如下圖:
-rw------- 1 neople neople 1.1G Feb 15 11:17 core.12822 |
解決方案 : 先將GameSERVER重新啟動,把Core檔案壓縮後並傳給Neople研發團隊進行分析。
因為df_game_r而累積於 DB列上,造成記憶體增加
程式記憶體到達 4G後,SERVER會斷線,因為記憶體未復原,造成記憶體不足。
Neople這邊修正中,發生此狀況請先記錄後通知原廠處理。
沒有db_info.cfg 檔案或是 cfg 檔案裡的db_tbl_file = db_info_tw 部分有錯誤時會發生
[!] Init DataManager Success
[!] Init GameManager ...
[!] Init GameManager Success
[!] Init Arad GameScriptManager ...
- Loading Avatar Hidden Option - Success
- Loading Avatar Recharge script - Success
- Loading Emblem Compound script - Success
- Loading Item Reward Script - Success
- Loading Event Period Script - Success
- Loading Statistics Item List - Success
- Loading NexonFolder Script - Success
- Loading Avatar Convert script - Success
[!] Init Arad GameScriptManager Success
[!] Init ChannelType Success
- Channel Type : 8
[!] Init tournament db [!] Init tournament db Fail
解決方案 : 請將db_info 檔案名稱和 cfg 檔案的 " db_tbl_file ="欄統一
1. 重複執行和存在 pid檔案時發生,產生下列的錯誤訊息:
[neople@gamesvr10 ~/game]$ ./df_game_r cain41 start
**********************************************************
* +--- +-+ + +---- DUNGEON & FIGHTER *
* | | | | | | *
* | | | | | +---- *
* | | | | | | Open Beta Test on 2005.08.10~ *
* +--- + +-+ | Copyright(c) 2004,2005 Neople Co. *
**********************************************************
[!] Service Date (13-02-15/10:31)
[HackShield Anti Crack Message] [Success] _AhnHS_CreateServerObject
[!] Check Args ...
m_Server_info.lls_key,: 3240332317335214766634223822343357566767
lls_key :: 3240332317335214766634223822343357566767
[!] Server key Check OK
- cfg path: ./cfg/cain41.cfg
- pid path: ./pid/cain41.pid
Process(ch.41) is already operated.
[!] Check Args Fail
解決方案 : 已經執行此程式,請停止或是將 pid 值刪除後重新執行.
2. 因SERVER鍵發生錯誤而無法執行,如下列的錯誤訊息:
[neople@gamesvr10 ~/game]$ ./df_game_r cain41 start
**********************************************************
* +--- +-+ + +---- DUNGEON & FIGHTER *
* | | | | | | *
* | | | | | +---- *
* | | | | | | Open Beta Test on 2005.08.10~ *
* +--- + +-+ | Copyright(c) 2004,2005 Neople Co. *
**********************************************************
[!] Service Date (13-02-15/10:37)
[HackShield Anti Crack Message] [Success] _AhnHS_CreateServerObject
[!] Check Args ...
m_Server_info.lls_key,: 324033231733521476663422382234335756676
lls_key :: 324033231733521476663422382234335756676
[!] Server key Check FAIL
[!] Check Args Fail
解決方案 : 向NEOPLE邀請,新增伺服器群,請參考第十六章 第二節 新增伺服器群組
3. DB資訊ERROR1,請參考下列兩項錯誤訊息
Application App Config Load_Table() Success!
Application Server Config Load_Table() Success!
Application Init Frame Count() Success!
Application UDP Handler Create() Success!
Application Server Handler Create() Success!
Application Packet Translater Attach() Success!
Application Packet Decoder Attach() Success!
Application DB Manager Init() Success!
E_MASTER_DB Open Success!
DB Open Fail
- Open(type:14, 172.1.2.131/3306/taiwan_game/taiwean_billing
- mysql_real_connect(ip:172.1.2.131, port:3306, name:taiwean_billing, id:taiwan_game error='1049') fail
- DBConnector Connect DB Fail
[!] Init GlobalData Fail
解決方案 : 在存放DB資訊的table上 無正確輸入 DB帳號/ 密碼 / DB名稱時會發生
請與Neople連繫,確認連線設定與帳號密碼無誤。
4. DB資訊ERROR2,請參考下列兩項錯誤訊息:
./../Include/FilePack/Pack.cpp(819) - get
../../Include/FilePack/Pack.cpp(819) - get
../../Include/FilePack/Pack.cpp(819) - get
../../Include/FilePack/Pack.cpp(819) - get
../../Include/FilePack/Pack.cpp(819) - get
Success
[!] Init Login State Success
Fail insert Event Table
- Open(type:13, 172.1.2.131/3306/taiwan_game/taiwan_se_event
- Open(type:14, 172.1.2.131/3306/taiwan_game/taiwan_billing
- All DB Open Success
- Init Query Table Success
- Success WEB DB OPEN
Failed to read slang list
[!] Init GlobalData Fail
解決方案 : DB資料可能有異常狀況,和NEOPLE DBA負責人員邀請 DB資料。
在4/25之前的df_game_r版本,有發生Game Process啟動之後,會在運行到某個函式庫的function時發生CPU使用率開始升高的狀況。
使用top指令,確認有異常的Process PID Number
使用ps –efl | grep start指令,確認PID 對應的Process
使用pkill -9 [PID]指令,刪除異常的Process
刪除/home/neople/game/pid/[異常ProcessName].pid檔案
使用/home/neople/game/df_game_r [異常ProcessName] start指令,重新啟動服務
使用ps –efl | grep start指令,確認服務正常開啟。
順序 | 程式名稱 | 依賴性 | 啟動終止 (例子) | 備註 |
1 | df_game_r | 和DB有依賴性 | ./df_game_r cain01 stop | - SERVER終止程式 1. Configure file loading 2. 終止時確認argument 3. Pid file loading 後 SIGUSR2 Signal 傳送 4. Accept thread 結束 5. 將連線中的 USER 強制 logout 6. Server 節制 7. MONITOR SERVER透過 Heart beat確認SERVER斷線後進行處理 |
2 | df_auction_r | DB | ./df_auction_r ./cfg/auction_cain.cfg stop df_auction_r | 服務中,和開發組討論後重啟程式 |
3 | df_guild_r | df_dbmw_r | ./df_guild_r gld_cain stop | |
4 | df_statics_r | | ./df_statics_r stat_cain stop | |
5 | df_monitor_r | df_manger_r,df_dbmw_r | ./df_monitor_r mnt_cain stop | 服務中的程式斷線時,重啟SERVER組的全部程式 |
6 | df_dbmw_r | | ./df_dbmw_r dbmw_stat_cain stop | 無法看到同時在線的現象(和玩家無實際關聯) |
7 | df_dbmw_r | | ./df_dbmw_r dbmw_gld_cain stop | |
8 | df_dbmw_r | df_monitor_r, df_guild_r, DB | ./df_dbmw_r dbmw_mnt_cain stop | |
9 | df_coserver_r | 無 | ./df_coserver_r coserver stop | |
10 | df_manger_r | DB | ./df_manger_r manger stop | 服務中的程式斷線時重啟全部SERVER組的全部程式 |
11 | df_channel_r | df_bridge_r | ./df_channel_r channel stop | |
12 | df_bridge_r | DB | ./df_bridge_r bridge stop | |
13 | df_relay_r | 無 | ./df_relay_r relay01 stop | |
14 | df_stun_r | 無 | ./df_stun_r stop | |
連結網址:https://203.69.93.1:10443
需安裝FortiGate Client
Host File新增下列項目:
203.69.93.148 api-twdf.neople.co.kr #DNF DB Monitor Tool
203.69.93.148 watchin-twdf.neople.co.kr # DB Monitor Tool
連結網址: http://watchin-twdf.neople.co.kr/
Hosts File新增下列項目:
172.1.2.161 mng.twdf.nexon.co.tw #DNF Static Tool
172.1.2.161 log.twdf.nexon.co.tw #DNF Log Tool Web
連結網址:http://mng.twdf.nexon.co.tw/_MNG_/_Statistics/
Hosts File新增下列項目:
172.1.2.161 mng.twdf.nexon.co.tw #[正式機]
172.1.3.2 mng.twdf.nexon.co.tw #[測試機]
連結網址:http://mng.twdf.nexon.co.tw/_MNG_/
欢迎光临 DNF阿拉德游戏论坛 (https://oldbbs.arad.ink/) | Powered by Discuz! X3.3 |