[轉錄]Ptt/Ptt2 歷史 (7)

看板PttHistory作者時間16年前 (2008/04/15 20:24), 編輯推噓6(600)
留言6則, 6人參與, 最新討論串1/1
※ [本文經硬兔本人同意,轉錄自 PTT2 的 in2 板,並依約刪除推文與其 IP] 作者: Bluesdan.bbs@ptt2.cc (Bluesdan.bbs@ptt2.cc) 標題: Ptt/Ptt2 歷史 (7) 時間: Tue Apr 15 20:24:13 2008 作者: in2 (晚安 地球人) 看板: in2 標題: Ptt/Ptt2 歷史 (7) 時間: Mon Apr 14 23:28:06 2008 就後朝修前朝史的慣例, 買了新機器就該寫舊機器的歷史 XD 上一集據說是 2005 寫的了, 趁還記得一些事情來寫個回憶錄一下 XD 在 2004 年的時候有一些偶然的機會得到了一些贊助, 像是五月天的募款演唱會及一些熱心網友和其他, 批踢踢終於有機會換一台像樣一點的機器. 順便小提一點點五月天的募款演唱會, 當然是十分感謝他們五位可以熱情相助, 好像當天下午他們在西門町有個簽名會之類的, 那邊才剛剛結束就搭車趕過來. 但是當天的募款結果真是無比慘烈, 要不是五月天不拿費用, 當天的舞台和燈光音響有其他的廠商出掉, 現場募到的款不要說買機器, 上面的任一個都不夠出 /_________________\ 甚至忙了半天隔天有個同學跟我說「我有捐 $10 喔! 很感動吧」 當場就想給他一巴掌 XD 然後隔天我一個人拿了上千個 $1 銅板去存 *爆* 所以後來就沒有這種好康的事情了~ :P (要不然我覺得以批踢踢的力量要辦這種活動應該不是難事~) 我不知道為什麼一直對 tyan 的主機板有莫名的好感 XD 覺得算是高檔產品, 但是價格和 IBM / HP 等大廠比起來相對便宜很多, 而之前批踢踢/ 批踢踢兔幾乎都是用這家的, 所以新買的機器也是用 tyan 的 S2882 http://www.tyan.com/archive/products/html/thunderk8spro.html 在那個年代裡還沒有 dual-core 的 cpu, 用了兩顆 opteron 244 (還是 246?) 第一次插了四條 2GB 的 ram 上去, 後來因為又有點款項進來, 又加了另外四條 2GB , 然後就插滿不能再加了. 當時記憶體十分貴, 印象中一條 Ecc Registered 2GB 要價是兩萬七(未稅) 插個八條就是二十幾萬了 Orz 除了換主機板, cpu, ram外, 硬碟當然也是一大重點, 尤其批踢踢的 io 量十分可怕. 在這次的更新中, 把內接用的 scsi cable 接出機器到另外一櫃亂疊的硬碟上, 換成用一種佔三個 5.25" 的空間, 正面可以直著插五顆 SCSI 80 pin的硬碟架子, 它用背板轉成單一 68 pin 的 scsi 訊號, 還外加一堆風扇~ 再把兩個這種架子和主機板什麼全部塞到一個超大的直立式機殼內~ 喔~ 這就是為什麼有一段時間冷氣一爆的時候, 批踢踢就會當機! XD 因為硬碟/cpu/記憶體再外加 raid card 這些產熱超高的東西 都被全部都擠在很小的空間裡~ 後來又加了一台外接式的 raid box , 上面可以插 8顆 ide硬碟, 因為差不多是有點過期的產品 (U160) 的, 所以賣家願意用低一點的價格. 不過它很愛熱當機, 而且它只要一熱當就需要 reiserfs rebuild tree (大概要 24hr?) 後來的解法是把它的 box 拆開來, 在 raid / scsi chip 上面硬加顆風扇, 它就乖乖的了 :D 之後還有一小點調整, 在最高記錄的時候, 一台批踢踢上面接了近兩打的硬碟 XD 不斷電系統當然是不應該缺席的, 不然如果在尖鋒的時候跳電的話聽起來就很讚! 當時計算了一下把 ptt/ptt2/pttx 還有 switch 什麼全部插上去, 如果在尖鋒時段臨時跳電需要緊急把資料寫回硬碟, 大概需要十分鐘甚至更久才寫的完, 所以它所要的電池也是很可怕的, 後來就選了這一款 http://www.apc.com/resource/include/techspec_index.cfm?base_sku=SUA3000RM2U 它這台的插頭很有趣, 用的是 NEMA L5-30P , 長的像是 http://www.yung-li.com/images/cat2006/yp-55.jpg
大概有一個拳頭這麼大 ^^;;;;;; 一收到機器的時候還不知道要怎麼安裝 XD 在比較軟體方面上的演進, 包括了從 FreeBSD換成 Linux, 然後就很高興的採用了平時不需要 fsck , 需要 fsck 就會死很久的 reiserfs XD 另外因為記憶體還是最主要的瓶頸, 就我記得的一共有三個不同的方式省掉大量記憶體. 第一個是使用 HugeTLB , 大概是每個 process 都有一段是記載哪一段(以 page 為單位) virtual address 是 map 到哪一段 physical address 的 table (即 TLB) , 這個 table是每個 process顧自己的, 互相間並不 share. 可是批踢踢的程式有用到一大塊 shared-memory (好像是 400MB?) 這麼大塊就會有很多 page , 就需要用到很多 pointer , 然後就會佔很多記憶體. 那個時候算起來好像 16G 裡面有 6G 都是這個資訊 XD 所以解決的辦法就是改用 4MB 的 page , 一次就省掉數 G 的記憶體. 第二個是使用 libdiet , 這是一個 glibc 的 replacement , 基本上程式不用改什麼, 改一下 Makefile 就可以衝了~ 比 glibc 省了許多記憶體. 這還有一個小插曲, 在 debian 的 testing (還是 unstable?) 裡面 libdiet 的 snprintf() 是爆炸的! 所以有一兩回某人 upgrade 所有的 package 後, 整個畫面就大爆炸 XD 第三個是改用 ssh 1.2.33 裡面的 crypt.c 改出來的 crypt() , 比原本系統內建的少吃很多 (約 100kb) 記憶體. 批踢踢就這麼的跑到了 2008 年, 當時最高記錄大概是可以到七萬人上下, 把電機系的不良牛, 交大資工的無名小站, kkcity, 甚至對岸的水木清華都遠遠拋在後頭, 開啟了記者上批踢踢的歷史新頁? XD 不過那其實是在硬榨整個系統出來的結果, 越跑整個系統越糟. 最慘的是某組 scsi raid 5有兩顆硬碟爛掉, 其中一顆的資料是休息過一陣子就可以讀的到, 讀太久它就罷工, 所以那次要先 replace掉完全爆炸的硬碟, 慢慢 rebuild (rebuild program 過一陣子就會吱吱叫, 等等再叫它繼續又 ok 了 XD) 完成後, 再換上一顆新的硬碟, 重新 rebuild 一次, 然後再 reiserfs rebuild , 真是死的非常慘 Orz (是不是有到 48hrs?) 這次爆炸好像還有上報上電視 Orz 所以, 後來就有新的機器了 :p 新機器又把人數 double 了一倍, 不過那就是下一個故事了~ :P 也許是 2010 年買新機器的時候吧~ 而且不一定是我執筆就是~ :p 就醬 :P (To be continue?? XD) -- ▂▅▇▇▅ ╚╩╯╭○ ╔═══╗ ▃ ◢ ╔═╗╬╦ ╠═══╣╔╦ ╔╦╗╠══╣ ◤◢█◤ ╚╦╝║║ ╚═══╝╯/╗╔╬╗╯╭═╣ ◥◤ ▎◣ ◢ ║║║║║ ══╦═╯/ ║╠╬╣╔╬═╗ ╯╝╯╯╚ ╯═╩╩╯ ║║╚╬╝╚╬═○ _ '_ ' _ ◢█\ ¯ ╚╝╰╯╯╰╯╰╯ ▼ \ --

04/15 20:26, , 1F
= =a 嘖嘖 顧寫新聞忘了轉這篇
04/15 20:26, 1F
※ 編輯: Bluesdan 來自: 163.27.69.123 (04/15 20:27)

04/16 07:36, , 2F
6G!!請問是用32位元還是64位元模式跑的啊?
04/16 07:36, 2F

04/16 09:49, , 3F
AMD-OP 那時代就有64BIT了
04/16 09:49, 3F

04/16 11:08, , 4F
有這個環境才有機會學到這麼多東西。
04/16 11:08, 4F

04/16 11:08, , 5F
04/16 11:08, 5F

04/26 21:04, , 6F
推推
04/26 21:04, 6F
文章代碼(AID): #1819w8Eq (PttHistory)