PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   系統組件 (https://www.pcdvd.com.tw/forumdisplay.php?f=19)
-   -   為什麼升級為多核心+HT處理器,執行 LAMP 應用程式還是很慢? (https://www.pcdvd.com.tw/showthread.php?t=1039800)

amigoccs 2014-02-18 11:49 PM

引用:
作者corsair
老外靠實測
台灣狼靠一張嘴~悲~


Dear corsair,

有啊,還沒寫,資料都整理在 Excel 了

這篇文章是接下來六篇文章的開頭,也是最難的一篇。

如果沒有交代清楚 Sesstion, Multi-Core, Hyper-Thread, LAMP 之間的關聯性,接下來兩篇的測試報告就失去閱讀的基礎知識,而容易誤判。

所以花了很多功夫蒐集資料、反覆實驗、彙整出這篇文章。資安那篇文章算是中間殺出的,又佔去我兩天時間。

接下來的文章還有:

1. SugarCRM on NAS Performance Report
2. ZurmoCRM on NAS Performance Report
3. How to Optimize your LAMP on NAS
4. Why NAS is a File Appliance rather than a MicroServer
5. How to Utilize NAS in your Product Roadmap
6. The Different Marketing Strategies for Asustor, QNAP, and Synology

關於 mobile01 網友反應太專業一事,我在 2012 有回銘傳大學大三資管系教授專案管理實習課程,課程休息時間,學弟在背後批評我內容太淺,不斷重複,也讓我對於八年級程度的大幅提昇感到訝異。

我想在 mobile01 也有許多八九年級生,他們比我這位六年級生更早接觸電腦,後生可畏。

PCDVD 網友一向很硬派,沒有這個問題∼

這篇文章大約等同於我 1991 在台中中興大學應用數學系(我沒有畢業,大二被 1/2 退學,同學門的程度都很高,尤其是中南部的私立學校)大一上學期的計算機概論課程的作業系統章節的少部份內容,書名是 Computer Science an Overview, published by Benjamin,松崗曾經出版過中文版。

對這個主題有興趣的網友可以抽空閱讀 Peterson 的 Operating System 或另一本大學用書 Distrubuted Operating System (以 BU 的 Amiba 為範例)

我的另一個討論串 從挑選電源供應器開始保護您的硬碟 也受惠於許多 mobile01 的前輩,提供電子學的寶貴專業意見指教。

所以,我相信其實新一代的年青人有著強烈追求知識的欲望與潛力,也或許有極少數的網友覺得可以幫上他選擇正確的機型作為簡單的內部測試用伺服器呢!也或許他正在開發上面的 App 呢!

友站另有提出:

> 回到主題提到的 LAMP 這個 topic, 光是 Linux+Apache+MySQL+PHP 這組合的
> 可能性就很多種, 到底 User 的網站是靜態網站還是有較多 SQL 查詢的動作? 這
> 就對於 server 是否為 Multi-Threading 就影響很大, 如果都是以靜態網站居多,
> 那麼 Multi-Threading 並沒有很大的意義, 但相對的較多運算而且在 coding 及
> compile 時也能考慮到 Multi-Threading, 那麼或許不同 server 之間跑出來的
> 數據就會差很多了.

您的分析很正確!這也是我還沒有設計出思考大型分散式網站架構下的模型框架,會出現沒有全面思考的盲點,漏東漏西!

這裡面帶出的 multi-thread programming 正好就是分散是運算中很重要的一個人力資源需求。

後面的六篇文章都相對本篇簡單許多,但是因為我的一個客戶已經延遲三個月拖欠款項,我必須抽空去開發新客戶,好籌錢投資新的 Synology NAS 作為開發平台。Asustor 答應免費借我兩個月,可以省下一筆支出∼也因此要晚一點才會全部寫完﹍

昨天趕完這篇,我自己也苦惱於劇烈頭痛中﹍ 早上看了網友回應,還有很多毛邊要修﹍

Best regards,

Amigo

LEE01 2014-02-19 01:51 AM

http://www.coolaler.com/showthread....%A0%94%E7%A9%B6

參考一下吧

anderson1127 2014-02-19 10:27 AM

樓主的回文,說實在的內容有點分不清誰是誰....

原本樓主是說,已經是多核心了,為何LAMP還是很慢 , 結果東拉西扯的根本分不清那些是樓主的說明
那些是別人的說明!!

我就直接切入 所謂的慢 是誰在慢

1. CPU慢
2. I/O 慢
3. DB 慢

樓主應該是很單純的認為CPU慢 , 我是很想請樓主拿出CPU慢的證據出來 ,不過....
我認為應該拿不出來才對...

請容我再問一個問題

什麼是thread ? 什麼是process ?? 從那個角度來觀察才叫做thread ??? 從那個角度觀察才叫做process ????

這年頭,有很多人都把process認為是thread , 這是很大的誤會啊~~~~~

amigoccs 2014-02-19 10:35 AM

Dear anderson1127,

> 樓主的回文,說實在的內容有點分不清誰是誰....

在收集到網友反應的資訊後,目前正在改寫中,加強容易誤解的說明。

> 原本樓主是說,已經是多核心了,為何LAMP還是很慢 , 結果東拉西扯的根本分不清
> 那些是樓主的說明
> 那些是別人的說明!!

別人的說明有加引號,很容易判斷。

> 我就直接切入 所謂的慢 是誰在慢
> 1. CPU慢
> 2. I/O 慢
> 3. DB 慢

> 樓主應該是很單純的認為CPU慢 , 我是很想請樓主拿出CPU慢的證據出來 ,
> 不過....我認為應該拿不出來才對...

不是的,不是 CPU 慢,是搭配的 LAMP、設定 (Apache MPM 方式)、與應用程式 (是否為 multi-thread)、使用情境 (是否有 session files 會影響分配到的 threads 數量)

> 請容我再問一個問題
> 什麼是thread ? 什麼是process ?? 從那個角度來觀察才叫做thread ???
> 從那個角度觀察才叫做process ????

Thread 是 CPU 可以處理的最小運算單位,Hyper-Thread 的硬體改進,可以讓 CPU 同時接收一個以上的 Thread,快速在Threads 切換,但實際上還是只有一個運算

Process 是被 Operating System 執行的程式,他可以備分配到一個或多個 thread,取決於許多設定。

> 這年頭,有很多人都把process認為是thread , 這是很大的誤會啊~~~~~

是啊,完全不同!

Best regards,

Amigo

tvirus 2014-02-19 11:22 AM

嗯...
有自己架Linux主機,大概稍稍稍稍稍稍稍稍微能夠理解這個議題吧?
就稍微觀注一下...雖然在NAS上搞LAMP,對我個人來說,沒啥太大意義...

amigoccs 2014-02-19 11:42 AM

Dear tvirus,

> 有自己架Linux主機,大概稍稍稍稍稍稍稍稍微能夠理解這個議題吧?
> 就稍微觀注一下...雖然在NAS上搞LAMP,對我個人來說,沒啥太大意義...

這是在第七篇文章會提的 >_<;;;

Best regards,

Amigo

corsair 2014-02-19 01:06 PM

http://zh.wikipedia.org/wiki/%E8%B6...%A1%8C%E7%B7%92

由於處理器實際上只有一個核心,能夠提升的效能約為5~15%左右,且萬一發生資源互搶的情形時,整體效能反而會下降。這亦是AMD不提供虛擬雙核心處理器的理由。

要令到電腦支援超執行緒技術,必須要軟體和硬體的配合。處理器本身要支援超執行緒,晶片組亦要支援相關處理器。為此,當時的Intel推出了新的晶片組,i865PE和i875P。要充分發揮超執行緒的效能,使用者要使用Windows 2000之後的作業系統,而Windows XP家用版亦同樣支援超執行緒技術。除了微軟的Windows外,Linux kernel 2.4.x亦開始支援該技術。軟體方面,不是所有程式都可以發揮超執行緒,通常優化了多處理器的程式都可以支援到。此類軟體通常是圖形或視訊處理軟體。早期,遊戲軟體的支援是比較少。但隨著多核心技術的普及,愈來愈多遊戲軟體支援多執行緒的處理器。

anderson1127 2014-02-19 01:46 PM

其實

在瞭解Hyper-Thread的說明之後 可以瞭解的是,只要machine code依序要進入CPU執行時
只要不相互依賴(dependency) , 就可以幾乎同時進入CPU 執行 , 這個HT的基本立場是以
machine code為中心點 , 來做出的說明!!

而Multi-thread 與 Hyper-Thread有關連嗎?? Multi-Thread 的thread之組成是machine code嗎(即程式本身) ??
還是其它 ??

我相信能夠說得明白,對於thread觀念才會清楚,有了清楚的觀念,才寫得出充份發揮CPU performance的程式!!

而不會只是單純的以為更換更高時脈的CPU就可以發揮效能.... :think:

amigoccs 2014-02-19 11:22 PM

Dear anderson1127

> 我相信能夠說得明白,對於thread觀念才會清楚,有了清楚的觀念,才寫得出
> 充份發揮CPU performance的程式!!

我認為您的說明與見血的問題很對,是不是專業人士,字裡行間馬上看出來!

我也是為了要確認自己的觀念正確,認為寫成 blog 是最好的一種驗證,把知識咀嚼轉化電子資產,在網路上分享,是我目前的行為!

> 而不會只是單純的以為更換更高時脈的CPU就可以發揮效能.... :think:

完全正確,也是我的標題重點:要認清這些基礎,才能夠有效管理。

真是太幸運了!比起友站嘲諷、不屑、鄙視的網友回應,我在這個討論串見到有心的專業人士,感謝各位!

Best regards,

Amigo

octapult 2014-02-20 02:22 AM

跟 LAMP 無關,希望原 po 不會介意
因為大部分的人關心的是 HT 對遊戲有沒有幫助
又因為 95% 的遊戲並不會因為有了 HT 就可以增加 FPS,所以一般遊戲玩家並不會在乎 cpu 有沒有 HT

沒錯,單開一個遊戲視窗,絕大多數遊戲並不會因為 HT 而增加 FPS
但是事實上如果你是 multi boxing 的遊戲玩家,也就是說你玩某個線上遊戲,一次開很多個角色,這種情況 HT 的幫助很大

這邊有人做過測試:
http://www.dual-boxing.com/threads/44505-Multiboxing-Hardware-Science!

即使是不支援 HT 的遊戲 - WOW,在多開的時候依舊可以從 HT 受益
開 10 個 WOW 角色時,在人多的區域,HT 的 FPS 是 非 HT 的 1.67 ~ 2 倍
這也是為什麼我的新機器非 4C8T/4M8T 的 CPU 完全不考慮

看完多開遊戲視窗,在看回原 po 的測試,我挺驚訝 LAMP 並不會受益於 HT :shock:

編輯:抱歉,您似乎並沒有說 HT 完全沒幫助,而是看情況,是我誤解你的意思了 :ase


所有的時間均為GMT +8。 現在的時間是08:29 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。