看板 Soft_Job 關於我們 聯絡資訊
之前在對岸做游戲server的 幹了10幾年 一點拙見 首先這個BUG還是要引起重視 要考慮到是不是自己寫的網路庫有問題 比如說windows的iocp 有沒有合理的處理了所有向上抛的事件與例外 也或者是 自己寫的無鎖緩衝有bug 導致丟包 以上所說 都屬於必需立即查出來的情況 我假設server間通訊也用到這套庫 那麽一旦往DB寫的數據丟失 屬於重大事故 停機維護的損失 以一個日活2000萬的項目 少說是百萬 往輕了說 也有可能是網路波動 導致TCP層收到了RST 清除了發送緩衝 總之 辦法就是全項目組一起Review code 得益於版本控制 可以在最近改動的相關code裏尋找蛛絲馬跡 這個情況下 其實就有點像是coding skill大比武了 基本功好的人 往往快別人幾步找到漏洞 升遷路上就會比較順遂 我記得有一次出版本 server運行幾個小時就崩 而且沒dump 不管API或是語言層面的函數都沒用 就是catch不到OOM 後來Review code 才發現有人在某類的Constructor向heap申請一塊不大不小的記憶體 但在成對的Destructor沒有釋放 導致Memory Leak 由於記憶體的碎片效應 最終申請不到足夠大的記憶體 從而發生了那個不知道在那層被攔截到的OOM Exception 總之 爲了讓自己半夜能睡得好 睡得香 一定要把基本功打好 才不會犯低級錯誤 大半夜被人從被窩裏挖起來 可是很難受的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.220.72 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1665515939.A.976.html
xam: 不過他的全項目組大概也就一個人... 10/12 07:58
lchcoding: 有借有還,再借不難... 10/12 09:27
worcdlo: 請教一下,你們一開始怎麼知道問題是oom 10/12 09:27
joshua5201: 運行到一半沒頭沒腦就壞了可以猜跟OOM有關 10/12 10:05
joshua5201: 也可以去看kernel log 10/12 10:06
joshua5201: 他文中也有寫在某個地方catch到OOM 10/12 10:06
labbat: 鬼故事是沒有git svn版本控制 10/12 11:44
worcdlo: 他文中好像是寫catch不到oom 10/12 13:01
hobnob: 感謝分享 10/12 13:19
MoonCode: 10/12 13:43
jason222333: 高手 推 10/12 18:29
ErcH922: 不知道有沒有鬼故事能聽 10/12 23:44
viper9709: 推二樓 10/12 23:45
knme: 推 10/14 15:21