第十八屆交大高階經理人培訓班第十課

本次來分享的講師是熊健生 (Repus, super 倒過來拚) 學長, 他很特別地帶了大學畢業的女兒來旁聽. 畢竟老爸在家裡講自己的經歷給小孩聽好像自賣自誇, 如果能當著一整間教室的校友公開講,顯然有說服力多了! 這招我覺得挺不錯!

學長說, 因為校友會陳執行長給他的講題是自由發揮, 所以他也特別地苦惱要講些甚麼? 最後他決定分享他的人生經驗, 這樣誰都不能講得比他更好, 甚至挑出毛病了! 熊學長在公開領域的資料非常少, 如果不是他現身說法, 我們從網路上頂多能查到他曾經是振曜 (Netronix, 6143) 的總經理, 建漢 (3062) 的行銷業務處副總,無法得知他的個性或是作風.所以這次能參與這堂課真是難能可貴.

熊學長畢業於輔仁大學 (1986),碩士班就讀於清華大學電機所 (1988),最後是因為參加交大 EMBA (2011) 才與我們結緣.學長今年離開了振曜,加入我們瑞昱前長官李職民副總的雍智科技 [1] 擔任 BU head.哈,世界還真是小呢! 以前李長官在舊廠時還曾經坐在我右手邊的第二個 block. 在查資料時順便看了一下振曜, 它今年組織大調整, 換了總經理、稽核主管、財務主管、會計主管、董事、研發主管,..[2]. 所以雖然振曜去年賺了 8 塊, 學長的離職想必事出有因, 就不研究了.

學長分享的第一個 footprint 是求學時代. 學長說他們的國文老師很喜歡叫人背書, 每次上課都要點人起來抽背. 但老師年紀大了眼睛不好, 課堂又是階梯教室, 所以他們班就有人負責翻找課文朗讀, 被點到站起來的同學只負責動嘴演雙簧.看來這招到學期末都沒有穿梆, 老師還稱讚這一班是歷年來僅見的好學生.這個事件的當事雙方雖然都不可取,但厲害的是學長有自己的見解. 他說這告訴我們在職場上也有內外之分.那些出去跑客戶的業務就是負責動嘴的, 後方的 RD 就是負責唸課文的. 前方演得生動, 都靠後方的支援. 但後勤部隊自己見不了光, 一來客戶的點名簿裡根本沒點到那些人, 二來叫後方 RD 上前線的話搞不好講錯更多, 客戶不知道的什麼致命 bug 全抖出來了哪還得了~~~

第二個是事件是學長大一的時候, 就有大四 (?)學長要他幫忙在體育課代點 – 也就是點名時舉手答"有". 結果學長氣質太像大一, 立馬被體育老師拆穿. 老師說要記學長兩個大過! 這時大四學長也跟老師求情, 說學弟無辜, 都是他要求的. 體育老師說, "好! 那你退學."  後續倒底是被記幾個過, 或是誰被退學就不追究了, 我想老師也是嚇嚇他們. 老師說到一個重點, "一看就不像大四的." 這就是代點被拆穿的關鍵. 學長說, 這給我們一個啟示 – 要知天命. 不要看人家做什麼? 你也想做什麼! 要知道自己有沒有那個條件. 別人可以這樣那樣,我不見得可以.

第三個事件發生在學長就讀清大之後. 學長說他讀輔大的時候, 大家寫好程式要去跟助教登記自己的程式有幾頁, 才能在計算機中心印出幾頁報表紙. 到清大的時候, 有天發現室友抱了一疊報表紙回來, 學長趕忙問他, 這什麼程式那麼大? 結果室友說, 沒! 這是計算紙. 這種資源上的貧富差距也給了學長相當的震撼. 學長說這告訴我們 run 公司也要看有多少資源. 資源多有資源多的作法, 沒有資源就不要去做資本密集, 人力密集, …之類的產品.

學長考清大電機研究所的時候也發生過一件趣事, 那就是他兩場口試中有一場完全答不出來. 老師的題目是 :"假如有一個系統壞掉了, 甚麼顯示都沒有要如何 debug?" 學長只能回答不知道. 即使老師進一步提示: 要找出 blockdiagram, 然後…學長還是說不知道. 一路不知道到底,這部分看來是沒分數了. 不過即便如此, 學長還是考上了電機研究所. 我想學長的筆試成績應該相當地傑出. 因為他還說如果是某幾個學校的畢業生去口試, 老師根本不問那麼多, 直接帶他們參觀實驗室. 在我印象中, 那時的研究所非常難考,頂尖科系的錄取率只有 8%,熱門科系大概也只有十幾個百分比的錄取率. 呃…那這件事給學長的啟示是什麼呢? 學長找了把他問倒的這位老師當指導教授.

學長說, 既然這老師那麼厲害, 不如就跟他吧! 說也有趣, 這位老師竟然願意收什麼都說不知道的學生. 不過在往後的兩年當中, 指導教授不斷地當眾指正學長的做事的方法和態度. 像是參加 seminar 聽不懂怎麼不問? 跟教授討論論文怎麼沒有帶 engineering book? …在老師不斷地要求之下, 學長的習慣也改變了. 後來因為每次問問題, 問到老師都要把問題帶回去研究, 說下次再回答你. 學長說, 他一生中有兩個貴人, 他的指導教授就是其中的一個. 雖然被指責很讓人難過, 但是也因為這樣才得到成長. 如果一個人隨隨便便, 不可能變得 outstanding.

接下來學長分享在建漢 (CyberTAN) 的經驗.他在建漢的時候是負責業務,有一次和董事長、總經理去拜訪他們最大的客戶.結果客人說, 我們不用認識太多, 反正你們五年換了五個總經理, 認識了也沒用, 這次是最後一次用建漢的產品, 下次就不用了. 身為業務頭頭, 學長聽了當然很無言. 然而, 即便公司很亂, 學長最後還是把生意做起來了, 也贏回客戶的信任.學長說, 在搭順風車的時候看不出能力的高下. 只有在逆境的時候, 能夠臥薪嘗膽、反敗為勝才是真本事. 出錯的時候要把功勞給員工, 過錯自己背. 因為部屬的錯就是你的錯!

後來建漢被鴻海併購, 學長又遇到了他第二個貴人. 鴻海體系下壓力很大, 擔任主管的人都要有肩膀扛起來. 要有什麼肩膀呢? 首先不能變成傳聲筒, 老闆要你做什麼? 你就 by pass 下去, 沒有自己的想法就是傳聲筒. 一方面對主管的要求要能做到,另一方面還要有附加價值, 把自己的價值附加在主管的指令上面. 附加價值的大小決定你在組織裡面的地位 / 位置. 學長說, 如果你只是個傳聲筒, 在鴻海很快就被拔掉了. 人家跳過你就好, 何必付你薪水?

在金融海嘯時期, 學長說他學到一切沒有藉口, 再怎麼樣人家都能賺錢,自己當然也要能. 做業務的人可以有 100 個理由達不到業績: 產品不好啊, 開發進度 delay, 競爭對手倒貨,…聽起來都很合理. 不過業務就是成果導向,特別就是當頭頭的人, 除了各種內外在因素, 最重要的就是努力. 學長說當年有人跟 BG (business group) head 反映公司停車位不夠, 大老闆說, 不會啊, 我一大早來停車位都是空的; 下班的時候停車場也是空空的, 車位怎麼會不夠? 雖然此言一點都不合邏輯, 但是言下之下大家都明白, 活該晚到的人沒車位.

學長說當他三四年前回鍋振曜的時候, 他真正做到當責 – 把公司當作自己的. 經過 3 年的努力, 振曜從每股 EPS 2.32 成長到 8.08 塊. 其中有一件重要的事情就是讓老員工改變思維. 從不同的角度看同一件事,意義完全不一樣. 這邊的細節應該是相當精彩, 不過我暫且沒有時間研究; 如果用猜的, 會認為是元太入股振曜, 所以後來產品主力變成電子書的關係.

最後, 學長有個 "one more thing" – 套用 Jobs 名言. 做人要有格調, 不要受外面的影響就改變自己的原則. 過去他也是個好好主管, 對部屬的表現部會特別說什麼, 怎樣都好.但他後來也學到像他的指導教授一樣, 對於員工要有要求、要給訓練, 這樣員工才會有更大的成長. 或許員工當下也會牙癢癢的, 但只有被要求了才會成長, 部屬只是 free run 的話, 主管背了他們的責任, 相當於是靠天吃飯, 也在 free run.要有自己的原則, 才能展現價值.

當課程中場休息, 同場加映了一部短片 [3].簡單地講, 這就是 “老師你會不會回來?" [4] 的 23 分鐘視訊版.片子非常感人, 看視訊比讀書更有感覺. 但, 我未讀的 mail 太多, 數量已經不好意思寫出來了, 所以沒參加到 Q&A 就先離開了.

[ref]

1. 雍智科技

2. 本國及第一上市(櫃)公司(含98.10.30前TDR重訊)

3. 翻轉就是嘗試回到事物本身應該有的樣子 | 王政忠 | TEDxNCCUED

4. 老師,你會不會回來

第十八屆交大高階經理人培訓班第九課

本次我們請到的講師是控工 81 級的郭加泳學長, 雖然郭學長不是上市櫃公司的董事長或是總經理, 但身為互貴興業 [1] 總經理的他, 被校友會執行長陳俊秀學長掛保證 "未來肯定是". 為何郭學長能夠得到這麼大的肯定呢, 就是人對了! (互貴興業這麼賺錢應該不用上市才對, 哈!)

所謂的互貴, 顯然就是指 "互為貴人", 這熟悉的字眼來自於交大校友會十六字箴言: 飲水思源實事求是終身學習互為貴人.不消說這互貴興業算是交大校友會的 "關係企業". 雖然互貴興業的創辦人和交大校友會總會理事長同樣都是宣明智學長,但是互貴興業的業務範圍不僅僅是服務交大校友, 而是要把台灣的生技產業帶進大陸市場.畢竟電子業對於兩岸已經是成熟的產業, 而生技業卻是可以預期的明日之星.

從郭學長的分享當中, 我們多少可以捕捉到互貴興業的獨特性. 為什麼別家不能? 一定要是互貴興業才能把生技業帶進大陸呢? 原因就在於中國的國務院副總理汪洋,和宣學長頗有淵源.在公開的資料上可以找到兩份舊資料, 一個是宣學長曾經擔任廣東省政府策略顧問, 協助廣東省成立山寨版的新竹科學園區 – 東莞松山湖高新園區 [2], 另一個是 2009/10/23,宣學長帶領台灣高科技業高層訪問廣東省委書記的汪洋 [3] .後來汪洋步步高升, 宣學長也從科技業大老變成生技業代表; 兩位大老當然關係匪淺.  附帶一提,第一批訪問松山湖的科技業高層還包括裕隆、京元電子等等大企業 (2009/6/23). 第二批科技業則包括了螃蟹公司在內, 哈!

有趣的是, 宣學長並不是生技公司的董事長或是總經理, 他要如何代表台灣的生技業呢? 很簡單, 郭學長說他和宣學長、陳執行長三個人討論之後, 就決定自己創一個組織.後來這個組織的角色日後就由互貴興業取代.當新創公司需要資金的時候, 郭學長代表的交大天使俱樂部負責資金; 互貴興業則提供企業前進大陸的直通車 – 菀榕計畫.這樣從資金到工廠、市場都可以一氣呵成! 解決證照 (台灣 = 外資)、通路 (地頭蛇)、政策 (副總理背書)、和資金 (交大天使俱樂部) 的問題.

所謂莞榕計畫是由互貴興業和東莞市政府的合作方案,由互貴興業遴選台灣20 家有潛力的醫療生技公司,透過互貴興業和雙方合資的國營東莞市生物技術產業發展公司,提供從證照申請、行銷通路、政策支持及資金後援的一條鞭服務,協助台灣業者快速進入中國市場。 至於東莞生技的獲利模式則是取得業者3 年的廣東區總代理,負責省內的醫療通路推廣。東莞市政府目標則在於招商,計畫總額15 億台幣的補助資金,將依照業者落戶松山湖、營業額達首要目標、營業額再達下階段目標等,3 個3 年的里程碑,分階段透過東莞生技投資和業者成立合資公司。[6]

大致瞭解了互貴興業的營運之後, 再來介紹一下交大天使投資俱樂部. 這個俱樂部有個 11 人決策小組 (working group), 如果全體一致通過投資對象, 天使們的資金就會進入到這家新創公司. 由於每位天使所佔的投資金額不高 (例如 5 個 angel 各佔 10%), 在新創公司的股份相對有限, 此時交大天使俱樂部的 working group 成員就會擔任所有天使的代表董事. Angel 們把 10% 的股份捐給交大校友會做為俱樂部代理董事工作的報酬,而新創公司也要對等捐 5% 給交大校友會, 作為 working group 幫忙找資金的報酬.據說這個模式相當成功, 成為多個投資公司爭相模仿的對象! [7]

講了這許多, 還沒有提到郭學長本身.郭學長和其他以前來上課的學長有比較不同的經歷,他在交大控制系唸書的時候重心主要放在社團, 所以學科成績不佳; 多拚了一年後考上隔壁的清大電機研究所. 不過學長沒把碩士讀完, 而是肄業後跑到聯電上班. 我想郭學長無論是從清大拿到學位、或是在聯電努力上班, 或許最後都只會是個園區上班族. 但郭學長在工作中發現自己有管理的興趣, 於是轉換跑道去拿交大科管所的學位; 另外為了彌補沒有唸完工程碩士的遺憾, 交大清大又都唸過了, 學長最後是畢業於台大電機的碩士班. 當他轉到創投業發展, 學長發現身邊的同事大多是 MBA, 因此也到芝加哥大學唸了 MBA 回來.在求學 (歷) 的過程中, 學長雖然走了一條彎路, 但是台清交和芝加哥大學都念過, 理工和科管/商管的學位都有, 這內容也太豐富了!

前面講的都是外在的人事物, 最後我整理一下郭學長的心法.學長引用了幾本書, 我想這些都是他喜歡的作品. 其一是拿破崙.希爾 <致富思考> (Think and Grow Rich), 我們都知道這位作者是著名的勵志學和成功學專家.所以他說的 Rich 就是變有錢, 而不是變豐富,呵! 書上說你要很想很想變有錢, 有了熾熱的慾望才會真的有錢! 因此郭學長也說我們要做個人的自我修練, 讓思想變成具體的東西,產生信仰和力量! 學長說, 他在團隊當中都會扮演發電機的角色, 讓自己變成 key man. 透過事先在心中預演, 並自我暗示讓自己變成領導者.

除了好的東西要放進腦袋, 也要把不好的東西排除在外. 像是別人沒事來倒垃圾、吐苦水, 學長把它比喻在你的家裡丟垃圾. 好腦袋一顆比千萬豪宅要有價值多了, 家裡都不能容許客人丟垃圾, 大腦當然也不允許. 他引用了馬克吐溫的一句話說: "離開那些想要消弱你企圖心的人。小人總會那麼做,但真正的偉人會讓你覺得,你,會變得很偉大。" 我筆記來不及記哪麼快, 還好 <菜根譚> 裡面也有這句~~~

至於團隊的信仰, 和個人是不同等級的.因為每個人想要的東西都不一樣, 所以需要溝通. 沒記錯的話, 個人的修練只要做到 step 1~6, 團隊的修練還要加上 step 7~10.

1。 想賺多少錢?
2。 為了 step 1 的目標, 必須決定我要付出什麼?
3。 訂出達成目標的日期
4。 定好計畫, 立即行動
5。 把以上 4 個步驟寫在紙上
6。 每天大聲唸
7。 選擇不怕失敗的人
8。 團隊的回報是什麼?
9。 一週要有兩次的團隊會商
10。經常做心靈上的溝通
 
另一本學長喜歡的書來自杜書伍學長, 我推測是指 <年輕人的資產與負債>, 這上面說年輕人要用衝百米的精神努力工作, 快速累積經驗, 久而久之就會和同儕有差異. 郭學長特別強調, 如果迅速累積速 3 倍的打雜經驗也是枉然, 這點要注意. 另外又因為從一個層級到另外一個層級的爬升中間會有平坦期. 很多人會覺得自己一直沒升遷, 受不了想跳槽. 郭學長提醒大家想要升得愈高, 就會跨領域或是跨產業, 當然它的平坦期就愈長, 這段時間要好好累積能量, 等待機會, 不要太浮躁.
 
講到這邊, 陳執行長忽然點名他認為升遷超快的吳冠良學長起來發表感想. 冠良兄一不推辭, 二不囉嗦, 花了大約一分鐘做簡短的分享, 既有風度又不搶講師風采, 這招我要特別學起來. 
 
後續本來還有精彩的 Q&A 時間, 但中場休息時我看了一下手機, 還沒看的信已經超過 100 封了. 以這種速度累積, 別說未來當什麼高階主管, 恐怕連門前雜魚也混不成了. 於是趕快打道回官府看 mail, 後續利用假日把參考資料查一查, 最後補充成這篇, 希望沒有太失真的地方.

[REF]

1. 互貴興業生物科技股份有限公司

2. 宣明智再出手!成立互貴興業 打造兩岸生醫橋樑平台

3. 汪洋會見臺灣高科技企業高層 繼續支援臺企發展(2009.10.23)

4. 松山湖發揮優勢 全力打造“珠三角IC 谷”

5. 交大天使投資俱樂部

6. 台灣新、好產品 大陸廣、深市場 宣明智:兩岸生技「氣根發展」理論

7. 獨家/科技大老闆的最愛 揭秘交大天使投資俱樂部

DivX 專利小整理

DivX 有哪些專利呢? 到 USPTO 找了一下, 一共有 14 篇, 其中有兩篇是延伸自他們先前的專利.

專利字號 專利名稱 極簡摘要 生效日
8,510,303 Singular, collective and automated creation of a media guide for online content 可以對 user 觀看的內如打 tag, 然後送特定資料給 user. i.e. push 廣告之類的. 2013/8/13
8,472,792 Multimedia distribution system 一個多媒體檔案中有兩種 index, 第一種指到 video frame, 第二種指到一群 video frame. i.e. 做 trick play. 2013/6/25
8,301,793 Chunk header incorporating binary flags and correlated variable-length fields 一個多媒體播放系統, 檔案中有 pointer 指到下一塊 data 的位置, 使得檔案能夠依不同的方式播放, 而不會讓檔案大小明顯增加. 2012/10/30
8,289,338 Systems and methods for font file optimization for multimedia files 檔案系統中的字形檔 (font file) i.e. 字幕等等的儲存方式 2012/19/16
8,233,768 Hierarchical and reduced index structures for multimedia files 用 index 技巧保護 content 2012/7/31
8,201,264 Federated digital rights management scheme including trusted systems 聯邦式的 DRM 保護, 延伸 7,515,710 2012/6/12
8,139,651 Video deblocking filter deblock filter, 延伸 7,886,069 2013/3/20
7,886,069 Video distribution system including progressive playback 根據 user 的指令更新遠端的媒體播放內容 2011/2/8
7,729,426 Video deblocking filter deblock filter 2010/6/1
7,664,872 Media transfer protocol 從 server 到 CE device, 根據特性使用不同的 data rtae 傳輸 2010/2/16
7,519,274 File format for multiple track digital data 多個 track 的檔案格式 2009/4/14
7,515,710 Federated digital rights management scheme including trusted systems 聯邦式的 DRM 保護 2009/4/7

7,460,668

Optimized secure media playback control 不用連到外部電腦就能註冊的的播放控制系統. 2008/12/2
7,295,673 Method and system for securing compressed digital video 加密某些 video frame, 但不用加密 reference  到加密 frame 的 frame, 2007/11/13

雖然大家對於 DivX 的認知是一個 video format, 或是一個有 DRM 保護的片商. 但是它主要的專利在於檔案格式, DRM, 以及 de-blocking. 真正和 video 播放有關的專利, 倒是付之闕如. 最有趣的是, 在專利  7,519,274 當中, 它以具體實施例偷渡了這麼幾段話:

DETAILED DESCRIPTION OF VARIOUS EMBODIMENTS 

In accordance with the present invention, the version of the video codec used in AVI files is signaled by the FourCC code in the fccHandler field or member of the AVISTREAMHEADER of the corresponding stream header `strh` chunks, and the FourCC code bicompression field or member in the BITMAPINFOHEADER of the corresponding `strf` chunks. 

By way of example, for videos encoded according to a codec developed by DivX Networks, Inc., 10350 Science Center Drive, Building 14, Suite 140, San Diego, Calif. 92121, the FourCC codes fccHandler in the stream header (`strh`) of the AVISTREAMHEADER is set to "divx" or "DIVX". Furthermore, the FourCC (DWORD) code biCompression in the BITMAPINFOHEADER of the corresponding `strf` chunks is set to signify the detailed codec version. 

Specifically by way of example, for version DivX 3.11, `div3` or `div4` is used in AVISTREAMHEADER, and `div3` or `div4` is used in BITMAPINFOHEADER; for version DivX 4.x, `divx` is used in AVISTREAMHEADER, and `divx` is used in BITMAPINFOHEADER; and for version DivX 5.x, `divx` is used in AVISTREAMHEADER, and `dx50` is used in BITMAPINFOHEADER. 

By now it should be appreciated that a file format for storing digital data with a high compression rate has been described. A file format in accordance with the present invention is compatible with high level data compressing algorithms, such as MPEG-4. Its data compression ratio is about six to ten times higher than a standard DVD format. In accordance with the present invention, the file format is capable of storing data in multiple streams or tracks. The file format is also able to encode and archive video, audio, and text data on easily accessible streams or tracks. Furthermore, the file format is able to provide protection of the copyright of the digitized content

While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific form or forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention. The present invention is limited only by the claims that follow. 

儘管 DivX 努力在不具備專利效力的章節裡面幫自己打廣告, 重申 DivX encoder 的優點,還是難掩它沒有主流 encoder 專利的缺憾.畢竟 encoder 做得再好, 還是要和 decoder 相容. 就以 7,519,274 這個專利來說,它只能在檔案格式上做文章.雖然專利名稱有 multi track, 但申請專利的人並沒有忘記把一個 track 的狀況包括進去.以他們的第一條 claim 來說.

1. A playback device configured to play data encoded in a multimedia file, comprising: a processor configured to read the multimedia file; wherein the multimedia file has at least one video track and includes a video stream descriptor list comprising: a video stream header chunk; a video stream format chunk following said video stream header chunk; and a video stream name chunk including a string indicating a video stream in said at least one video track; said video stream descriptor list further comprising a video stream header data chunk in response to said at least one video track being a digital rights management (DRM) protected video, said video stream header data chunk following said video stream format chunk in said video stream descriptor list; said video stream header data chunk in said video stream descriptor list including a DRM information data block comprising: a first member specifying a version of the DRM; and a second member specifying a protection of the DRM said DRM information data block in said video stream header data chunk having a data structure defined as: TABLE-US-00020 typedef _DRMinfo { WORD wVersion; STR sDRMinfo; } DRMINFO. 

看了雖然很眼花, 但簡單講就是: 多媒體檔案在 video stream descriptor 裡面有至少一個 video track, track 裡面有 video stream descriptor. 其中又有 video stream header chunk, format chunk, name chunk, data chunk, format chunk. 在 data chunk 裡面有 DRM revision 和 DRM information data chunk.

以我的認知是, 如果只有一個 track, 而且不受 DRM 保護, 就不受這一條的限制 – 因為那樣把所有傳統的檔案都包括進去了.為了防堵那些不用 track 為單位的檔案, 本專利在 claim 42 強調包含 multiple chapter. 而 claim 43 涵蓋只有一個 chapter, 但是有多個 data chunk 的狀況. claim 45 規範有 subtitle 檔案, claim 46 則規範有 subtitle, 但分成多個 data chunk 的狀況. claim 48 又把前述的 subtile 狀況, 加上有 DRM 時的例子…, 目標很顯然就是想一網打盡, 能想的都想了…從這個角度來看, 還真是滿厲害的.

 

在 Android 底下使用 CGROUP

CGROUP 是什麼呢?在 WIKI [1] 裡面簡直沒有幾行字, 要看懂不容易. 簡單地說, Linux 裡面有很多 process, 我們為了分而治之, 所以增加 group 的虛擬觀念. 每個 group 的 process 能夠使用的資源會有不同的限制. 比方說, 某些 process 可以用雙核, 某些 process 只能用單核. 某些 process 可以用 2GB DDR, 另一些 process 只能用 128MB.

我們可以在 console 下面 cat /proc/cgroups. 就會看見, 有 cpuset, cpu, cpuacct, memory, device, freezer, blkio, net_prio 等幾個 subsys_name. 而且他們各自有 hierachy, cgroups 的數目, 以及 enable 與否. 因為 Linux 底下的排版跑掉了, 所以除了第一列, 其他每一列都縮排.

android cgroup

以上面的 Android 系統為例 (Android 底下也是 Linux), 其中 cpuacct 這個 subsystem 就有 48 個 cgroup 之多. 什麼是 cpuacct 呢?它是指 CPU accouting control [2].  假如 Linux 沒有生成 cpuacct 這個 cgroup, 我們可以用 command line 產生.

mount -t cgroup -ocpuacct none /sys/fs/cgroup/cpuacct

我用原生的 Linux 3.10 只看得到 memory 在 cgroup 的目錄下. 使用上面這個 mount 指令後, 我們可以在 /sys/fs/cgroup 底下看見 cpuacct. 如果這個 cgroup 已經成立, 我們就可以看到一些統計資料, 例如 cpuacct.stat, cpuacct.usage, cpuacct.usage_percpu…等等. [Note 1]

cat /sys/fs/cgroup/cpuacct.stat 可以看到 user 和 system 各自用了多少 cpu 時間, 例如:

user 100352

system 79817 (單位是 user_hz [3])

cat /sys/fs/cgroup/cpuact.usuage 得到

2096699156712 (單位是 ns)

cat /sys/fs/cgroup/cpuacct.usage_percpu 得到兩顆 CPU 的數字

1145393229564    952319269088

兩者相加就是 cpuacct.usage, 不過不是同一個時間, 所以數字又變大了. 光看統計數字沒有太大的幫助, 我們要怎麼使喚它呢?根據 [REF 4] 的說法, 至少有三種方法可以做到. 其中 command line 和 libcgroup 的方法都被它介紹過了, 還有一個 LXC 的方法, 在 [REF 5] 當中有說明.

我這邊就只整理 command line 的方法, 因為它最容易了解 cgroup 目錄階層的意義.我們可以手動在 /sys/fs/cgroup 底下操作.

[CASE 1] 如果要限制的是可以用幾核的 CPU, 比方說雙核中, 誰可以用兩顆 CPU, 誰只能用 (某) 一顆, 那麼要先設定第一核與第二核的定義.

cd /sys/fs/cgroup/cpuset

sudo mkdir first_core

echo 0 > /sys/fs/cgroup/cpuset/first_core/cpuset.cpus

sudo mkdir second_core

echo 1 > /sys/fs/cgroup/cpuset/second_core/cpuset.cpus

接下來開始分配, 假設有兩個 process, pid 分別為 1185 和 1195.

echo 1185 > /sys/fs/cgroup/cpuset/first_core/tasks

echo 1195 >/sys/fs/cgroup/cpuset/first_core/tasks

echo 1195 >/sys/fs/cgroup/cpuset/second_core/tasks

結果使得 pid 1195 可以用雙核, 而 1185 只能用單核.

[CASE 2] 若是要進一步把 pid 1185 的使用權種降得更低, 我們就要定義出比重. 

cd /sys/fs/cgroup/cpu

sudo mkdir high

echo 2048 > /sys/fs/cgroup/cpu/high/cpu.shares

sudo mkdir low

echo 512 > /sys/fs/cgroup/cpu/low/cpu.shares

此時高低權重就出來, 接下來同樣是把 pid 加入 task 當中.
echo 1185 > /sys/fs/cgroup/cpu/low/tasks

echo 1195 > /sys/fs/cgroup/cpu/high/tasks

這樣在同一顆 CPU 中, 1195 也可以拿到 1185 四倍的 CPU 時間.

[CASE 3] 如果要分配記憶體的用量, 首先要設一個會限制記憶體的 group, 例如 limited_memory.

cd /sys/fs/cgroup/memory

sudo mkdir limited_memory

將它的記憶體上限定為 128M Bytes

echo 128000000 > /sys/fs/cgroup/memory/limited_memory/memory.limit_in_bytes

然後江這個 pid 加到這個 group

echo 1185 > /sys/fs/cgroup/memory/limited_memory/tasks

如果它的記憶體用量硬是超過限制, 它會 swap 到 disk, 不會用 DDR. 不過看來這樣也會拖累效率就是了.

[ref]

1. 中文版 WIKI

cgroups(控制組)是Linux核心的一個功能,用來限制報告和分離一個行程組的資源(CPU、記憶體、磁碟輸入輸出等)。這個工作是由Google的工程師(主要是Paul Menage和Rohit Seth)在2006年以「process containers(行程容器)」的名字開始的;[1] 在2007年的晚些時候被重新命名為控制組(由於在核心中「容器」這個名詞的歧義引起的混亂)並被合併到2.6.24版的核心中去。[2] 自那以後,又添加了很多功能和控制器。

cgroups的一個設計標的是為不同的應用情況提供統一的介面,從控制單一行程(像nice)到系統級虛擬化(像opeNVZLinux-VServerLXC)。cgroups提供:

  • 資源限制:組可以被設定不超過設定的記憶體限制;這也包括虛擬記憶體[3] 原來的分頁機制是在Linux研討會Containers: Challenges with the memory resource controller and its performance報告中提出的。[4]
  • 優先化:一些組可能會得到大量的CPU[5] 或磁碟輸入輸出通量。[6]
  • 報告:用來衡量系統確實把多少資源用到適合的目的上。[7]
  • 分離:為組分離名稱空間,這樣一個組不會看到另一個組的行程、網路連線和檔案。[2]
  • 控制:凍結組或檢查點和重新開機動。[7]

2.  CPU Accounting Controller

3. 3.3. cpuacct

4. Linux Control Group 介紹

5.  lxc 建立和設定虛擬機器

[Note 1] 同理, 我也可以 mount -t cgroup -ocpuset none /sys/fs/cgroup/cpuset, 不過需要手動在 cgroup 底下建這些目錄才 mount 得到. 我用 Linux 3.10, 最初 cgroup 底下只有 memory 一個目錄而已.

建完新目錄之後, 底下就會自動繼承出一大堆子目錄. 例如 cpuset 底下的 first_core 就會自動有 cpuset.cpus.

第十八屆交大高階經理人培訓班第七課

上了一年半的高階經理人培訓班, 終於遇到認識的講師了; 這次是由喬鼎資訊的李志恩 (James Lee) 董事長兼總經理為我們開課. 李學長和我指導教授張文鐘老師都是交大校友, 李學長是電工系, 我的老師是電信系. 兩位在美國是研究所同學. 只不過我們老師選擇了到卡內基美濃讀博士, 而李學長則在美國就業, 最後和朋友合開了喬鼎 (Promise) 這家公司. 由於我的老師曾經介紹我去喬鼎打工, 因此我認識了李學長.

李學長謙虛地說他還不是傑出優秀的總經理, 所以今天只是來和我們分享. 學長說如果他是優秀的總經理, 喬鼎應該和當初同期的鴻海一樣大了. 從這裡可以看出學長的志向遠大, 而他的課程內容, 也印證了學長無論在哪個領域, 都想要變成世界第一的決心. 學長的投影片雖然是以人、事、時、地、物來介紹喬鼎, 但是我想可以用幾個點來歸納學長的經營訣竅.

1. 不斷轉型求生存

喬鼎資訊雖然成立 25 年了, 核心技術都和儲存有關, 但是他的主力產品在每個階段都有所不同才能夠存活到現在. 我們可以從喬鼎資訊的公司網站上看到, 1993 年的時候, 喬鼎全球市佔率第一的產品是 VESA 的 IDE 介面卡. 當時的硬碟 (HDD) 必須接在 PC 的一塊介面卡上, VESA 這個介面現在已經進化為 PCI, 而 HDD 也變成 on board 的 SATA III 介面, 沒有卡板存活的空間了. 

卡板消失的同時, 意味著主機板要支援多個硬碟接口, 不然主板若是只支援 1 顆硬碟, 使用者不夠用時, 還得再去買介面卡. 因此主機板自然而然就會支援多顆硬碟, 並且進化到使用磁碟陣列技術 (RAID = (Redundant Array of Independent Disks). 可想而知, 喬鼎轉向往 RAID 發展, 並且在 1998 年推出 RAID on montherboard, 當我們去買高階主機板的時候, 就會看到 RAID chip 已經焊在主機板上了. Promise 在當時就是數一數二的品牌.

當然, 這個商機也不會維持太久, Intel 很快就想到要把 RAID 內建在晶片組當中. 因此 RAID chip 在主機板的市場又慢慢萎縮. 喬鼎轉型的方式就是企業用戶發展. 要知道現在 Intel 內建的 RAID, 設定真是難用到爆! 支援 4 顆硬碟, 就強迫 4 顆都要 RAID. 支援 6 顆硬碟, 也強迫 6 顆都要跑 RAID, 我得故意在中間穿插一個光碟機, 才能避免第五顆硬碟也要跑 RADI 的命運. 以我一個普通的家庭用戶, 用 RAID 不過是為了保護我的開機硬碟, 幹嘛要我犧牲 1 萬元去湊 RAID 的數目呢?

言歸正傳, 學長把儲存的技術用在企業級用戶, 也就搭上了雲端的熱潮. 現在喬鼎資訊的三大技術就是雲端儲存, 多媒體和監控系統. 學長在 "時 = trend" 的這個主題下講到, 在公司比較低潮的時候, 往往是靠著多和客戶談, 傾聽客戶的聲音才找到轉型的方向! 這使我想到當初螃蟹公司的 DVR (DVD Recorder) 產品線也是聽到客戶的聲音才轉到 DMP (Digital Media Player) 去, 即便不轉到 DMP, 也可以轉到 NVR (Network Video Recorder) 或是監控的 DVR (Digital Video Recorder), 若是以為藍光 (BD) 一定接棒 DVD, 碟片市場會愈來愈大, 這樣的思路就太僵硬了.

學長也說到, 公司低潮的時候, 就會有人離開. 但現在的一級主管很多都是一路堅持下來, 跟了公司十幾年的人. 若是有人想要離開公司, 學長也不會挽留, 祝福他們出去學兩招再回來, 所以公司也有兩近兩出的同仁. 學長還說到他在 National Semiconductor 上班的時候, 公司還有人七進七出 (孟獲?) 學長說, 當然啦, 你要有兩把刷子, 這是回鍋的前提.

2. 上下左右的管理

喬鼎成立的時候就在 St Jose 註冊, 因此它一開始就是一間國際化的企業. 公司裡面的人種多了, 文化差異也就大. 即使同樣是歐洲人, 英國人可以笑倒在地上打滾, 荷蘭人在看球賽的時候, 就不會把錢傳給旁邊的人, 請他們代買個爆米花 – 錢一出去就不是你的了, 還等爆米花回來咧~~~ 然而, 儘管文化不同, 傾聽永遠是重要的. 每當部屬之間有衝突, 學長只要去聽聽他們怎麼說, 問題就和緩多了. 若是再能做到其中的一些要求, 部屬就會更加感謝!

學長說他有一位斯里蘭卡籍的 sales 就對他又愛又恨, 恨的是學長總是若無其事地調高他的目標. 明明只能做 300~400 萬, 學長一口價就會讓他做 400~500 萬. 學長說他永遠會調高目標 20%, 雖然明知做不到也沒關係. 但是對董事會就不一樣了, 對董事會報告要反其道而行, 講保守一點才不會做不到. 至於喬鼎員工愛 James 什麼呢? 他們認為學長會把各種資訊和他們分享, 把它們當作自家人看待. 嗯, 我在喬鼎待過的前室友, 草皮都比我家大. 難道是這個原因? 哈!

學長說到, 當初公司做硬碟卡板的時候, 有一次在客戶那邊發生問題. 由於主機板是華碩的, 硬碟是 Seagate 的, 客戶抝不動這兩家, 就找喬鼎去 debug. 最後雖然證明是 Asus 的問題, 但是喬鼎服務到位, 幫客戶把 bug 修掉, 所以爭取到了客戶的信任. 雖然喬鼎早年的技術不一定是業界最優的, 但是學長說他們的服務是最好的. 學長還訂下規矩, 誰能幫客戶解決重大問題, 就可以領到一萬美元的獎金. 當時在 Christmas 假期的時候, 剛好有美國客戶出了狀況, 結果喬鼎在墨西哥休假的員工就為了這一萬美元跑去 debug, 並解決了客戶的問題. 這位同仁說他本來確實是為了錢, 但是收到客戶感動的回饋之後, 覺得收穫已經超過金錢的價值了.

喬鼎的產品以儲存為主, 本來 RAID 若有故障也都會有警告訊息. 但往往就是在大家忙著要去度假的時候, 特別容易忽略到硬碟快掛了. 因此緊急事件往往都是在放大假的時候發生. 早先的工程師認為自己的技術好就好, 並不關心客戶的狀況. 也是遇到了必須要在 Christmas 假期緊急出差, 才慢慢改變想法. 產品是客戶在用的, 若是抱著工程師的思維 – 客戶不按使用手冊操作而發生當機不是我的問題, 最後還是要工程師來收尾解決. 因此別家能做到亂操作也不當機, 自家當然也要做到同樣的水準.

3. 危機處理

危機處理有好幾種層次, 比較小的就是衝突管理. 除了學長講到的英國人和荷蘭人衝突, 美洲 sales 和歐洲 sales 衝突, 台灣和大陸也有文化衝突需要管理. 當初學長到大陸 branch 的時候, 曾經在週五的時候, 交代部屬下週一給他一個報告. 結果到了禮拜一, 屬下兩手一攤說, 你又沒有給我紙和筆, 我怎麼寫報告. 學長很幽默地拿了三張紙和三支筆給他, 這位同仁果然也在兩個小時後交卷了, 而且還寫得不錯. 據說這位仁兄到目前都在 Promise 服務, 還頗有貢獻~~

今天老闆找部屬來做事, 就是因為自己不夠專業才有求於人. 既然有求於人, 就要有求人的樣子. 學長說自己像是 "將將" 的劉邦, 因此對蕭何、韓信、張良都很客氣. 如果什麼都認為自己最行, 那就是 – 賈伯斯 項羽了. 何況項羽不常有, 賈伯斯更是絕無僅有, 不懂用人必然失敗.

對於客戶的危機處理, 學長說他把手機號碼給了他的主要幹部. 說是沒事不要打, 有事儘量打 (不要管時差). 每次接到電話都知道大事不妙, 但這時候就要分析問題發生的機率有多大? re-call 對公司有什麼影響? 然後當機立斷做出決定, 總之不能慌. 以日本客戶 NEC 來說, 如果他們派高層出來罵你, 表示他們還想用你的東西. 只要能讓客戶覺得罵了有用, 單子隨後就會進來了. 不過據說大陸客人不是這樣, 他們罵你就是不想和你做生意了.

在產品競爭方面, 學長說還沒有主導市場以前就是要學. 他不會像其他公司一樣, 還沒當老大之前, 就一直喊著要打倒第一名當老大. 有次學長在接受訪問的時候, 就被問到他們怎麼和第一名的公司競爭, 學長說我們希望把產品做好, 成為對方的供應商. 記者聽了一愣, 說到他認為這樣的公司會成功, 以他的經驗, 那些喊口號要當老大的, 最後當成老大的少之又少, 公司往往就不見了.

學長說, 像他們做監控, 在發生人為災難的之後, 也就是大家需要更多監控設備的時候. 平日就要保持一定的敏感度, 危機有時候也會變成商機. 的確, 我個人非常受不了以前電視上播的那些提款機拍到的歹徒畫面, 糊成那樣誰認得出來啊? 可見未來 DVR 還有很大的發展空間.

因為手機灌 Android 4.4 後還是第一次打開這版的 evernote, 這次的筆記做得非常不順. 雖然沒有按照學長投影片的順序走, 讓我印象深刻的重點也都記下來了. 

1. 遇到低潮要轉向, 傾聽市場需要什麼?

2. 工程師不要只管工程做得多漂亮, 要想著服務客戶.

3.  孫子兵法說 "勝兵先勝而後戰", 還沒有成功就要多學習.