Tag Archives: thread

小台機器上的 innodb_purge_threads 對效能的影響

雖然「MyISAM, small servers and sysbench at low concurrency」這篇標題是在講 MySQL 上的 MyISAM,但還是有提到一些 InnoDB 的東西... 其中提到了 innodb_purge_threads 對效能的影響: the default value for innodb_purge_threads, which is 4, can cause too much mutex contention and a loss in QPS on small servers. For sysbench … Continue reading

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

MySQL 總算要拔掉 mysql_query_cache 了

半官方的 MySQL blog 上宣佈了拔掉 mysql_query_cache 的計畫:「MySQL 8.0: Retiring Support for the Query Cache」。 作者開頭引用了 ProxySQL 的人對 MySQL Query Cache 的說明: Although MySQL Query Cache was meant to improve performance, it has serious scalability issues and it can easily become a … Continue reading

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

Google 弄出來的 Grumpy:把 Python 2.7 的程式碼轉成 Go...

Google 放出 Grumpy,可以把 Python 2.7 的程式碼轉成 Go:「Grumpy: Go running Python!」。 下面看到一個留言頗有趣的: This sad to see that Grumpy is mean to be a replacement of CPython 2.7 instead of CPython 3.x . I presume the code from youtube was written in … Continue reading

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

MySQL 上的 Thread Pool...

Percona 的人寫了一篇「Percona Server: Improve Scalability with Percona Thread Pool」,提到關於 MySQL 在連線數很多時的效能。 傳統的作法是一個連線使用一個 thread,這種方法實做起來很簡單,但當連線數超過一定程度時就會因為共用資源的限制而變慢。 其中一種解決方法是引入 Thread Pool 架構,也就是 M 個 thread 處理 N 個連線。 Oracle 有提供商用版本叫做 Thread Pool Plugin,就如同名字,是以 plugin 形式存在。這個功能在 5.5 與 5.6 都有。 MariaDB 也有 open source 實做的 Thread … Continue reading

Posted in Computer, Database, MariaDB, Murmuring, MySQL, Network, 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