Tag Archives: threading

支援多 CPU 的 ab:wrk

在「wrk」這邊看到 wrk 這個工具:「Modern HTTP benchmarking tool」。 利用 multi-threading 與 epoll/kqueue 撐出效能: wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU. It combines a multithreaded design with scalable event notification systems … Continue reading

Posted in Computer, Murmuring, Network, Software, WWW | Tagged , , , , , , , , , , , , | Leave a comment

MySQL 的 Parallel Replication

「Multithreaded Replication to the Rescue」這篇提到了 Replication 的 Parallel Worker 機制。 作者給了平行的數量對 replication lag 的影響: 可以看得出來 Parallel Worker 機制對 Replication Lag 改善頗大,不過作者在 comment 提到中雷了:「MTS breaks in after restart」。 對於還在使用 traditional master-slave 架構的人可以參考看看。

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , | Leave a comment

C 對 Go Channel 的實做

在「Pure C implementation of Go channels.」這邊看到有人在 C 語言裡面實做 Go 的 Channel,包括了 Unbuffered 與 Buffered 版本。 看起來是支援 multithreading 的:「Add missing pthread_cond_destroy in chan init cleanup」、「Add -lpthread to CFLAGS」。

Posted in Computer, Murmuring, Programming, Software | Tagged , , , , , , , | 1 Comment

MySQL 平行執行的 Replication...

「MySQL Replication – Multi-Threaded Slaves (Parallel Event Execution)」這篇在講 MySQL 5.6 的 multi-threaded replication。 在文章裡提到,在 5.6.3 之前的版本,MySQL replication 都是 single-threaded,所以當 master 可以充分發揮多 CPU 能力時,slave 仍然要一個更新跑完才會跑下一個更新。 舉例來說,假設 master server 上有兩個 thread 在跑: thread 1 正在執行 UPDATE table1 SET foo = 0 WHERE … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Software, WWW | Tagged , , , , , , , , , , , , , | Leave a comment

用 Lbzip2 解壓縮

手上抓了幾個 .bz2 的檔案要 bzcat 出來 pipe 丟給 Perl script 跑,用系統預設的 bzip2 發現速度卡在解壓縮,而不是 Perl script... 用 parallel 與 bzip2 當關鍵字到 apt-cache 裡面找,有找到兩個套件:Lbzip2 與 Pbzip2,都裝起來後測解壓縮的功能,發現 Pbzip2 解壓縮時沒有辦法利用到多核心的優勢,而 Lbzip2 則是很順利的超過 100%,輸出結果讓 Perl script 也吃滿 CPU resource... 如果是壓縮時需要壓縮率,還是用 xz 就好...

Posted in Computer, Murmuring, Software | Tagged , , , , , , | Leave a comment

裝 mplayer-mt 改善解碼效率

用 multi-threaded 版本可以將解碼的程式丟到多顆 CPU core 上跑,善用多 CPU 的資源,這樣看 1080p 才不會痛... (家裡的 AMD X2 4000+ 得這樣設,不然原來的版本解不動) 主要有兩個步驟要做,首先是加 ppa 並且安裝 mplayer-mt: sudo apt-add-repository ppa:longinus00/mplayer-mt sudo apt-get update sudo apt-get upgrade # 已經有 mplayer 的 case sudo apt-get install mplayer # 沒有裝 mplayer … Continue reading

Posted in Computer, Murmuring, Recreation, Software | Tagged , , , , , | 1 Comment

Perl 的 Threading 實做:Coro

去年「Perl - PSGI」這篇文章裡面提到 Perl 的 threading 一直是頭痛的問題之一,唐鳳在留言上推薦用 Coro 而非原來的 thread。 實際測試後發現並非 OS level 的 threading,而是利用抽換的方式將系統內許多 blocking function 換掉,並且支援常用到的 module (像是 libwww-perl 系列),使得現有的程式要 porting 到 Coro 上會簡單很多,寫起來也的確比較像 threading 程式。(雖然實做比較接近 event-based) 附上之前寫來測試的程式,用的是 PIXNET 的 API:

Posted in Computer, Murmuring, Programming, Software | Tagged , , , | 1 Comment