網站效能異常問題的案例回顧
最近讀到 Ars Technica 網站的一篇文章《I abandoned OpenLiteSpeed and went back to good ol’ Nginx》,其內容勾起了 DR 幾年前在虛擬主機商做工程師的一些回憶。呃,所以本文並不是要對該文章所涉及的技術議題做出回應;而是想借題發揮,在分享該文章的同時,順便陳述自己當年曾經遇到的一個網站效能異常問題。
最近讀到 Ars Technica 網站的一篇文章《I abandoned OpenLiteSpeed and went back to good ol’ Nginx》,其內容勾起了 DR 幾年前在虛擬主機商做工程師的一些回憶。呃,所以本文並不是要對該文章所涉及的技術議題做出回應;而是想借題發揮,在分享該文章的同時,順便陳述自己當年曾經遇到的一個網站效能異常問題。
操作環境:
1998 年的 FPS 遊戲《原罪》(SiN),是採用《雷神之鎚 II》(Quake II,1997)的遊戲引擎,並且在當時的行銷宣傳裡,是標榜有《毀滅公爵 3D》(Duke Nukem 3D,1996)的開發人員參與其中。由於《毀滅公爵 3D》的續作──《永遠的毀滅公爵》(Duke Nukem Forever),並不如起初預期的很快地問世。所以在 FPS 遊戲從 2.5D 技術轉移到真正 3D 的期間裡,《原罪》某種程度就被期許為,是在遊戲體驗上最貼近《毀滅公爵 3D》的一部新作,儘管兩者的故事題材截然不同。
話說 DR 當年從第一份正職離職後,就覺得應該要寫一篇職業心得,但同時也認為這篇文章恐怕不適合太快寫成。或許要在自己有一些年歲後,才能夠有更健全的觀點,來回頭描述這些經歷,於是便決定留待約十年後再生產出此心得。因此讀者請留意,本文所描述之內容,皆為十年前之個人經驗,不見得反映出後續或者當前的產業情形。
雖然口語上 DR 時常將其稱之為翻譯公司,不過若是採更加詳細的描述,則 DR 出社會的第一份正職,是在一間專做軟體及文件本地化(localization)的公司。換言之就是客戶所提供的待翻譯內容,多半是例如應用程式的介面字串檔、或者說明文件的原始可編輯檔案。我們再交給多國譯者,翻譯成不同的語言後,再返回給客戶。另一方面,若純粹從譯者的角度來看,我們則可以被理解為是一間翻譯仲介(translation agency)公司,也就是為譯者派發翻譯工作。
利用模擬器將古早的 DOS 遊戲搬到網頁上執行,並不是件太罕見的事,例如 Internet Archive 就有收藏大量的 DOS 遊戲,可以直接在網站上體驗看看。然而 DOS_deck 卻是時至目前為止,最精緻的一項實現。網站的開發者很有目標地,將 DOS 遊戲的線上化,打造成真正具有可玩性的環境。運用著網頁技術的優勢,讓玩家能夠便利地執行多款 DOS 遊戲。以及遊戲的操作方式,也都有貼心的提供說明。所收錄的遊戲皆為合法授權,包含了已經免費的完整遊戲,或者是遊戲的共享軟體版本(shareware)或試玩版本(demo)。
不知不覺間,RPG 遊戲已經成了 DR 開始會感到戒慎恐懼的遊戲類型。主因就是玩 RPG 實在太花時間跟記憶力,以及在遊戲中要張羅的事情也很多,包含角色養成,任務進展、武器裝備、經濟收入及支出……等等這些都需要持續的規劃及實踐。然而畢竟人生短暫,而且還有其它更重要的事情得做。於是就開始出現一種思緒:如果人生要選擇最後一款 RPG 遊戲來玩,那麼在這麼多的作品裡面,應該要選擇哪一款來玩呢……?
前陣子 DR 再次試著清除家裡不必要的雜物,這回書籍類是最主要的清理對象。於是便再一次評估究竟想要保留哪些書,而又有哪些書是打算要丟去資源回收的。其中關於電腦資訊類、也就是 IT 類的書籍,其實過去已經清理過數次,最後基本上只保留了少數幾本厚重的英文書。只是這回又再一次思考,究竟留下這些書不丟,是否真的有足夠充分的理由?
如果有合適的倉儲空間,的確這些舊書最終可能會形成某種文物意義,設法保存下來是可以考慮的。然而畢竟住家不是倉庫或博物館,而是給人居住及生活用的,所以究竟需要保留什麼東西,應該要有足夠嚴謹的評估。其實若認真細想,這些 IT 舊書幾乎不可能會在未來的任何時刻派上用場,裡頭的知識倘若日後任何人有需要,也只要上網查就好。
看樣子已經是每年都會舉辦的哥吉拉紀念活動,今年一如預期,是以 1973 年的《哥吉拉對梅加洛》(Godzilla vs. Megalon)為主題,東寶為此製作了兩支不同的短片供影迷欣賞。其實在整個昭和系列裡,《哥吉拉對梅加洛》算是 DR 比較不欣賞的一部作品。雖然就怪獸陣容來說,本片看似還算豐富。有形似昆蟲的梅加洛,以及具體來說是機器人的噴射傑格(Jet Jaguar);除此之外,還有必不可少的哥吉拉,以及從前作《地球攻擊命令:哥吉拉對蓋剛》(Godzilla vs. Gigan,1972)繼續沿用的外星怪獸蓋剛。
在 Linux KVM 虛擬化環境裡,若是想要擴充客體機的磁碟容量,並不是件很麻煩的事,而且通常可以在客體系統無須下線的情況下實現。然而如果是反過來,想要以非破壞性的方式縮減磁碟容量,把用不到的空間重新釋放出來,那麼在程序上就會比較繁雜一些。
本文是以 RHEL/CentOS Stream 8 為主要的示範環境,所使用的主體及客體皆是 Linux 系統。倘若所使用的 Linux 發行版並沒有比 RHEL 8 陳舊,則預期在操作上應不會遇到什麼障礙。此外由於 DR 自己在建立 Linux 客體機時,多數情況下都是採用傳統 BIOS 模式,虛擬磁碟會單純地切成兩個分割區,一是系統根目錄,使用 ext4 檔案系統;二則是 swap 分割區。所以本文的操作概念會同樣以此設想為基礎,不會特別涉及到其它更加複雜的情境。