[回憶] Ptt/Ptt2 歷史

作者: in2 (今天不是檸檬兔子~) 看板: in2
標題: [回憶] Ptt/Ptt2 歷史
時間: Thu Feb 24 22:15:36 2005

人老了, 開始寫回憶錄了 😛
會從很奇怪的角度切入就是,
要是覺得很無趣就不要再看下去了 :p

在我一剛開始接觸 Ptt/Ptt2 的時候,
那時 Ptt用的是一台很大的機殼 (就是現在 Ptt2 還在用的那個 :P)
配有 2 * 800MHz 的處理器加上 2GB ram,
有四顆 9G 加一顆 18G的 SCSI 硬碟,
其中一顆 9G 還是壞的 (沒有資料在裡面)
所有的使用者資料散在那三顆 9G 的裡面,
另外看板的資料全部放在那顆 18G裡,
 (我忘記精華區放在哪一顆裡了)
那時還是用 Linux,
可是 Linux那時用起來有些問題,
最麻煩的是碰到 device failure 的時候,
整個 load 會衝高,
可是整個系統其他部份都還會 run的很正常,
然後會不理會你下 reboot ~_~
只能按 power/reset |||b
可是我習慣用的是 FreeBSD,
加上附近似乎找不到什麼用 Linux的人
 (那時, 大部份用 Linux的人都是燒 CLE光碟, install all |||b)
後來, 就都變成 FreeBSD了 :p

那個時候 Ptt2 用的是更寒酸的機器 XD
比一般爛爛的機殼還要再更爛 XD
好像是 PentiumII 350的樣子 XD
我忘記到底是用多少的記憶體了 (512MB後來被加成 768MB?)
用的是 FreeBSD 4.1.1,
我拿到 root 沒多久後, 就很 high 的把它 upgrade了,
好像是 upgrade到 4.5還是 4.6,
接著就開不起來了 XD
隔天早上才聽說那台機器是不能灌比 FreeBSD 4.1.1 更新的版本 XD
後來, 在 somi 幫忙 upgrade BIOS 後,
就沒問題了 😀
那個時候,  Ptt2 只有兩顆 SCSI 硬碟,
一顆 4.5G 用來當系統碟,
另外一顆忘記 9G 還是 18G 的,
拿來放所有的東西.

先醬子 😛


         ▂  [31m▄▆▄▁ [m           [32m▃▄ [m       [32m▂ [m   [32m▃ [m       [31m▇▆▄▂ [m   [31m▇▄▅ [m  [34m▅▃▄  [m
   [33m║   [m◢ [35;47m◢  [;41m      ▅◣ [m     [1;37m ▄  [;30;42m▋ [;32m◣▌◢◣ [m  [32m▃▄ [m  [42m  [m  [32m▆█ [m  [31m◥ [41m      [;31m◤   ◣▋   [34m   ▊  [m
   [1;33m好   [m◥ [;35m◤ [1;37;41m▂    [;35;47m▅▃   [;41m▍ [;31m▃ [1;37m█◤   [;32m◣▍◤◢ ▃▄◥▎ [30;42m▌ [;32m▂ [m     [31m▊ [m    [31m▇▅█▄▌ [34m  ▌  [m
   [1;33m硬       [37m◥ [41m█▇ [45m█ [;30;45m▁ [47m   [m     [34m▆  [32m▄◢▃◥◤ ▃◣◥ [30;42m▊▌ [;32m◤   [31m◥ [41m  [;31m◤ [m   [30;41m▍ [;31m▄ [41m  [;31m▅▊ [34m   ▊ [1;37m▆ [m
   [1;33m兔    [30;47m║ [m  [30;47m▊  [;1;31m’ [;30;47m_  [;1;31m’ [;37m▊         [34m ▋  [32m ▃ [42m   [;32m▃ ◢▅▄◢ [30;42m▅▂▄ [m     [41m  [;1;33m ◥  [;31m◣  [41m  [;31m◣ [1;33m◣    [37;47m  ◥ [;1;37m◤ [m
   [33m║   [30;47m≡( [m = [30;47m◣ ▼ ◢ [m=        [34m▊   [32m▃ [42m   [;32m▃▃ [30;42m▊ [;32m▅◤ [30;42m▋▅▂▄ [m  [30;41m◤▃▁◥ [;31m ◥ [41m  [;31m◥▆◤ [34m▄ [30;47m(   [m


※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.90.74

作者: in2 (今天不是檸檬兔子~) 看板: in2
標題: [回憶] Ptt/Ptt2 歷史 (2)
時間: Thu Feb 24 22:56:26 2005

那一陣子發生了很多事情,
後來發現每次亂搞了一大堆東西後,
隔天 (或當天晚上) 發現系統大好 or 大壞,
可是根本就不記得之前到底搞了什麼東西 =.=
所以, 我開始寫 log.

不過, 在開始寫這些 log之前, 又發生了好多事情.
就我記憶中的來說好了 (不確定是不是正確的, 也許時間或數字上會有點出入 :p)
那個時候我們主要競爭是隔壁系的不良牛牧場.
一個是台大電機的, 一個是台大資訊的,
真的很難描述那種心中的感受 XD
那個時候 zoo贏在比我們多 250MB的記憶體 (它們 2.25G, 我們是 2G)
在大家程式半斤八兩的時候, 多個 250MB就是硬可以比你多個幾百個人 XD
我印象中我們有一陣子人數撐到 4650 左右硬是上不去,
 zoo則是再比我們多一點點.

然後 zoo那邊有一些神祕的力量在背後支援,
像我知道 keichii大大就有幫 zoo tune 過,
 keichii在 Mar 20 2001發表的 “tuning a VERY heavily (30.0) loaded server”
要算是極致 (現在都還 google 的到)
據聞有一些 FreeBSD core team還是大老級的人物都有來幫忙看過,
因為全世界好像沒有人是像我們醬子玩的 XD

而我們這邊, 好像大部份就我和小光光學長在玩 :p
當然要特別感謝小光光學長 😛

下面 po 一下第一次的 log ,
真是超古老的 :PPP
而且那個時候我還不會用 “XD” 這個符號.
對了, 我要說一下後面會提到的 “IBM長輩機器”
它的照片在這邊 http://photos.in2home.org/z6i
這台機器是 IBM Netfinity 6000 ,
似乎出產的很少, 不是很容易 google 的到 @_@”
 (大部份會找到 RS/6000 ^^;;;;)
可以吃到 4 Pentium III Xeon(s) + 16GB ram,
可以內接到 6 SCSI hdd,
在當時算是頂級的配備了!
 (即使到今天, 可以吃 4 cpu + 16GB ram 的機器仍然是很少見)
我們手上那台包含了 2 cpu(s) + 8 * 128MB (= 1GB ram) + 3 SCSI 36G hdd(s),
在當時大家還在用 9G/18G SCSI 的年代,
一顆 SCSI 36G 就要幾萬塊,
據說整台買進來的時候花了 60 萬!
後來買那台機器的公司倒了,
 Ptt他就花了幾萬塊把它買了進來 (實際上是幾萬就不說了 XD)
一直堆在 405實驗室裡面.
我原本看到那一台, 以為是非 i386 的架構,
大概是那個時候對 IBM還不熟悉, 以為 IBM都只做 mainframe XD
直到有一次在 yien 的建議下拿來用 :p
然後發現真是非常的長輩!
這一台直到現在都還在服役 (現在好像是在負責 pixnet 的某個部份 :p)

 Ptt第一次的 log是在 Sun May  5 03:22:38 CST 2002 的:
        第一次 commit這個檔案.

        目前 ptt使用的是一般的機器, 記憶體 2G 加上 SCSI 18Gx3, 36×1 的硬碟
        使用 FreeBSD 4.5-STABLE .
        目前 ptt相當不穩定, 兩個的主要問題:
          + 到晚上 ( 22:00 ~ 02:00 )的時候常會 “卡住” , 情況是:
              o 在 console前面, 按按鍵但是沒有看到任何東西出現
                 (直到打住恢復, 原來打的東西就會出來)
                不過可以按 Alt-F1~F7來切換 terminal
              o 硬碟沒有聽到有在讀寫的聲音
            這個情況大概會持續五到十五分鐘不等, 然後就會恢復,
            之後一切正常, 然後看到 system load從幾百回到正常值.
            目前原因不明, 推測可能是硬體或是程式爛掉.
          + 會不定時 panic, 目前 ptt有 serial console 接到 ptt2,
            於是可以觀查到 panic的情況;
             panic後會放一份到 ptt/panic/ 以供之後分析.
         swap 還是切太小, 但是最多只能有 4個 swap 裝置, 於是現在
        除了 /dev/da0s1b外, 另外兩個是用 swapfile , 各 640M
        就 mrtg 的記錄來看, 目前最多同時在線人數是 5845 人.

而 Ptt2 的第一次 log是在 Sun May  5 03:14:35 CST 2002
        第一次 commit這個檔案.

        目前 ptt2 使用的是 IBM長輩機器, 記憶體 1G 加上 36Gx3 SCSI 硬碟,
        使用 FreeBSD 4.5-STABLE , 用 vinum將三個硬碟串起來, 看起來一切都很穩定.
        比較有問題的大概是記憶體不夠, 另外 swap 切太少, 層有一次 out of swap.
        就 mrtg 的記錄來看, 目前最多同時在線人數是 2727 人.


     [44m   [30m▂▅▇▇▅  [;44m  [m   [1;37;44m╚╩╯╭○ ╔═══╗ [;37;40m  [1;33m [;37;40m                   [m   [44m   ▃   ◢ [35;47m◢ [;44m   [m
    [44m  [34;40m▊ [;30m      [37m/  [m    [44m   [m  [1;37;44m╔═╗╬╦ ╠═══╣ [34;40m╔╦ ╔╦╗╠══╣ [m  [44m ◢ [35;47m ▃  [;44m  █ [35m█ [;44m    [m
   [44m   [34;40m▎ [;30m   [43m◤◢█◤ [m  [44m    [1;37m╚╦╝║║ ╚═══╝ [34;40m╯/╗╔╬╗╯╭═╣ [;44m  ◥◤ [35;47m▌ [;44m◢ [35;47m◢ [34;45m◢ [;44m     [m
   [44m   [34;40m▌ [;30m   [43m▎◣  ◢ [33;44m▎ [;44m   [1;34;40m║║║║║ ══╦═╯ [37;44m/ ║╠╬╣╔╬═╗ [;44m   [34m   [37m◢ [47m       [44m◣ [34m   [;44m   [m
    [44m    [;1;33m◣ [;30;43m   [47m  [40m  [43m   [47m  [;40m  [44m    [m  [1;34;40m╯╝╯╯╚ ╯═╩╩╯ [37;44m ║║╚╬╝╚╬═○ [m  [44m    [30;47m_  [1;31;40m’ [;30;47m_  [1;31;40m’ [;30;47m _   [;44m    [m
     [30;44m◢█ [43m\ [4m  ¯ [;33;44m◤   [m   [37;40m                      [1;44m ╚╝╰╯╯╰╯╰╯ [m   [44m   [37m◥ [30;47m ▼  \ [37;44m◤ [;44m   [m


※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.90.74

作者: in2 (今天不是檸檬兔子~) 看板: in2
標題: Re: [回憶] Ptt/Ptt2 歷史 (3)
時間: Thu Feb 24 23:56:54 2005

※ 引述《in2 (今天不是檸檬兔子~)》之銘言:
在到 Fri Sep 26 CST 2002 這一天之前,
每天晚上都像惡夢一樣,
系統狂 overload , 人數滿載 (因為再開上去只會把整個系統卡死)
最要命的是每天不良牛硬是比我們多幾百個人 =.=
那種感覺真的很差 XD

在 2002 年四五月, 有一大堆神祕的 code 被寫出來
 (剛好是期中考的時候, 我只要一有考試就會有動力寫程式 :PPP)
現在還看的到的包括 general namecomplete ,
還有新一代(?) 的使用者名單,
全部改用 strlcpy(3), snprintf(3),
把所有的程式 indent,
不過這大概要玩程式的人才知道這是什麼了 :p
反正就是看哪邊能省記憶體就省,
偷多少算多少 :p
我們還嘗試過改用 Intel C Compiler 來編看看,
不過結果比較慘 (因為 icc沒有辦法對 memory usage最佳化)
但是要說最誇張的事情, 要算是 OUTTA_CACHE了!!!!

什麼是 OUTTA_CACHE/OUTTA_SWAP 呢?
大概是那個時候 Ptt本身的記憶體不夠用,
可是我有另外一台 PttX 放在旁邊 (好像上面有 1G 的記憶體)
於是我就想說,
有沒有可能將一些暫時用不到的資料,
就 swap out 到 PttX 上,
等到要的時候再 swap in進來?
那次搞最主要的大概要算是已讀未讀以及當前看板列表等等資料,
也就是, 當你從主選單 Class會先拿一塊記憶體 A,
從 Class進其中一個, 就會把 A swap out 到 PttX 上,
然後拿一塊 B來放那個看板列表,
等到你進了其中一個看板, 這時 B又會被 swap out XD
或是說退回 Class, 這時 B就會被釋放, 然後把 A swap in 進來.
目的是減少主要服務的那台機器, 但是會有超頻繁的 swap in/out,
後來, 發現這樣子搞根本動不了, 用起來會覺得很慢,
我印象中這段 code 並沒有真的上線過 :PPPPP
也還好沒有上, 不然會死的很難看 :p

有趣的是, 2002/05/25似乎是個神祕的日子,
我和 ptt兩個人總共 commit 了 39 次 ~_~
不知道在搞什麼 :p
推文也是差不多那個時期出現的東西 :p

小光光學長第一次的 commit 是在 2002-06-26 04:27:00 +0800 (Wed, 26 Jun 2002)
紀錄一下 :p


     [44m   [30m▂▅▇▇▅  [;44m  [m   [1;37;44m╚╩╯╭○ ╔═══╗ [;37;40m  [1;33m [;37;40m                   [m   [44m   ▃   ◢ [35;47m◢ [;44m   [m
    [44m  [34;40m▊ [;30m      [37m/  [m    [44m   [m  [1;37;44m╔═╗╬╦ ╠═══╣ [34;40m╔╦ ╔╦╗╠══╣ [m  [44m ◢ [35;47m ▃  [;44m  █ [35m█ [;44m    [m
   [44m   [34;40m▎ [;30m   [43m◤◢█◤ [m  [44m    [1;37m╚╦╝║║ ╚═══╝ [34;40m╯/╗╔╬╗╯╭═╣ [;44m  ◥◤ [35;47m▌ [;44m◢ [35;47m◢ [34;45m◢ [;44m     [m
   [44m   [34;40m▌ [;30m   [43m▎◣  ◢ [33;44m▎ [;44m   [1;34;40m║║║║║ ══╦═╯ [37;44m/ ║╠╬╣╔╬═╗ [;44m   [34m   [37m◢ [47m       [44m◣ [34m   [;44m   [m
    [44m    [;1;33m◣ [;30;43m   [47m  [40m  [43m   [47m  [;40m  [44m    [m  [1;34;40m╯╝╯╯╚ ╯═╩╩╯ [37;44m ║║╚╬╝╚╬═○ [m  [44m    [30;47m_  [1;31;40m’ [;30;47m_  [1;31;40m’ [;30;47m _   [;44m    [m
     [30;44m◢█ [43m\ [4m  ¯ [;33;44m◤   [m   [37;40m                      [1;44m ╚╝╰╯╯╰╯╰╯ [m   [44m   [37m◥ [30;47m ▼  \ [37;44m◤ [;44m   [m


※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.90.74

作者: in2 (今天不是檸檬兔子~) 看板: in2
標題: [回憶] Ptt/Ptt2 歷史 (4)
時間: Fri Feb 25 00:28:25 2005

現在要來說 2002 年九月發生什麼事情了 :p
反正以當時的情況來說, 確定不再想點辦法來增加記憶體是不行了.
然後又發生了某某幾件事, 其中的細節就不說了 :p
不過:
  1.我要感謝 d某 或是 g某 大長輩幫忙, 雖然最後讓您白忙一場, 真不好意思 ^^;;;
  2.我要感謝 I某罵我某句話 XD
  3.我要感謝某教授幫了個大忙 😀

那個時候 Ptt2 已經從我之前說的很破爛的那台機器,
移到 IBM Netfinity 6000R了,
然後, 因為某某的原因, 拿到 512MB x 4的記憶體.
 6000R那一台很賊, 記憶體一次要插 4條, 又要用 ECC Registered 的,
我印象中那四條要價就要 22k (還是更高?)
加上原來就有的 1GB, 6000R 那台就有 3GB了,
而原來拿來跑 Ptt的機器只 2GB的記憶體,
於是就把 Ptt和 Ptt2 的機器交換,
人數瞬間往上衝 :p

當時, Ptt 用的是 6000R那台原本就有的 36G x 3,
再亂接了一顆 36G和一顆 18G上去, 上限設到 7004 人,
然後馬上就又塞爆了 XD
而 Ptt2 則是用了 9G x 4 + 18G x 1  (聽起來有點苦@”@)

到了 2002/11的時候, 又再加了 2GB ram上去,
又是 20k+ 不見 (我印象中好像比較貴)
所以機器上就有 5GB ram了,
可是那個時候 FreeBSD還不支援 PAE,
所以只能抓到前面 4GB
        real memory  = 3951005696 (3858404K bytes)
        avail memory = 3848323072 (3758128K bytes)

當時, 硬碟的負載量已經超乎想像,
所以只要有錢就一直加硬碟一直加硬碟,
某天得到一條 CQjason贊助的 SCSI 排線(!)
在 2002/11中的硬碟規模已經是 36G * 5 + 18G * 1

因為那個時候不時 panic,
2002/12/01的時候竟然很 high 的把整個系統換成 FreeBSD 5.0-current,
只為了它可以支援 background fsck ,
後來發現是完全錯誤的決定! =.=

然後在年底的時候, 又因為覺得插了 5G ram 又用不到很苦,
所以改安裝了 Linux (2.4.18, 2.4.20都試過)
全部都是過一陣子就自己爆炸, 連 panic訊息都沒看到,
這真是背叛信仰的下場 🙁

到了 2003 年,
硬碟的負荷不斷往上提昇,
我們需要的是數量要多而不是容量要大,
可是當時 SCSI 硬碟超貴!
好像 36G的就要價 8,500左右,
就算買 18G的也要 5,900左右, 一點都不划算 :p
這個時候讓我找到了某個神祕的產品,
可以把 pATA 的硬碟轉成 SCSI 格式,
當時連硬碟加卡算一算, 好像 80GB 的只要價 5,000~6,000,
怎麼看怎麼划算 XD
所以當時大量用這樣子的解法,
而且反正是 SCSI 的,
一條排線最多可以接 15 個 device(s),
那時候我去訂做了幾條排線,
最大的一條上面可以插九個硬碟,
現在想起來那時根本就是在惡搞 XD

 2003 年九月, 開學期, 使用量的大潮,
那個時候已經用到 da10  (也就是總共 11 顆硬碟, 向一打邁進 :D)
硬把人數上限調到一萬人之後 (因為這是個很重要的指標 ^^;;;)
就用這樣子的機器一直撐, 一直撐, 一直撐…. =.=


     [44m   [30m▂▅▇▇▅  [;44m  [m   [1;37;44m╚╩╯╭○ ╔═══╗ [;37;40m  [1;33m [;37;40m                   [m   [44m   ▃   ◢ [35;47m◢ [;44m   [m
    [44m  [34;40m▊ [;30m      [37m/  [m    [44m   [m  [1;37;44m╔═╗╬╦ ╠═══╣ [34;40m╔╦ ╔╦╗╠══╣ [m  [44m ◢ [35;47m ▃  [;44m  █ [35m█ [;44m    [m
   [44m   [34;40m▎ [;30m   [43m◤◢█◤ [m  [44m    [1;37m╚╦╝║║ ╚═══╝ [34;40m╯/╗╔╬╗╯╭═╣ [;44m  ◥◤ [35;47m▌ [;44m◢ [35;47m◢ [34;45m◢ [;44m     [m
   [44m   [34;40m▌ [;30m   [43m▎◣  ◢ [33;44m▎ [;44m   [1;34;40m║║║║║ ══╦═╯ [37;44m/ ║╠╬╣╔╬═╗ [;44m   [34m   [37m◢ [47m       [44m◣ [34m   [;44m   [m
    [44m    [;1;33m◣ [;30;43m   [47m  [40m  [43m   [47m  [;40m  [44m    [m  [1;34;40m╯╝╯╯╚ ╯═╩╩╯ [37;44m ║║╚╬╝╚╬═○ [m  [44m    [30;47m_  [1;31;40m’ [;30;47m_  [1;31;40m’ [;30;47m _   [;44m    [m
     [30;44m◢█ [43m\ [4m  ¯ [;33;44m◤   [m   [37;40m                      [1;44m ╚╝╰╯╯╰╯╰╯ [m   [44m   [37m◥ [30;47m ▼  \ [37;44m◤ [;44m   [m


※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.90.74
 [1;31m→  [33mID5 [m [33m:奇怪, 我都不記得我說了什麼, 你怎麼記得呀? @@”    [m推 140.112.31.131 02/25

作者: in2 (今天不是檸檬兔子~) 看板: in2
標題: Re: [回憶] Ptt/Ptt2 歷史 (5)
時間: Fri Feb 25 00:50:34 2005

※ 引述《in2 (今天不是檸檬兔子~)》之銘言:
: 所以說就要換整台機器囉(?)
: 換整台機器要多少錢? =.=
話說, 我在 Oct 21 2002 的時候, 寫了兩篇叫 “關於架設一個 z6ibbs” 的文章,
 (http://opensvn.csie.org/pttbbs/trunk/pttbbs/docs/z6ibbs.1.txt)
 (http://opensvn.csie.org/pttbbs/trunk/pttbbs/docs/z6ibbs.2.txt)

大概就是那種看著別人家流口水的心態吧 XD

對了, 現在 Ptt用的硬體是不公開的, 所以也請不用再問了 XD
不過我可以偷偷的跟你說,
 Ptt現在用超過一打的硬碟 (如果哪次再加的話, 就會到兩打了)
 Ptt2 現在用超過半打的硬碟
被 Ptt/Ptt2 用壞的硬碟應該也至少有半打吧 @_@


         ▂  [31m▄▆▄▁ [m           [32m▃▄ [m       [32m▂ [m   [32m▃ [m       [31m▇▆▄▂ [m   [31m▇▄▅ [m  [34m▅▃▄  [m
   [33m║   [m◢ [35;47m◢  [;41m      ▅◣ [m     [1;37m ▄  [;30;42m▋ [;32m◣▌◢◣ [m  [32m▃▄ [m  [42m  [m  [32m▆█ [m  [31m◥ [41m      [;31m◤   ◣▋   [34m   ▊  [m
   [1;33m好   [m◥ [;35m◤ [1;37;41m▂    [;35;47m▅▃   [;41m▍ [;31m▃ [1;37m█◤   [;32m◣▍◤◢ ▃▄◥▎ [30;42m▌ [;32m▂ [m     [31m▊ [m    [31m▇▅█▄▌ [34m  ▌  [m
   [1;33m硬       [37m◥ [41m█▇ [45m█ [;30;45m▁ [47m   [m     [34m▆  [32m▄◢▃◥◤ ▃◣◥ [30;42m▊▌ [;32m◤   [31m◥ [41m  [;31m◤ [m   [30;41m▍ [;31m▄ [41m  [;31m▅▊ [34m   ▊ [1;37m▆ [m
   [1;33m兔    [30;47m║ [m  [30;47m▊  [;1;31m’ [;30;47m_  [;1;31m’ [;37m▊         [34m ▋  [32m ▃ [42m   [;32m▃ ◢▅▄◢ [30;42m▅▂▄ [m     [41m  [;1;33m ◥  [;31m◣  [41m  [;31m◣ [1;33m◣    [37;47m  ◥ [;1;37m◤ [m
   [33m║   [30;47m≡( [m = [30;47m◣ ▼ ◢ [m=        [34m▊   [32m▃ [42m   [;32m▃▃ [30;42m▊ [;32m▅◤ [30;42m▋▅▂▄ [m  [30;41m◤▃▁◥ [;31m ◥ [41m  [;31m◥▆◤ [34m▄ [30;47m(   [m


※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.90.74

作者: in2 (今天不是檸檬兔子~) 看板: in2
標題: [回憶] Ptt/Ptt2 歷史 (5)
時間: Fri Feb 25 00:40:36 2005

 2003 年九月到 2004 年暑假, 要算是相當慘烈的一年.
怎麼說呢?
如果說發現硬碟負荷太大了, 花錢買個硬碟, 大概 5k~10k 就可以解決.
之前發現記憶體不夠用了, 加一次記憶體, 大概 20k~30k  就可以解決.
這樣子的錢, 其實並不算太難募到.

問題是, 看起來是我們用的那台機器對於超過 4GB記憶體的支援有問題 |||b
所以說就要換整台機器囉(?)
換整台機器要多少錢? =.=

不要說其他的, 換一台機器的話, 至少要有個 4GB的記憶體吧?
要不然為什麼要換?
可是在當時, 光是 4GB記憶體大概就要價將近十萬,
 (即使在今天也大概要六萬左右)
如果是自己買主機板 cpu來兜, 大概又要花近十萬,
如果是買像 IBM等等這種大廠的話,
價格又更高 (那個時候看到一台要 15 萬的, 中信局的報價)
可是要去哪邊找個幾十萬來買機器? =_=
那個時候還不像有名大站這樣子, 可以接些廣告來拉點收入,
也沒有 Google AD Sense,
那那那, 啊啊啊啊啊~~~~~~

這件事情直到 2004/08才搞定, 那又是另一個故事了 :p

唔, 再來要想看看怎麼寫 :PP
寫不好可是會得罪人的 :p
今天寫到這邊吧 :PP


         ▂  [31m▄▆▄▁ [m           [32m▃▄ [m       [32m▂ [m   [32m▃ [m       [31m▇▆▄▂ [m   [31m▇▄▅ [m  [34m▅▃▄  [m
   [33m║   [m◢ [35;47m◢  [;41m      ▅◣ [m     [1;37m ▄  [;30;42m▋ [;32m◣▌◢◣ [m  [32m▃▄ [m  [42m  [m  [32m▆█ [m  [31m◥ [41m      [;31m◤   ◣▋   [34m   ▊  [m
   [1;33m好   [m◥ [;35m◤ [1;37;41m▂    [;35;47m▅▃   [;41m▍ [;31m▃ [1;37m█◤   [;32m◣▍◤◢ ▃▄◥▎ [30;42m▌ [;32m▂ [m     [31m▊ [m    [31m▇▅█▄▌ [34m  ▌  [m
   [1;33m硬       [37m◥ [41m█▇ [45m█ [;30;45m▁ [47m   [m     [34m▆  [32m▄◢▃◥◤ ▃◣◥ [30;42m▊▌ [;32m◤   [31m◥ [41m  [;31m◤ [m   [30;41m▍ [;31m▄ [41m  [;31m▅▊ [34m   ▊ [1;37m▆ [m
   [1;33m兔    [30;47m║ [m  [30;47m▊  [;1;31m’ [;30;47m_  [;1;31m’ [;37m▊         [34m ▋  [32m ▃ [42m   [;32m▃ ◢▅▄◢ [30;42m▅▂▄ [m     [41m  [;1;33m ◥  [;31m◣  [41m  [;31m◣ [1;33m◣    [37;47m  ◥ [;1;37m◤ [m
   [33m║   [30;47m≡( [m = [30;47m◣ ▼ ◢ [m=        [34m▊   [32m▃ [42m   [;32m▃▃ [30;42m▊ [;32m▅◤ [30;42m▋▅▂▄ [m  [30;41m◤▃▁◥ [;31m ◥ [41m  [;31m◥▆◤ [34m▄ [30;47m(   [m


※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.90.74

作者: in2 (好痛不色色痛不好) 看板: in2
標題: [回憶] Ptt/Ptt2 歷史 (6)
時間: Wed Mar 30 09:44:57 2005

就這麼機器上插著 5GB的記憶體,
可是只能用最前面 4GB過了好久,
我們還經歷了 FreeBSD剛開始開發完成支援 PAE的功能
 (註: PAE是在 i386 架構下可以使用超過 4GB記憶體的神祕功能)
然後從 FreeBSD-current merge回 FreeBSD-stable ,
以及在 2003 年十月測了 FreeBSD 4.9,
可是只要一開了 PAE網路就會大爆炸 (狂 packet lost)
為了這件事, 我測了各式各樣的網路卡,
包括
        rl — RealTek 8129/8139 Fast Ethernet device driver
        sk — SysKonnect SK-984x and SK-982x PCI Gigabit Ethernet adapter driver
        pcn — AMD PCnet/PCI Fast Ethernet device driver
        em — Intel(R) PRO/1000 Gigabit Ethernet driver for the FreeBSD operating system
        fxp — Intel EtherExpress PRO/100 Ethernet device driver
其中還有好多好多塊不同的 fxp :p
有趣的是開 PAE的話 fxp會和 ahc ( SCSI driver ) 衝突,
於是網路就整個動不了 XD
但是我當時沒有任何其他的 SCSI 卡可以換 @”@
所以就這麼繼續爆炸 😮

因為一些神祕機緣下,
和位於北京清華大學的水木清華 BBS站有了一些交流,
包括負責管他們機器運作的 :p
他們所有的硬體都是由某公司贊助的 (好像叫 曙光 ?)
而且該公司的贊助十分大手筆 :p
例如說, 在我們當時還是拿一堆硬碟亂接,
還有一大部份是拿 IDE的硬碟轉成 SCSI 介面亂搞的時候,
他們已經是使用兩組 SCSI 的 raid 5 了 :q
那個時候就很受傷 XD
大概是我自以為台灣應該比大陸有錢一些些 XD
沒想到人家一出手就是這麼高檔的機器跟你拼了醬子 :p
這倒不是看不起人家對岸, 而是缺乏交流才會自己做出很奇怪的假設 =_=
所以後來 Ptt開設 Cross_Life 和水木清華對轉,
可以直接面對面交流一些事情, 其實我覺得滿好的 :p
雖然這最近好像爆炸了 :X

另外還有一個神祕事件是,
某學校科系(半)公開支援有名大站的機器,
據聞買了幾台超高規格的機器, 配有超級多的記憶體,
再外加一些 raid 的系統 (有名大站似乎很喜歡買整台的 raid box @@”)
然後該站人數就好像到一萬三還是多少,
帳面上比我們高一些 :p
所以又進入某牧場模式? XD
不過你實際去看 active 的人數的話就會知道其實兩邊的 loading是差很多的 @”@
例如說兩邊都說是一萬人, 可是可能某站有 8,000個人 idle 時間 < 600 秒,
另外一個站可能只有 1,500個人 idle 時間 < 600秒,
well, 那又是另外一個故事了 :p

不過在這邊我當然還是要特別感謝有名大站,
因為要不是他們率先採用了 AMD Opteron處理器,
我一直還侷限在 Intel Xeon 的天下裡 :p
尤其是我覺得 HyperThreading 真是超讚的東西!
 (雖然後來看了很多比較偏理論的東西, 發現其實沒有一開始想的這麼強力)
 (well, 但是做出這樣子的東西仍舊是很了不起了 :p)
然後, 升級計畫就改成了使用 AMD Opteron的方式.
因為那個時候原本想說買個 8GB的記憶體就夠用很久了 (事實上發現並不是) ,
那個時候甚至還沒有 EM64T, 所以又只能用 PAE來跑,
而當時大部份使用 Xeon 的機器差不多都只剛剛好能支援到 8GB的記憶體.
當然一些大廠如 HP 或是 IBM仍舊有非常高階的機種,
例如說 8 x Xeon 配上 128GB的記憶體的,
不過我們當然沒有這個錢買這樣子的東西 XD

但是, AMD Opteron 給我們在可以接受的預算之下,
支援到雙 cpu配上 16GB 記憶體的選擇.
後來在 2004 年八月, 一台展新的機器,
備有兩顆 AMD Opteron加上 8GB的機器出現了!
它甚至還保留了再加上 8GB記憶體的能力!
記憶體一次就大了一倍,
在當時可以容納的同時上線人數幾乎就和記憶體容量成正比,
而衝破兩萬人是在 2004/09/15 晚間 :p
剛好是在新學年開學的大潮 :p


         ▂  [31m▄▆▄▁ [m           [32m▃▄ [m       [32m▂ [m   [32m▃ [m       [31m▇▆▄▂ [m   [31m▇▄▅ [m  [34m▅▃▄  [m
   [33m║   [m◢ [35;47m◢  [;41m      ▅◣ [m     [1;37m ▄  [;30;42m▋ [;32m◣▌◢◣ [m  [32m▃▄ [m  [42m  [m  [32m▆█ [m  [31m◥ [41m      [;31m◤   ◣▋   [34m   ▊  [m
   [1;33m好   [m◥ [;35m◤ [1;37;41m▂    [;35;47m▅▃   [;41m▍ [;31m▃ [1;37m█◤   [;32m◣▍◤◢ ▃▄◥▎ [30;42m▌ [;32m▂ [m     [31m▊ [m    [31m▇▅█▄▌ [34m  ▌  [m
   [1;33m硬       [37m◥ [41m█▇ [45m█ [;30;45m▁ [47m   [m     [34m▆  [32m▄◢▃◥◤ ▃◣◥ [30;42m▊▌ [;32m◤   [31m◥ [41m  [;31m◤ [m   [30;41m▍ [;31m▄ [41m  [;31m▅▊ [34m   ▊ [1;37m▆ [m
   [1;33m兔    [30;47m║ [m  [30;47m▊  [;1;31m’ [;30;47m_  [;1;31m’ [;37m▊         [34m ▋  [32m ▃ [42m   [;32m▃ ◢▅▄◢ [30;42m▅▂▄ [m     [41m  [;1;33m ◥  [;31m◣  [41m  [;31m◣ [1;33m◣    [37;47m  ◥ [;1;37m◤ [m
   [33m║   [30;47m≡( [m = [30;47m◣ ▼ ◢ [m=        [34m▊   [32m▃ [42m   [;32m▃▃ [30;42m▊ [;32m▅◤ [30;42m▋▅▂▄ [m  [30;41m◤▃▁◥ [;31m ◥ [41m  [;31m◥▆◤ [34m▄ [30;47m(   [m


※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.90.74

作者: in2 (晚安 地球人) 看板: in2
標題: Ptt/Ptt2 歷史 (7)
時間: Mon Apr 14 23:28:06 2008

就後朝修前朝史的慣例,
買了新機器就該寫舊機器的歷史 XD
上一集據說是 2005 寫的了,
趁還記得一些事情來寫個回憶錄一下 XD

在 2004 年的時候有一些偶然的機會得到了一些贊助,
像是五月天的募款演唱會及一些熱心網友和其他,
批踢踢終於有機會換一台像樣一點的機器.

順便小提一點點五月天的募款演唱會,
當然是十分感謝他們五位可以熱情相助,
好像當天下午他們在西門町有個簽名會之類的,
那邊才剛剛結束就搭車趕過來.
但是當天的募款結果真是無比慘烈,
要不是五月天不拿費用,
當天的舞台和燈光音響有其他的廠商出掉,
現場募到的款不要說買機器,
上面的任一個都不夠出 /_________________\
甚至忙了半天隔天有個同學跟我說「我有捐 $10 喔! 很感動吧」
當場就想給他一巴掌 XD
然後隔天我一個人拿了上千個 $1 銅板去存 *爆*
所以後來就沒有這種好康的事情了~ 😛
(要不然我覺得以批踢踢的力量要辦這種活動應該不是難事~)

我不知道為什麼一直對 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 上面硬加顆風扇,
它就乖乖的了 😀
之後還有一小點調整,
在最高記錄的時候,
一台批踢踢上面接了近兩打的硬碟 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 了一倍, 不過那就是下一個故事了~ 😛
也許是 2010 年買新機器的時候吧~ 而且不一定是我執筆就是~ :p

就醬 😛
(To be continue?? XD)


    [44m   [30m▂▅▇▇▅  [;44m  [m   [1;37;44m╚╩╯╭○ ╔═══╗ [;37;40m  [1;33m [;37;40m                   [m   [44m   ▃   ◢ [35;47m◢ [;44m   [m
   [44m  [34;40m▊ [;30m      [37m/  [m    [44m   [m  [1;37;44m╔═╗╬╦ ╠═══╣ [34;40m╔╦ ╔╦╗╠══╣ [m  [44m ◢ [35;47m ▃  [;44m  █ [35m█ [;44m    [m
  [44m   [34;40m▎ [;30m   [43m◤◢█◤ [m  [44m    [1;37m╚╦╝║║ ╚═══╝ [34;40m╯/╗╔╬╗╯╭═╣ [;44m  ◥◤ [35;47m▌ [;44m◢ [35;47m◢ [34;45m◢ [;44m     [m
  [44m   [34;40m▌ [;30m   [43m▎◣  ◢ [33;44m▎ [;44m   [1;34;40m║║║║║ ══╦═╯ [37;44m/ ║╠╬╣╔╬═╗ [;44m   [34m   [37m◢ [47m       [44m◣ [34m   [;44m   [m
   [44m    [;1;33m◣ [;30;43m   [47m  [40m  [43m   [47m  [;40m  [44m    [m  [1;34;40m╯╝╯╯╚ ╯═╩╩╯ [37;44m ║║╚╬╝╚╬═○ [m  [44m    [30;47m_  [1;31;40m’ [;30;47m_  [1;31;40m’ [;30;47m _   [;44m    [m
    [30;44m◢█ [43m\ [4m  ¯ [;33;44m◤   [m   [37;40m                      [1;44m ╚╝╰╯╯╰╯╰╯ [m   [44m   [37m◥ [30;47m ▼  \ [37;44m◤ [;44m   [m


※ 發信站: 批踢踢兔(ptt2.cc)
◆ From: 140.112.172.6
 [1;31m→  [33mthankyou9527 [m [33m:看到前面的部分…就覺得自己老了                   [m推 04/14 23:30
 [1;31m→  [33mcychi [m [33m:in2 考不考慮出書阿~~                                  [m推 04/14 23:30
 [1;31m→  [33mlht2 [m [33m:XD                                                       [m推 04/14 23:34
 [1;31m→  [33mcychi [m [33m:「我在PTT的日子」by in兔                                [m推 04/14 23:34
 [1;31m→  [33msuperX [m [33m:[我硬了,又吐了] (毆)                                   [m推 04/14 23:34
 [1;31m→  [33mtjackalym [m [33m:= =a                                                [m推 04/14 23:35
 [1;31m→  [33mchtm [m [33m:續集續集~~                                               [m推 04/14 23:35
 [1;31m→  [33mTuvok [m [33m:好令人感動的歷史                                        [m推 04/14 23:37
 [1;31m→  [33mpaullai [m [33m:XD                                                    [m推 04/14 23:43
 [1;31m→  [33mtimpani [m [33m:用reiserfs心臟要夠力才行  XD                          [m推 04/14 23:45
 [1;31m→  [33mLeland [m [33m:reiserfs 的作者還在不在啊                              [m推 04/14 23:49
 [1;31m→  [33mhuani [m [33m:科科…那場募款演唱會我有去…XD                        [m推 04/14 23:54
 [1;31m→  [33mwens [m [33m:opteron 246啦                                            [m推 04/14 23:56
 [1;31m→  [33mwens [m [33m:Hans Reiser 可能被抓去關了                               [m推 04/14 23:56
 [1;31m→  [33mflyplayer [m [33m: 其實看不懂不過還是推一下 辛苦了                    [m推 04/14 23:56
 [1;31m→  [33meaglet [m [33m:欸 手機還在敝實驗室是不是啊?                          [m推 04/14 23:57
 [1;31m→  [33mYuwuen [m [33m:有看有推                                               [m推 04/15 00:02
 [1;31m→  [33mbtpenguin [m [33m:硬兔姊姊辛苦了XD                                    [m推 04/15 00:23
 [1;31m→  [33muni [m [33m:出書~ 推一下in2魂!!!                                      [m推 04/15 00:27
 [1;31m→  [33mkillmejohn [m [33m:有看有推                                           [m推 04/15 00:36
 [1;31m→  [33mlolikung [m [33m:純推不下                                             [m推 04/15 00:51

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *