支援多 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 such as epoll and kqueue.

Ubuntu Core 與 Snappy Transactional Updates

OSNews 上看到「Announcing Ubuntu Core, with snappy transactional updates」,原文出自 Ubuntu 老大 Mark Shuttleworth 的文章「Announcing Ubuntu Core, with snappy transactional updates!」。

依照官方說明:

Ubuntu Core is a minimal server image with the same libraries as today’s Ubuntu, but applications are provided through a simpler mechanism.

希望提供比較穩定的套件環境,並且讓 app 之間不受干擾執行。系統裡分成 release、framework、app 三種角色,release 就是 Ubuntu Core,而 framework 可以是 Docker,最後的 app 就是自己的應用程式,而 snappy 就是管理這三個的軟體。

Snappy Ubuntu Core 是個 readonly image (裡面大多數的地方都不能寫,只有部份目錄以及用 tmpfs 掛起來的部份可以寫入)。

除了可以在雲端平台上面測試外,還可以用 QEMU 掛起來跑,不過實際測試的時候發現 precise (12.04) 的 QEMU 因為是 1.0 版所以不能跑,要 trusty (14.04) 附的版本才夠新 (2.0 版,需要 1.1+)。

找到 trusty 的機器跑的時候因為是遠端的機器,要多加上 -nographic -curses 的參數:

sudo kvm -m 512 -nographic -curses -redir :8090::80 -redir :8022::22 ubuntu-core-alpha-01.img

然後就可以依照官方文件裡提到的方法連進去了:

ssh -p 8022 ubuntu@localhost

然後就可以照著官方的文件操作一次,我自己沒遇到什麼問題。

看起來是 Ubuntu 自己在推動的一套標準,不知道市場接受度如何 :p

從爆炸的遺跡尋找蛛絲馬跡:在 MySQL crash 後,從 core file 找出當時有哪些 query 在執行

Percona 寫了一篇文章,說明在 MySQL core dump 後,要如何從 core file 撈出當時有哪些 query 在跑:「How to Extract All Running Queries (Including the Last Executed Statement) from a Core File?」。

一年前 Percona 的人也有寫一篇「How to obtain the “LES” (Last Executed Statement) from an Optimized Core Dump?」,今年這篇則是改良版,可以看到操作的方式便簡單了...

雖然大家都不喜歡 MySQL crash,但知道爆炸當時有哪些 query 對於後續的分析有很大的幫助,先紀錄起來,如果真的不幸用到,會比較快找到資料...

支援新版 Plurk API (OAuth Core 1.0a) 的 Twitter To Plurk Script

code 放在「Plurk 新版 OAuth Core 1.0a 的 twitter to plurk」,其中裡面用到的 SQLite 的表格結構請參考「Twitter 轉 Plurk 的程式...」這篇文章的說明。把本來是 plaintext password 的程式換過去後看起來舒服多了,不過中間寫起來讓人頗 orz...

先是一直沒辦法透過 OAuth::Lite 送出 UTF8 內容,於是決定換成 Net::OAuth,結果因為文件內的範例都沒講到重點而倒地不起...

然後遇到 Plurk API 2.0 beta 的文件沒有列出是 GET 或是 POST,於是又試了老半天...

文件真的很重要...