為什麼Hacker News昨晚一夜當機
這是Hacker News官方網站上的一篇宣告,解釋為什麼Hacker News昨晚上當機一夜。
昨天Hacker News當機了一晚上。問題不是由於我們新上的伺服器。事實上,其中的原因愚蠢的讓人不好意思說。
有一個評論貼,一個新使用者想在裡面發表回覆,但釋出出去的內容沒有成為目標評論的子評論,反而成為與它平級的評論。我回復了一個評論來解釋Hacker News是如何工作的。但我覺得該幫這個人修復一下,在他的回覆上做個小手術。不幸的是,我用錯了評論的ID,使評論的樹結構裡出現了一個迴圈;我使一條評論成為了它自己的下級評論。這樣一來,任何一個人試圖瀏覽這個帖子時,伺服器都會生成一個無限長的長頁面。因為這個評論所屬的文章正處在首頁,所以這個動作被大量的執行。
不知什麼原因,我在修改這個評論後並沒有去檢視這個評論是否留在了它正確的位置。一定是有什麼事情讓我分心了。所以我沒有發現任何異常,直到不久之後伺服器看起來開始有些喘。
我擷取了伺服器日誌看發生了什麼,裡面的資訊看起來是Hacker News缺少足夠的記憶體,在頻繁的回收記憶體。不管是不是這個原因,或出現了其它事故,這種問題一般是通過重啟伺服器都能解決。於是我這樣做了。因為當天我開發了一些程式碼,所以當我重啟伺服器時,上面執行的是新版程式。
重啟了服務後,問題依舊存在。我懷疑是我那天寫的程式裡有什麼問題,我嘗試將版本恢復到上一版,然後重啟服務。但問題依舊存在。我們又試著把這以前老伺服器上的程式拿過來換上,也不好用。我們認識到程式應該是沒問題的,我們認為問題應該出在了這個新伺服器上。於是我們試圖切換到老的伺服器上。我不知道我的同事Nick是否成功的切換,因為中途我放棄了,睡覺去了。
當我今早醒來,監控顯示Hacker News仍然在新伺服器上跑。出問題的那條評論仍在那,但那篇文章已經被新上來的文章頂出首頁。所以整體上Hacker News並沒有當機,但跡象仍顯示什麼地方出了問題。例如,/threads?id=pg 無法訪問,因為我使這個帖子裡出現了死迴圈。
終於,資料顯示,問題似乎跟某個特定的ID相關。當我到伺服器上檢視這條資料時,終於意識到了一定是我做錯了事。
於是我又給那個回覆動了一次手術,這次很小心,一切又恢復正常了。
我感到很抱歉。
英文原文:Why HN was down
相關文章
- [Hacker News 週報] #583
- Twitter為什麼沒有當機?
- Hacker News:2018年度報告
- 如果前端不使用SPA又能怎樣?- Hacker News前端
- 系統為什麼會在執行時當機
- [Hacker News 週報] GitHub Action 教程;在 serverless 中使用 SQLiteGithubServerSQLite
- 伺服器當機,我為什麼一點也不慌?伺服器
- 為什麼不能當職業翻譯
- 基於使用者投票的排名演算法:Delicious和Hacker News演算法
- Tobias Koppers:我當初為什麼寫webpackWeb
- [Hacker News 週報] SQLite 再次流行;JS 效能分析指南;魔方競速工具 CubeDeskSQLiteJS
- 基於使用者投票的排名演算法(一):Delicious和Hacker News演算法
- Hacker Noon:開發者真正想要得到的是什麼?
- Hacker News排名演算法是怎樣工作的:得分、爭議和罰分演算法
- win10為什麼開啟瀏覽器就當機 win10開啟瀏覽器就當機的方法Win10瀏覽器
- 為什麼為什麼為什麼為什麼為什麼你要做一名程式設計師?程式設計師
- 為什麼你應當選擇 PostgreSQL 而不是 Oracle?SQLOracle
- 為什麼玩家不願在遊戲裡當壞人?遊戲
- 你為什麼當不了高管?分析高階經理…
- 電腦經常當機是什麼原因 電腦經常當機解決方法
- 為什麼 Redis 要有哨兵機制?Redis
- win10尤里復仇當機如何解決_為什麼win10玩紅色警戒尤里的復仇會當機Win10
- Google News Lab:人們喜歡在網上搜什麼?Go
- 遊戲宣傳片的畫面為什麼不能當真?遊戲
- 做為開發人員 你為什麼應當關心設計
- [Hacker News 週報] 現代 CLI 大全;Deno 推出 FaaS 服務;基於 Rust 的隧道工具Rust
- [Hacker News 週報] Vite 3.0 釋出;Bun 效能實測;效能更強的 Prometheus 替代方案VitePrometheus
- [Hacker News 週報] 自部署 PaaS coolify;現代化終端 Warp;Ruby 增加 WASM 支援ASM
- 機器為什麼能夠學習?
- 計算機為什麼要用補碼計算機
- 什麼樣的魔法棒,能讓AI魔法師一夜成名?AI
- 人為操作不當引起電腦當機
- [Hacker News 週報] 資料視覺化神器;10大 web 黑客技術;Postman 支援 gRPC視覺化Web黑客PostmanRPC
- Python中函式為什麼可以當做引數使用?Python函式
- 技術最好的程式設計師,為什麼當不了首席?程式設計師
- 為什麼要虛擬化,為什麼要容器,為什麼要Docker,為什麼要K8S?DockerK8S
- Tea,為 hacker 而生的筆記應用筆記
- 為什麼掛機都用雲伺服器?伺服器